JavaRush/Java блог/Random UA/Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2...
Bender
1 рівень

Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2)

Стаття з групи Random UA
учасників
Хто ще не дивився Гарвардський лекції з основ програмування заходьте сюди: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

Вступ. Структура курсу CS50

Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2) - 1Друзі! У вступі ми нагадаємо (або розповімо, кому як) про структуру CS50. Курс триває 12 тижнів. Щотижня проходять дві лекції, а також усі семінарські заняття та пояснення. Такі ось статті, як ця, ми випускатимемо в міру готовності лекцій. У ній буде короткий опис лекцій, конспект «шортів» та додаткової інформації, а також переклад практичних завдань. Лекції нульового тижня висвітлабо такі питання:
  • Двійкова система числення.
  • ASCII
  • Алгоритми та алгоритмічність мислення
  • Компілятори
  • Мова Scratch
  • Булеві вирази
  • Умови
  • Цикли
  • Змінні
  • Функції
  • Масиви
  • Потоки
  • Події
Цілі нульового тижня:
  • Зрозуміти, як інформація може бути представлена ​​в цифровому вигляді.
  • Вивчити основні програмні конструкції та поняття.
  • Створити власну анімацію, гру чи інтерактивну дію на Scratch.
  • Зробити враження на друзів =).

CS50 Week 0 (Лекція 1-2): конспект

Алгоритми

Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2) - 2Сподіваємося, ви вже встигли подивитися лекції, і зрозуміли, що алгоритм розбиває розв'язання задач (різних задач, математичних чи «як доїхати до станції метро N») на кроки. При цьому кожен крок повинен виконуватися за кінцеву кількість часу, та й самих кроків має бути певна кількість. А ще наступний крок залежить від попереднього. Докладніше про алгоритми можна почитати, наприклад, тут . Якщо знаєте англійську, ось прекрасна анімація на TED авторства Девіда Малана: https://youtu.be/6hfOvs8pY1k Хоча загалом інформація в ролику повторює таку в лекції=).

Двійкова система числення

Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2) - 3У нас 10 пальців, і система десяткова. Тобто будь-яке, скільки завгодно велике число ми можемо представити за допомогою цифр 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Залежно від того, де в числі стоїть цифра, вона може означати різне : якщо ця цифра остання, вона розташована в розряді одиниць, передостання — розряд десятків, ще лівіше — розряд сотень тощо. По суті, будь-яке число можна розписати у вигляді суми цифр, кожна з яких помножена на десять певною мірою. У разі одиниць – нульовий. Наприклад, 1573 = 3 * 10 0 + 7 * 10 1 +5 * 10 2 +1 * 10 3. Число, на ступінь якого множаться цифри, називається базою системи числення. Для десяткової системи базою, логічно, є десяток. У комп'ютера пальців немає, але є два стани: умовно «струм йде» і «струм не йде», нулик і одиниця. Відповідно всі числа (та й взагалі інформація) у пам'яті комп'ютера складаються лише з двох цифр - 0 і 1. Їхнє розташування, як і у разі десяткової системи числення, вказує на розряд. Тільки тепер число можна розкласти на суму цифр, помножених не на ступінь десятки, а ступінь двійки. 0 у двійковій системі = 0 1 у двійковій системі = 1 2 у двійковій системі = 10 7 10 =111 2 Навчіться переводити з двійкової системи до десяткової. Ви, напевно, вже зрозуміли, як це робиться - просто беремо цифру числа починаючи з правої і множимо її на базу в ступені, що відповідає її розряду, так з кожним розрядом і складаємо все. Приклад: Давайте знайдемо десятковий аналог двійкового числа 101101 2 Найправіша одиниця = 1*2 0 Наступний нулік = 0*2 1 Третя справа одиниця = 1*2 2 Четверта = 1*2 3 … і так далі 0 = 1*2 101101 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 Подайте вісім лампочок, виставлених у ряд. Кожна з них має свій власний вимикач. Кожна лампочка — це розряд. Та що уявляти, згадайте найпершу лекцію (там є такий агрегат) або ось вам віджет : двійкову систему. Переведення з десяткової системи до двійкової. Тут також все дуже просто, якщо розуміти суть. ось є у нас число 57 10 . Щоб перевести його в двійкову систему, потрібно визначити, який максимальний рівень двійки не перевищує це число. 2 6 = 64. Це явно забагато. А ось 25 = 32. Ось ми визначабо старший розряд. 32 10 = 100 000 2. Тепер шукаємо наступного розряду. 57-32 = 25. Тепер для 25 шукаємо ступінь двійки, яка не перевищує 25. 2 4 = 16. Отже, наступний розряд у нас також дорівнює 1. 32+16 = 48 10 = 110000 2 . 57 - 48 = 9. 2 3 = 8, це менше, ніж 9. Значить наступний розряд теж буде одиницею. 32 + 16 + 8 = 56 10 = 111 000 2 . 57-56 = 1, тобто залишився лише один ступінь 2 0 . Таким чином, 57 10 = 111001 2 . Якщо раптом що лишилося незрозумілим, можна докладніше почитати у вікіпідручнику, а якщо сильні в англійській — ось маленький додаток до лекції.

