Гарвардский курс CS50 «Основы компьютерных наук и искусства программирования».

Будет неправильно сказать, что на CS50 вас научат программировать «от» и «до», но, как по мне, правильное введение в информатику должно быть именно таким. Студентам поясняют всё и понемногу, но прежде всего — как «мыслит» компьютер. Его азбуку — двоичное счисление и понятие алгоритма и алгоритмизации поясняют сразу же, а бинарный поиск, над правильной реализацией которого нужно хорошо подумать, поясняется легко и быстро прямо на вводной лекции. Да еще и со спецэффектами в виде порванных телефонных справочников и специальной теплой «ламповой» бинарной машины. Даже понятие сложности алгоритма пояснили на наглядном примере, предложив способ быстрого подсчета примерного количества людей в аудитории (людей в аудитории было порядка полутысячи, если что).

Если очень кратко, то CS50 вот о чём:

Алгоритмы и алгоритмизация задач.
Абстракции, структуры данных, инкапсуляция, управления памятью.
Основы языка программирования C и программирования в целом.
Понятие о веб-разработке и базам данных: CSS, HTML, JavaScript, PHP, Ajax SQL.
«Правильная разработка». Что такое MVC.
Искусственный интеллект.
Понятие о шифровании.

1-я лекция: вступительная, знакомит с общими понятиями языков программирования, а также с командой преподавателей и системой предстоящих занятий.

2-я лекция: также является вступительной и знакомит с общими понятиями языков программирования, продолжая тему первой лекции.

3-я лекция: знакомит с понятием и функциями компилирования и рассказывает, каким образом в программах появляются баги (начиная с самого первого «компьютерного жучка»), как их распознать и чем они могут быть вызваны.

4-я лекция: знакомит с типами данных и циклов, некоторыми базовыми функциями и основной схемой составления программы, а также демонстрирует ограниченность возможностей компьютеров и исторические примеры багов, не прошедших бесследно.

5-я лекция: продолжение о багах, плюс раскрывает понятие структуры программы, объясняет, зачем нужны функции внутри кода, в чём важность области действия значений, и вводит функцию strlen. Также из неё вы узнаете, как в CS50 борются с любителями списывать, и научитесь экономить оперативную память компьютера во избежание ошибки сегментации.

6-я лекция: об основах криптографии, массивах и аргументах командной строки.

7-я лекция: знакомит с основными методами сортировки данных. Дэвид Мэйлен рассказывает о пузырьковой сортировке, сортировках выбором, вставкой и слиянием, а зрители проверяют их на практике.

8-я лекция: про сортировку данных методом слияния, а также краткий экскурс в мир побитовых операций.

9-я лекция: продолжение знакомства с оператором условия — if, введение понятие рекурсии, а также обсуждение скандала концерна Volkswagen и проблемы компьютерной безопасности. Лектор детально рассматривает функцию перестановки — swap, демонстрирует приёмы работы с отладчиком программ и раскрывает структуру и механику оперативной памяти.

10-я лекция: о разных методах составления списков, сохранении информации о программе и использовании указателей и указуемых.

#Лекции@science_newworld

Твоим друзьям это понравится!