У тех, кто собрался изучать программирование самый популярный вопрос: с чего начать. Ответ на него прост: начинайте с проверенных источников! Попробуйте CS50, вам понравится! CS50 Introduction to Computer Science (си-эс фифти) или «Основы программирования и компьютерных наук» признан одним из лучших в мире университетских курсов, посвящённых основам программирования и информационных технологий. CS50 рассчитан не только на абсолютных новичков или людей с начальными знаниями по программированию. Даже опытные программисты найдут в курсе много нового и интересного. Лекции курса смотрятся как увлекательное телевизионное шоу, а задачи взяты из реальной жизни.
Курс подойдёт всем кто хочет изучить основы программирования с нуля: старшеклассникам и студентам даже не-технарям, а также тем кто уже имеет опыт в другой специальности, но мечтает начать программировать.
Что изучают на CS50
- Базовые основы программирования и компьютерных наук. Системы счисления, работа с командной строкой в Linux, циклы, условные переходы и прочие радости синтаксиса языков программирования.
- Концепции алгоритмов, алгоритмичность мышления. Вы узнаете о том, какие задачи и каким образом можно решать с помощью программирования. Курс охватывает все основные алгоритмы, которые нужно знать и понимать.
- Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработки.
- Основы программирования для начинающих на языке Cи и визуальном языке Scratch. Большинство примеров и заданий студенты создают на языке Cи.
- Основы баз данных и SQL.
- Веб-разработка: основы CSS, HTML, JavaScript и PHP.
- Основы подготовки презентации проектов по программированию.
Структура курса CS50
Курс CS50 на JavaRush состоит из 11 уровней. Каждый уровень состоит из:
- Вступления, в котором кратко рассказывается, какие знания вы получите после прохождения текущего уровня.
- Двух видеолекций. Эти лекции — основа курса, в них подаётся вся важная информация для решения практических задач. Они очень информативны, но — хвала Дэвиду Малану — ещё и весьма увлекательны.
- Дополнительных материалов к лекциям. После почти каждой видеолекции вы встретите уроки с теоретическими текстовыми материалами. Они созданы главным образом для повторения материалов видеолекции, но также — для углубления знаний. Некоторые вопросы, которые в лекциях рассказываются вскользь, раскрыты в дополнительных материалах более полно. Дополнительные материалы основаны на конспектах семинарских занятий и «шортов» (коротких видео), выпущенных в Гарвардском университете для студентов CS50.
- Практических заданий. В конце каждого уровня вы будете получать практические задания по темам, пройденным в лекциях. Чтобы новичкам было легче, все практические задания будут сопровождаться пояснениями.
- Ссылок на код из лекций, а также ссылок на дополнительные материалы, рекомендации гарвардской профессуры, а также русскоязычная подборка.
Видео лекции курса CS50 на русском
На просторах интернета можно найти два варианта перевода, первый из них представляет из себя записи 2015 года переведённые при поддержке курсов JavaRush и студией VertDider — известной переводами образовательных программ. Второй вариант вариант это уже перевод лекций 2016 года выполненный некими level 80. С него и начнём.
CS50 2016 #0 на русском: язык Scratch
Неделя 0 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке начинается с рассмотрения графического языка. Это язык Scratch (Скретч). Графический язык, который создан сотрудниками Массачусетского технологического института.
Наконец мы приступаем к практической части курса CS50 на русском от Гарвардского университета. Практическая часть курса представляет собой практические занятия, так называемые Problem Sets, пошаговое руководство и «шоты» — коротенькие видеообзоры определенной узконаправленной темы. Практические занятия являются логичным дополнением курса лекций CS50 на русском, а конкретно этот пост относится к практическому занятию к лекции Недели 0, посвященной языку Scratch. Это своего рода уроки Scratch для начинающих.
CS50 2016 #1 на русском: язык С
Неделя 1 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. На неделе 1 профессор Дэвид Мэлэн проведет аналогию между графическим языком Scratch и низкоуровневым языком программирования C. Фактически все программы, реализованные на языке Scratch на неделе 0, будут реализованы используя язык программирования C.
CS50 2016 #2 на русском: массивы
Неделя 2 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. На второй неделе у вас будет грандиозная возможность с головой окунуться в программирование на языке С, первое знакомство с которым произошло на неделе 1, а также рассмотреть массивы.
CS50 2016 #3 на русском: алгоритмы
Неделя 3 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. На неделе 3 мы рассмотрим методы сортировки данных, их алгоритмы, а также узнаем какой метод самый эффективный и по традиции в самом начале недели 3 будет краткий обзор массивов данных и материала с недели 2.
CS50 2016 #4 на русском: память
Неделя 4 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. На неделе 4 мы рассмотрим память компьютера, а именно — взаимодействие кода программы и памяти компьютера. И по обычаю начало недели 4 сопровождается кратким обзором материала алгоритмов сортировки данных с недели 3.
CS50 2016 #5 на русском: структуры данных
Неделя 5 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. На пятой неделе мы изучим структуры данных, что позволит использовать память компьютера эффективнее. В начале недели 5 вы увидите краткий обзор предыдущей недели 4, в которой мы рассматривали память компьютера.
CS50 2016 #6 на русском: HTTP
Неделя 6 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. На неделе 6 мы оставим позади язык C и рассмотрим веб-программирование, а точнее — протоколы передачи данных и язык HTML. Вы узнаете что такое Интернет. Мы также вспомним, структуры данных, которые мы изучили на неделе 5.
CS50 2016 #7 на русском: машинное обучение
Неделя 7 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. На неделе 7 мы вплотную начнём рассматривать основы языка Python, узнаем какой алгоритм применяется для распознавания содержания изображений и с головой окунёмся в приложения группировки текста по смыслу. На неделе 7 мы узнаем о том, что такое машинное обучение и вспомним что такое Интернет с предыдущей недели.
CS50 2016 #8 на русском: язык Python
Неделя 8 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. На неделе 8 мы выполним полное погружение в язык Python, перенесём все программы с языка C на язык Python. На неделе 8 мы рассмотрим MVC и узнаем, как создаются динамические веб-сайты с помощью языка Python. Мы создадим свой собственный веб-сервер и вспомним машинное обучение с предыдущей недели.
CS50 2016 #9 на русском: язык SQL
Неделя 9 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. Неделя 9 посвящается знакомству с языком структурированных запросов SQL. На неделе 9 мы рассмотрим простой и удобный способ хранения, получения, обновления, удаления данных, используя язык SQL. Мы создадим нашу первую таблицу в базе данных в программе SQLite и продолжим изучать язык Python, который рассмотрели на предыдущей неделе.
CS50 2016 #10 на русском: язык JavaScript
Неделя 10 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. Неделя 10 посвящается рассмотрению языка Javascript. На десятой неделе мы рассмотрим язык Javascript, который позволяет взаимодействовать с пользователем на стороне клиента, в браузере. Язык Javascript даёт возможность динамически генерировать содержимое страницы без её перезагрузки, а также изменять структуру элементов DOM. В начале Недели 10 мы вспомним язык SQL, язык разметки HTML и CSS.
CS50 2016 #11 на русском: виртуальная реальность
Неделя 11 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. Неделя 11 является последней лекцией курса по основам программирования CS50 2016 года. На последней неделе курса мы подведём итоги, сыграем в несколько игр и увидим какую роль играет виртуальная реальность в развлечениях и исследованиях. Кроме того, подведём итоги курса и вспомним всё, начиная с недели 0 и языка Scratch.
CS50 2015 на русском: лекция #1
Это Хогвартс? Нет, друзья, это Гарвард и первая лекция (Week 0) легендарного курса по основам программирования CS50 с русским переводом.
Даже на этом вводном занятии (хотя мозг отказывается воспринимать это яркое интерактивное действо как «занятие») @David Malan уже успел рассказать и показать много интересного.
Вот о чём:
- родной язык компьютеров — двоичная система счисления
- ASCII — как записываются символы
- как алгоритмизировать задачи на живых примерах
- почему Дэвид разорвал телефонный справочник или что такое двоичный поиск
- сложность алгоритма: что, как и почему
- о том, что такое циклы, расскажет никто иной, как Марк Цукерберг, основатель Facebook
- …а ещё вы увидите его же в 2005 году, в качестве приглашённого гостя CS50. Хм… судя по аудитории, интерес к технологиям вырос в десятки раз!
CS50 2015 на русском: лекция #2
//Перезалили 2-ю лекцию. Теперь её можно смотреть с мобильных устройств.
Краткое описание второй лекции (Week 0, continued):
В этот раз @David Malan и его помощники отправились в (не такой уж) далекий Коннектикут, в Йельский университет.
Студенты этого представителя «Лиги плюща» с энтузиазмом приняли гарвардскую команду, и узнали много нового из лекции, а именно:
- Что такое алгоритмы. Казалось бы, такое простое понятие, но на самом деле алгоритмизовать даже столь элементарный процесс, как намазывание арахисового масла на тост совсем не просто.
- Как эффективно посчитать количество людей в аудитории? У нас есть такой алгоритм.
- Есть такое английское выражение «From Scratch». Переводится оно как «С самого начала». Но можно также перевести как «Начиная со Scratch», если слово Scratch понимать как специальный учебный язык программирования. Так вот, вас познакомят со Scratch — замечательной разработкой Массачусетского технологического университета и покажут, как писать с её помощью программки.
А ещё вы увидите, какие шедевры на Scratch написали студенты CS50 прошлых годов =).
CS50 2015 на русском: лекция #3
printf(«Вышла третья лекция гарвардского курса CS50 на русском!\n»);
Необычный заголовок знаменует конец введения в курс и начало серьёзной учёбы. Сложность возрастёт, но это только раззадоривает! И что ещё радует: третья лекция такая же увлекательная, примеры — живые, диджей — на месте=). Итак, с чем мы познакомимся:
- Язык программирования C. На примере простейшей программы Дэвид растолкует основные конструкции языка, пользуясь аналогиями с изученными на нулевой неделе «пазлами» Scratch;
- Облачная IDE, в которой мы будем писать программы на C и не только;
- Вот такие штуки: jharvard@ide50:~/workspace $ make hello. Выглядит как заклинание? К концу лекции станет понятно, что к чему. Это одна из команд Linux. Выучим ещё парочку необходимых для запуска приложений из командной строки.
И немного интересных фактов о первом программируемом американском компьютере (из тех, что целую комнату занимают), а также о первом обнаруженном баге=).
CS50 2015 на русском: лекция #4
Гарвардский курс по основам программирования CS50: лекция #4: углубляемся в C и делаем первые задания.
В четвёртой лекции мы углубимся в язык С и изучим всё необходимое для выполнения первых трёх серьёзных заданий по программированию. Это циклы, условия, типы данных, переменные и функции.
Задания, к слову весьма разнообразные, совсем не скучные. Выполнив их, вы отточите использование библиотек, ввод/вывод и циклы вместе со знаменитым водопроводчиком Super Mario, посчитаете, сколько воды вы расходуете во время душа и запрограммируете первый относительно серьёзный алгоритм для вычисления минимального количества монеток для выдачи сдачи.
Задания не слишком сложные, но требуют от новичков задействовать всё, что было выучено на третьей и четвёртой лекции, плюс немного подумать. Смело к работе, а если что-то не получается, задавайте вопросы, мы будем рады помочь=).
CS50 2015 на русском: лекция #5
Каждый год примерно 3% студентов Гарвардского курса по основам программирования CS50 пытаются смошенничать во время учёбы, например, выдав чужой код за свой. Этой статистикой @David Malan поделился на пятой лекции CS50. Представляете, какой процент был бы в наших вузах?… Впрочем, не будем о грустном, давайте лучше о знаниях.
Вот что вам расскажут в текущей лекции:
- Баги. Без этих верных спутников разработчиков никуда не деться, нужно научиться их выискивать. Дэвид расскажет о некоторых типах багов. Начнёт с тех, которые сложнее выцепить: логических;
- Откровение: бесконечный цикл на самом деле не такой уж и бесконечный;
- Функциональная декомпозиция: приём для повышения читаемости кода и удобства кодирования;
- Знай свои фигурные скобки: область действия переменных;
- Объявление функций до реализации: специально для C;
- Строки и как с ними работать;
- Что такое ошибка сегментации;
- Милые щеночки! В стриме. Не пропустите =).
- Как едят шоколадки и M&M’s в Гарварде. Наглядное пособие.
… ну а следующая лекция будет ещё интереснее: молочное чудо Ovaltine и криптография. Одно только звучание завораживает!
CS50 2015 на русском: лекция #6
Каждый раз, когда вы ловите себя на том, что копируете и вставляете куски кода, спрашивайте себя: а нет ли другого способа? В шестой лекции Гарвардского курса по основам программирования CS50 будет много полезного для нахождения «других способов», но и веселья хватит сполна.
Кстати, её будет вести молодой лектор Роб Боуден. Но Дэвид Малан также вертикально поприсутствует =). Что значит «вертикально»? Узнаете в начале лекции.
Ну а потом начнется серьезная работа:
- Роб объяснит, что такое массивы, одномерные и многомерные;
- Что такое аргументы командной строки, какова их связь с элементами массивов и как их использовать непосредственно в программах;
- Немного приоткроет завесу тайны над тем, что такое криптография, но подробнее о шифрах узнаете из дополнительных материалов.
Смотрите лекцию, читайте о шифрах, и… не забывайте решать побольше задач!
CS50 2015 на русском: лекция #7
Гарвардский курс по основам программирования CS50, седьмая лекция: поиск Майка Смита продолжается!
Помните разорванный телефонный справочник из самой первой лекции CS50? В седьмой лекции он возвращается! Возвращается, чтобы сделать фразу «эффективность алгоритмов» не пустым звуком, а пояснить на примере. Все программисты думают о скорости работы программы и о том, сколько памяти она при этом «съест». На учебных задачках это не так очевидно, но когда мы работаем с большими массивами данных (как почти везде в «Энтерпрайзе»), эти вопросы становятся первоочередными.
Представьте себе, что данные в телефонном справочнике не отсортированы по алфавиту. Представляете, сколько времени у нас бы ушло на то, чтобы его там найти? С учётом того, что в телефонном справочнике нет человека с таким именем, пришлось бы перебирать все строчки подряд — и всё впустую! Но есть выход: данные всегда можно отсортировать.
И в седьмой лекции Дэвид Малан расскажет об известных алгоритмах сортировки — пузырьковой, вставки и выбора. Эффективны ли они? Подсказка: не слишком, в чем это проявляется — узнаете из лекции. Но почему они в таком случае знамениты и зачем их изучать? Дело в том, что они довольно просты в реализации, а на их основе можно создавать уже более продвинутые алгоритмы сортировки.
А ещё, вы услышите, как звучат алгоритмы сортировки. Незабываемая музыка программирования уже доступна в переводе седьмой лекции.
CS50 2015 на русском: лекция #8
Восьмая лекция Гарвардского курса по основам программирования CS50 пройдёт в необычной обстановке: Дэвид Малан окажется в окружении зелёных стен библиотеки Вайднера. И пускай они выглядят не так эффектно, как полюбившийся студентам театр Сандерса (та самая огромная торжественная аудитория, в которой обычно проходят занятия), это никак не повлияло на увлекательность лекции! В этот раз мы:
- Узнаем, может ли рекурсия помочь нам в поисках Майка Смита. И вообще, узнаем, что это за загадочный инструмент такой — рекурсия — и как её применять.
- Разберёмся, с понятием сортировки слиянием, и поймем, как можно её реализовать с помощью рекурсии. Снова разделяем и властвуем, уже практически по привычке.
- Станем на шаг ближе к пониманию загадочного компилятора Clang и его работе. Продолжим разбираться с тем, что находится «под капотом» программы и оценим путь от исходного кода через ассемблерный к объектному.
- Столкнёмся с такими вот знаками: & | ^ ~. Это — не «птичий язык», а побитовые операторы, они позволяют добраться до отдельных битов данных. Для расшифровки каждого из них Дэвид воспользуется весьма необычным инструментом — доской и маркерами! Даже такое «ретро» изредка проскакивает на CS50 =).
- А еще Дэвид приоткроет завесу тайны: в практическом задании вам предстоит вспомнить детство и поиграть в «пятнашки». Только в этот раз они будут написаны на Си.
- Наконец, вы увидите милую беседу Эрика Шмидта из Google и одного бывшего сенатора с каким-то знакомым лицом по имени Барак. Эрик попросил Барака предложить самый эффективный способ отсортировать миллион 32-битных целых чисел. Ответ нынешнего президента США вы узнаете из лекции.
CS50 2015 на русском: лекция #9
Гарвардский курс, основы программирования CS50, лекция 9: обман с помощью программирования, рекурсия, указатели и отладка приложений
Девятая лекция CS50 получилась очень интересной и разнообразной по содержанию. В ней задействованы даже автомобили VW =). Конечно, не непосредственно, но в качестве весьма удачного примера того, как с помощью простых программных команд можно написать сложную программу и обмануть профессиональную комиссию, проверяющую систему контроля выхлопа. Да, руководствуясь некоторыми параметрами приложение может понять, что его подопечную машинку сейчас тестирует и выдаст нужный ревизорам результат.
Примерно так же работает и вредоносное ПО, запуская незаметных «троянских коней» в системы. На занятии Дэвид расскажет общие принципы работы такого ПО, почему, даже досконально изучив код приложения, нельзя быть уверенным в его честности и какова роль «протокомпилляторов» в этом процессе.
Кроме этого:
- Дэвид подробнее расскажет о рекурсии и сравнит циклический и рекурсивный алгоритмы для одной и той же задачи.
- Научит, как менять переменные местами с помощью дополнительного параметра, без него, а также с применением загадочного оператора XOR.
- Продемонстрирует, как нужно отлаживать программку на примере CS50 IDE. Отладка — полезна, она действительно ускоряет процессы разработки в разы, так что это важное умение и в каждой среде разработки его следует усвоить чтобы повысить собственную продуктивность.
- Вы получите ещё немного полезной информации о стеке памяти и локальных переменных.
- Указатели или как в Си напрямую общаться с памятью! Вот мы дошли и до них. Сила и слабость Си, мощнейший инструмент, который в руках новичка или злоумышленника может превратиться в ядерную бомбу.
CS50 2015 на русском: лекция #10
Гарвардский курс по основам программирования CS50, 10 лекция, конец 4 недели
В шпионских (или любых других) боевиках, вы, наверное, замечали такую штуку: хакер сидит в тёмной комнате, весь такой загадочный, подсвеченный монитором своего компьютера и всякими цветными диодами непонятного происхождения. На мониторе — не менее загадочные буковки, обычно зелёные с курсором-нижнее-подчеркивание и малюсенькая карта, на которой где-то в дебрях спрятан интересующий спецслужбы объект. Приходит команда «увеличь этот участок изображения», дабы обнаружить, скажем, номер автомобиля, отражённый в чьем-нибудь глазу… И специалист бесконечно масштабирует картинку, пока отражение не станет ясным и четким…
Вам нравятся такие сцены? Если да, спешим вас огорчить: после 10 лекции CS50 вы уже не будете смотреть их прежними глазами, понимая всю их несуразицу и преувеличение. Впрочем, будущему программисту это необходимо сделать. Это как рано или поздно все узнают правду о Санта Клаусе. С другой стороны, если в мире будет всё больше и больше грамотных с точки зрения IT людей, Голливуду придется повысить качество подобных сцен, не лепя случайные наборы терминов куда ни попадя.
А всё дело в том, что фотографии состоят из пикселей (или точек), и когда мы увеличиваем фотографию, рано или поздно мы дойдем до одного пикселя и как бы мы дальше ни увеличивали изображение, дополнительной глубины не появится, перед нами — конечное количество битов. «Это цифра, детка!».
После четвёртой лекции вы сможете приступить к задачнику CS50 для четвёртой недели. Он позволит вам прикоснуться к миру графики и криминальной экспертизы: вы напишете коды для восстановления утраченных изображений и изменения масштаба картинок.
Итого, из лекции вы узнаете:
- Как кодируется изображение. Слово bitmap станет родным и понятным.
- Вы узнаете, как понять (с точки зрения компьютера), что перед вами именно JPEG-файл и какую роль в этом играет комбинация битов 244 216 255.
- Вспомните (или изучите) 16-ричные числа. Запись 0хff станет столь же очевидной, как 255 а десятичной системе.
- Что такое struct в Си? Собственные типы данных в Си.
- Сравнение содержимого строк в Си (strcmp) и другие средства работы со строками.
- Адресная арифметика.
- char* t = malloc((strlen(s) + 1) * sizeof(char)) — как вам такая строчка кода? После лекции вы будете понимать, что к чему, и сами сможете писать нечто подобное =)
- Немного синтаксического сахара =)
- Как писать swap с указателями и зачем
Ну и, чтобы расслабиться, напоследок вы посмотрите пластилиновый мультфильм. Не просто мультфильм, но мультфильм про указатели. А если после этого произведения искусства вы только напряжётесь, DJ к вашим услугам.
CS50 2015 на русском: лекция #11
Гарвард CS50, 11 лекция: перестаём бояться указателей и работаем с памятью
Работа с памятью и указателями, пожалуй, — один из самых сложных моментов CS50. Даже опытные программисты часто ошибаются и заваливают систему из-за утечек памяти, чего уж тут говорить о новичках. Но нам повезло: CS50 — отличный курс, поэтому нам нечего бояться. В 11 лекции мы кое-что изучим, а кое-что повторим вот о чём:
- Почему не стоит ждать ничего хорошего от разыменовывания «мусорных» значений или недействующих указателей.
- scanf(“%i”, &x) — что значит & в этой записи
- char* и string — что между ними общего?
- Как правильно выделять память, чтобы не было ошибки сегментации
- Изучаем работу с памятью на примере функций библиотеки CS50 и… постепенно отказываемся от неё, как от ходунков.
- Valgrind — мощный инструмент для поиска утечек памяти, начинаем с ним работать.
- Связные списки Linkedlist в Си: как с ними работать, чем они лучше массивов, а чем — хуже.
- Что общего у стека и стопки подносов в столовой?
CS50 2015 на русском: лекция #12
Середина курса по основам программирования CS50… Ещё остались те, кто считал, что в курсе слишком мало сути и много воды? Очень в этом сомневаемся: последние лекции три-четыре темы вполне себе «взрослые».
Судите сами:
- эффективная работа со связными списками
- канонические операции delete, search и insert. Как пройтись по списку, и найти в нем элемент, а также добавить и удалить
- манипуляции со стеками и очередями
- под капотом: как программа распределяется в памяти
- как с помощью адресов, указателей, связных последовательностей попасть в царство эффективности
- бинарные деревья
- как бы вы сжимали немецкий флаг? Учим алгоритм Хаффмана.
- хэш-таблицы и мгновенный доступ к данным
… А также глубокие мысли Д.Ф. (об этом в конце лекции).
Впечатляет? Нас тоже. Тем не менее, переживать не стоит: профессионалы Гарварда помогут понять даже такие непростые для начинающих темы.
CS50 2015 на русском: лекция #13
13-я лекция Гарвардского курса по основам программирования CS50 (введение в программирование).
В этой лекции мы с вами займёмся веб-программированием и познакомимся с интернет-технологиями. Мы перейдем от командных строк в C к программированию на PHP, JavaScript, познакомимся с HTML, CSS, SQL и многим другим.
CS50 2015 на русском: лекция #14
14-я лекция легендарного гарвардского курса по основам программирования CS50 (введение в программирование) познакомит вас с HTML и работой web-сервера Apache.
Также в ходе лекции мы посмотрим, как реализована загрузка главной страницы Facebook и многое другое.
В следующей лекции мы закончим с изучением HTML и CSS, после чего перейдем к изучению PHP =)
CS50 2015 на русском: лекция #15
Тема пятнадцатой серии цикла — введение в веб-программирование и знакомство с языком программирования PHP и языком разметки HTML.
CS50 2015 на русском: лекция #16
Шестнадцатая серия цикла продолжает рассматривать язык PHP, теперь для разработки веб-приложений, а также знакомит с базами данных и MySQL.
CS50 2015 на русском: лекция #17
Семнадцатая серия цикла продолжает знакомить зрителей с базами данных SQL.
CS50 2015 на русском: лекция #18
Тема восемнадцатой серии цикла — введение в JavaScript и программирование на стороне клиента.
CS50 2015 на русском: лекция #19
В девятнадцатой серии цикла продолжается знакомство с языком JavaScript, а также демонстрируется использование компьютерных технологий в сфере археологии.
CS50 2015 на русском: лекция #20
В двадцатой серии цикла рассматривается тема компьютерной безопасности: излагаются основы личной безопасности в Интернете, принципы работы с паролями, объясняется специфика вредоносного программного обеспечения. Также в лекции затрагиваются проблемы неприкосновенности личных данных в современную цифровую эпоху, в том числе в общественно-политическом контексте.
CS50 2015 на русском: лекция #21
В двадцать первой серии цикла профессор Сказелатти из Стэнфорда рассказывает о системах обработки естественных языков. В лекции рассматриваются алгоритмы распознавания речи, раскрывается понятие статистических моделей распознавания речи, скрытых марковских моделей, вопросно-ответной системы, семантической обработки текста, а также затрагивается тема создания систем невербального общения.
CS50 2015 на русском: лекция #22
В двадцать второй серии цикла профессор Сказелатти из Йельского Университета демонстрирует использование искусственного интеллекта в играх. В лекции рассматриваются алгоритмы минимакс и альфа-бета-отсечение, а также разбирается игра робота в крестики-нолики.
CS50 2015 на русском: лекция #23
В двадцать третьей серии цикла подводятся итоги курса, в игровой форме повторяются некоторые темы, идет непринужденное общение.
Ссылки
Официальный сайт курса — cs50.harvard.edu
Перевод веб-студии Level 80 (YouTube-канал)
Локализация студии Vert Dider (YouTube-канал, группа в VK) при поддержке команды JavaRush.
На сайтах вы сможете найди дополнительные материалы по курсам.