ASCII

Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2) - 4Комп'ютер розуміє тільки нуліки і одиночки, а його пам'ять можна представити у вигляді дуже довгого рядка з лампочок з вимикачами, як ви бачабо вище. Як уявити цифри у комп'ютері ми вже зрозуміли. А що з рештою інформації? Літерами, картинками? Скажімо, в англійському алфавіті 26 літер. Тобто теоретично ми можемо уявити букви цифрами від 0 до 25, лише у двійковій системі. Виникає наступне запитання: а як зрозуміти, перед нами мала літера чи велика? А розділові знаки? Знаки-«невидимки» на кшталт пробілу? Словом, потрібна система кодування, Кеп! У 1960 роках існувало безліч різних схем, що кодують символи. Відсутність одноманітності виявилася проблемою, і в 1963 році Американський інститут стандартизації ANSI розробив і узвичаїв схему кодування ASCII (American Standard Code for Information Interchange). Кожен символ ASCII складається з семи розрядів або семи біт, кожен з яких може набувати значення 0 або 1. У 7 біт можна помістити числа від 0 до 127 у двійковій системі, тобто у нас є 128 чисел для кодування символів. Здавалося б, чи достатньо для кодування письмового англійського мовлення? Давайте порахуємо: az - 26 варіантів AZ - ще 26 0-9 - 10,;: ~ & та інші знаки пунктуації - 32 І ще один пробіл. Разом - 95 символів. 33 вакантних варіанти, що залишабося, використовують для так званих керуючих символів, на кшталт перекладу рядка або повернення каретки: достатньо для кодування письмового англійського мовлення? Давайте порахуємо: az - 26 варіантів AZ - ще 26 0-9 - 10,;: ~ & та інші знаки пунктуації - 32 І ще один пробіл. Разом - 95 символів. 33 вакантних варіанти, що залишабося, використовують для так званих керуючих символів, на кшталт перекладу рядка або повернення каретки: достатньо для кодування письмового англійського мовлення? Давайте порахуємо: az - 26 варіантів AZ - ще 26 0-9 - 10,;: ~ & та інші знаки пунктуації - 32 І ще один пробіл. Разом - 95 символів. 33 вакантних варіанти, що залишабося, використовують для так званих керуючих символів, на кшталт перекладу рядка або повернення каретки:https://ua.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg Важливо розрізняти символи 0-9 та числові значення 0-9. Символи 0-9 представлені значеннями ASCII 48-57. Цікаво відзначити, що крайні праві чотири біти цих значень ASCII є двійковими уявленнями числових значень 0-9. Це дещо спрощує спосіб перетворення між значеннями ASCII та їх фактичними числовими значеннями. Починаємо програмувати?

Scratch

Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2) - 5Отже, Scratch. Про цю візуальну мову програмування та її основні команди вам розповіли в лекції. Щоб випробувати Scratch самостійно, переходимо на посилання і натискаємо «Приєднатися». Після реєстрації ви можете розпочинати програмування онлайн. Так, до речі, на сьогоднішній день Scratch частково русифіковано. Довідка, щоправда, поки що англійською. За бажання можна пограти, а також переглянути код студентських проектів, які демонструвалися у лекції. Ось Pikachu Pastry Catch . Або проект із сортуванням сміття за різними ємностями: https://scratch.mit.edu/projects/71161586/ Девід і компанія просять вас не хвилюватися, якщо вам здається, що ви не можете зробити такі складні проекти: такий рівень вже вимагає певної вправності .

