JavaRush /Java Blog /Random-TL /Mga karagdagang materyales para sa mga lektura CS50: Ling...
Bender
Antas
Маунтин-Вью

Mga karagdagang materyales para sa mga lektura CS50: Linggo 0 (Mga Lektura 1 at 2)

Nai-publish sa grupo
Sino ang hindi pa nakakapanood ng mga lektyur sa Harvard sa mga pangunahing kaalaman sa programming, pumunta dito: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

Panimula. Istraktura ng Kurso ng CS50

Дополнительные материалы к лекциям CS50: Week 0 (лекции 1 и 2) - 1Kaibigan! Sa panimula, ipapaalala namin sa iyo (o sasabihin sa iyo kung sino man) ang tungkol sa istruktura ng CS50. Ang kurso ay tumatagal ng 12 linggo. Bawat linggo ay may dalawang lektura, pati na rin ang lahat ng uri ng mga seminar at paliwanag. Maglalathala kami ng mga artikulong tulad nito sa sandaling handa na ang mga lektura. Maglalaman ito ng maikling paglalarawan ng mga lektura, mga tala sa "shorts" at karagdagang impormasyon, pati na rin ang mga pagsasalin ng mga praktikal na takdang-aralin. Sinasaklaw ng zero week lecture ang mga sumusunod na isyu:
  • Binary number system.
  • ASCII
  • Algorithm at algorithmic na pag-iisip
  • Mga compiler
  • Garalgal na wika
  • Mga Ekspresyon ng Boolean
  • Mga kundisyon
  • Mga cycle
  • Mga variable
  • Mga pag-andar
  • Mga array
  • Batis
  • Mga kaganapan
Linggo 0 layunin:
  • Unawain kung paano mairepresenta ang impormasyon nang digital.
  • Alamin ang mga pangunahing pagbuo at konsepto ng software.
  • Gumawa ng sarili mong animation, laro o interactive na aktibidad gamit ang Scratch.
  • Pahangain ang iyong mga kaibigan =).

CS50 Linggo 0 (Lecture 1-2): mga tala

Mga algorithm