Завдання

  1. Щоб краще зрозуміти процеси, що відбуваються у Scratch, можна завантажити вихідний код кількох проектів звідси . Пограйтеся, подивіться. Вивчати чужий код – це дуже корисно. Це один з найкращих способів дізнатися, що всередині тих програм, до яких ви самі ще не доросли. Коли ви почнете розуміти, як працюють ці програми, можна сміливо йти далі.

  2. Тепер настав час зробити щось самостійно. Завдання полягає в тому, щоби весело провести час, але при цьому реалізувати невеликий проект з нуля. Це може бути анімація, гра, інтерактивне дійство.

Вимоги до проекту:
  • Програма повинна містити принаймні два спрайти (персонажу, зображення), і один з них точно не повинен бути кішкою =).
  • Має бути принаймні три скрипти (дейтсвія).
  • Потрібно виконати принаймні одну умову, один цикл та одну змінну.
  • У програму потрібно запровадити принаймні один звук.
Тобто, по суті, ваш проект буде складніше написаних на лекції, але простіше, ніж продемонстровані іграшки про Пікачу та збір сміття. Таким чином, у вашому проекті, ймовірно, буде використано кілька дюжин пазлів, з яких складається код Scratch. Якщо щось не виходить, можливо, слід змінити підхід до розв'язання задачі. Головне, без страху - в дорогу! Пропонуємо вам ставити запитання, а також ділитися своїми проектами у коментарях.

Scratch: короткий посібник до дії

Спрайт – центральний об'єкт проекту. Будь-який персонаж – кіт, літак, м'ячик – є спрайтом. Якщо ви додали двох різних котів — це два різні спрайти. Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2) - 6Кожен спрайт має скрипти, які описують його поведінку. Це – блоки дій. Костюми це те, як виглядають об'єкти. Спрайти самі, по суті — це просто малюнки. Кожен спрайт може мати кілька костюмів. Щоб створити спрайт, потрібно або вибрати його початковий костюм із бібліотеки Scratch, намалювати свій власний у вбудованому редакторі, завантажити будь-яке зображення або навіть зробити фотку за допомогою веб-камери та завантажити її. Усі спрайти розміщуються на так звану сцену (stage). Сцена - по суті, наше полотно, місце дії програми. Також до спрайту або сцени можна прив'язати звуки з бібліотеки, або можна завантажити їх або записати самостійно, за допомогою мікрофона. Щоб розпочати виконання програми, потрібно клацнути по зеленому прапорцю у правому верхньому кутку вікна сцени. Але перш, ніж це зробити, Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2) - 7І приєднати до нього як до деталі конструктора якісь блоки. Наприклад: Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2) - 8У такому разі при натисканні на прапорець спрайт, до якого прив'язані дії, робить 50 кроків і нявкає. Блоків у нас дуже багато. Вони поділені на три вкладки: скрипти, костюми та звуки. Давайте зробимо просту програму з умовою. Якщо воно виконається, кіт м'якне, не виконається — залишиться мовчазним. Оператори позначені зеленим кольором. Ті з них, які перевіряють на істинність чи хибність умови, відрізняються гострими кутами з обох боків. Структури перевірки умов та цикли позначені помаранчевим. Вони мають спеціальні отвори, куди можна поміщати інші блоки.

Цикли:

Повторити нескінченну кількість разів: Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2) - 9Повторити певну кількість разів: Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2) - 10Повторити дію, якщо умова виконується: Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2) - 11Створювати змінні можна в блоці Data. Нижче на прикладі ми створабо змінну x, і відразу з'явабося дії, які можна з нею зробити. Ви можете встановити область видимості змінних: для всіх спрайтів або для одного. Додаткові матеріали до лекцій CS50: Week 0 (лекції 1 та 2) - 12Зелений прапорець – не єдина дія. Також у розділі Events ви можете виявити ще ряд умов керування. Наприклад, ви можете вибрати, що робити після натискання на кнопку або на сам спрайт мишкою. Якщо знадобиться додаткова інформація, можна знайти її, наприклад, тут .

Що ще

Якщо ваш доступ до інтернету залишає бажати кращого, рекомендуємо завантажити офлайновий редактор Scratch за адресаою https://scratch.mit.edu/scratch2download/ . Потім не забудьте надіслати ваш проект у http://scratch.mit.edu/ за допомогою меню Файл > Завантажити з комп'ютера.
Коментарі
  • популярні
  • нові
  • старі
Щоб залишити коментар, потрібно ввійти в систему
Для цієї сторінки немає коментарів.