Дополнительные материалы к лекциям CS50: Week 0 (лекции 1 и 2) - 2Inaasahan namin na napanood mo na ang mga lektura at naunawaan na ang algorithm ay naghahati-hati sa solusyon ng mga problema (iba't ibang mga problema, mga problema sa matematika o "kung paano makapunta sa istasyon ng metro N") sa mga hakbang. Bukod dito, ang bawat hakbang ay dapat makumpleto sa isang takdang panahon, at dapat mayroong isang tiyak na bilang ng mga hakbang mismo. Gayundin, ang susunod na hakbang ay nakasalalay sa nauna. Maaari kang magbasa nang higit pa tungkol sa mga algorithm, halimbawa, dito . Kung alam mo ang Ingles, narito ang isang kahanga-hangang TED animation ni David Malan: https://youtu.be/6hfOvs8pY1k Bagaman sa pangkalahatan ang impormasyon sa video ay inuulit iyon sa lecture =).

Binary number system

Дополнительные материалы к лекциям CS50: Week 0 (лекции 1 и 2) - 3У нас 10 пальцев, и система — десятичная. То есть, любое, сколь угодно большое число мы можем представить с помощью цифр 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. В зависимости от того, где в числе стоит цифра, она может означать разное: если эта цифра последняя, то она расположена в разряде единиц, предпоследняя — разряд десятков, еще левее — разряд сотен и так далее. По сути, любое число можно расписать в виде суммы цифр, каждая из которых умножена на десять в определенной степени. В случае единиц — нулевой. Например, 1573 = 3*100 + 7*101+5*102+1*103. Число, на степень которого умножаются цифры называется базой системы счисления. Для десятичной системы базой, логично, является десятка. У компьютера пальцев нет, но есть два состояния: условно «ток идет» и «ток не идет», нулик и единичка. Соответственно все числа (да и вообще информация) в памяти компьютера состоят только из двух цифр — 0 и 1. Их расположение, How и в случае десятичной системы счисления, указывает на разряд. Только теперь число можно разложить на сумму цифр, помноженных не на степени десятки, а степени двойки. 0 в двоичной системе = 0 1 в двоичной системе = 1 2 в двоичной системе = 10 710=1112 Научитесь переводить из двоичной системы в десятичную. Вы, наверное, уже поняли, How это делается — просто берем цифру числа начиная с самой правой и умножаем её на базу в степени, соответствующей её разряду, так с каждым разрядом и складываем все. Пример: Давайте найдем десятичный аналог двоичного числа 1011012 Самая правая единичка = 1*20 Следующий нулик = 0*21 Третья справа единичка = 1*22 Четвертая = 1*23 … и так далее 1011012 = 1*20 + 0*21 + 1*22 + 1*23 + 0*24 + 1*25 = 1 + 0 + 4 + 8 + 0 + 32 = 4510 Представьте восемь лампочек, выставленных в ряд. У каждой из них — свой собственный выключатель. Каждая из лампочек — это разряд. Да что представлять, вспомните самую первую лекцию (там есть такой агрегат) or вот вам виджет: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Поиграйтесь с ним, потренируйтесь «прочувствовать» двоичную систему. Перевод из десятичной системы в двоичную. Тут тоже всё очень просто, если понимать суть. вот есть у нас число 5710. Whatбы перевести его в двоичную систему, нужно определить, Howая максимальная степень двойки не превосходит это число. 26 = 64. Это явно многовато. А вот 25 = 32. Вот мы определor старший разряд. 3210 = 1000002. Теперь ищем следующий разряд. 57-32 = 25. Теперь для 25 ищем степень двойки, которая не превосходит 25. 24 = 16. Значит, следующий разряд у нас тоже equals 1. 32+16 = 4810 = 1100002. 57 – 48 = 9. 23 = 8, это меньше, чем 9. Значит следующий разряд тоже будет единичкой. 32 + 16 + 8 = 5610 = 1110002. 57-56 = 1, то есть осталась только одна степень 20. Таким образом 5710 = 1110012. Если вдруг что осталось непонятым, можно подробнее почитать в викиучебнике , а если сильны в английском — вот маленькое дополнение к лекции.

ASCII

Дополнительные материалы к лекциям CS50: Week 0 (лекции 1 и 2) - 4Компьютер понимает только нулики и единички, а его память можно представить в виде ооочень длинной строки из лампочек с выключателями, How вы видели выше. Как представить цифры в компьютере мы уже поняли. А что с остальной информацией? Буквами, картинками? Скажем, в английском алфавите 26 букв. То есть теоретически мы можем представить буквы цифрами от 0 до 25, только в двоичной системе. Возникает следующий вопрос: а How понять, перед нами строчная буква or прописная? А знаки препинания? Знаки-«невидимки» вроде пробела? Словом, нужна система codeирования, Кэп! В 1960 годах существовало множество разных схем, codeирующих символы. Отсутствие единообразия оказалось проблемой, и в 1963 году Американский институт стандартизации ANSI разработал и ввел в обиход схему codeировки ASCII (American Standard Code for Information Interchange). Каждый символ ASCII состоит из семи разрядов or семи бит, каждый из которых может принимать meaning 0 or 1. В 7 бит можно поместить числа от 0 до 127 в двоичной системе, то есть у нас есть 128 чисел для codeирования символов. Казалось бы, достаточно для codeировки письменной английской речи? Давайте посчитаем: a-z — 26 вариантов A-Z — еще 26 0-9 — 10 ,;:~& и прочие знаки пунктуации — 32 И еще один пробел. Total — 95 символов. Оставшиеся 33 вакантных варианта используют для так называемых управляющих символов, вроде перевода строки or возврата каретки: https://ru.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. Об этом визуальном языке программирования и его основных командах вам рассказали в лекции. Whatбы опробовать Scratch самостоятельно, переходим по ссылке и нажимаем «Присоединиться». После регистрации вы можете начинать программировать онлайн. Да, кстати, на сегодняшний день Scratch отчасти русифицирован. Справка, правда, пока на английском. При желании можно поиграть, а также посмотреть code студенческих проектов, которые демонстрировались в лекции. Вот Pikachu Pastry Catch. Или проект с сортировкой мусора по разным емкостям: https://scratch.mit.edu/projects/71161586/ Дэвид и компания просят вас не волноваться, если вам кажется, что вы не можете сделать столь сложные проекты: такой уровень уже требует определенной сноровки.

Задание

  1. Whatбы лучше понять процессы, происходящие в Scratch, можно загрузить исходный code нескольких проектов отсюда. Поиграйтесь, посмотрите. Изучать чужой code — это очень полезно. Это один из лучших способов узнать, что внутри у тех программ, до которых вы сами ещё не доросли. Когда вы начнете понимать, How работают эти applications, можно смело идти дальше.

  2. Теперь пришло время сделать что-то самостоятельно. Задание состоит в том, чтобы весело провести время, но при этом реализовать небольшой проект с нуля. Это может быть анимация, игра, интерактивное действо.

Требования к проекту:
  • Программа должна содержать по крайней мере два спрайта (персонажа, изображения), и один из них точно не должен быть кошкой=).
  • Должно быть по крайней мере три скрипта (дейтсвия).
  • Нужно исполнить по крайней мере одно condition, один цикл и одну переменную.
  • В программу нужно внедрить по крайней мере один звук.
То есть по сути ваш проект будет сложнее написанных на лекции, но проще, чем продемонстрированные игрушки про Пикачу и сбор мусора. Таким образом, в вашем проекте, вероятно, будет использовано несколько дюжин пазлов, из которых состоит code Scratch. Если что-то не получается, возможно, следует изменить подход к решению задачи. Главное, без страха — в путь! Предлагаем вам задавать вопросы, а также делиться своими проектами в комментариях.

Scratch: краткое руководство к действию

Спрайт — центральный an object проекта. Любой персонаж — кот, самолет, мячик — является спрайтом. Если вы добавor двух разных котов — это два разных спрайта. Дополнительные материалы к лекциям CS50: Week 0 (лекции 1 и 2) - 6У каждого спрайта есть скрипты, которые описывают его поведение. Это блоки действий. Костюмы — это то, How выглядят an objectы. Сами спрайты, по сути — это просто рисунки. Каждый спрайт может иметь несколько костюмов. Whatбы создать спрайт, нужно либо выбрать его изначальный костюм из библиотеки Scratch, нарисовать свой собственный во встроенном редакторе, загрузить любое изображение or даже сделать фотку с помощью веб-камеры и загрузить её. Все спрайты помещаются на так называемую сцену (stage). Сцена — по сути, наш холст, место действия программы. Также к спрайту or к сцене можно привязать звуки из библиотеки, or же можно загрузить их or записать самостоятельно, с помощью микрофона. Whatбы начать исполнение программы, нужно кликнуть по зеленому флажку в правом верхнем углу окна сцены. Но прежде, чем это сделать, нужно поместить в программу следующий блок: Дополнительные материалы к лекциям CS50: Week 0 (лекции 1 и 2) - 7И присоединить к нему, How к детали конструктора, Howие-то блоки. Например: Дополнительные материалы к лекциям CS50: Week 0 (лекции 1 и 2) - 8В таком случае при нажатии на флажок, спрайт, к которому привязаны действия, делает 50 шагов и мяукает. Блоков у нас очень много. Они разделены на три вкладки: скрипты, костюмы и звуки. Давайте сделаем простенькую программу с conditionм. Если оно выполнится, кот мяукнет, не выполнится — останется молчаливым. Операторы обозначены зеленым цветом. Те из них, которые проверяют на истинность or ложность условия, отличаются острыми углами по бокам. Структуры проверки условий и циклы обозначены оранжевым. В них есть специальные отверстия, куда можно помещать другие блоки.

Циклы:

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

What еще

Если ваш доступ к интернету оставляет желать лучшего, рекомендуем загрузить офлайновый редактор Scratch по addressу https://scratch.mit.edu/scratch2download/. Потом не забудьте переслать ваш проект в http://scratch.mit.edu/ с помощью меню Файл > Загрузить с компьютера.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION