Гарвардский курс программирования на русском языке – Легендарный гарвардский курс по программированию теперь и на русском / Newtonew: новости сетевого образования

Содержание

Гарвардский курс CS50 на русском. Все серии / Vert Dider corporate blog / Habr

Друзья, мы рады сообщить, что перевод всего гарвардского курса CS50 закончен.

Мы писали, что в курсе 24 серии, однако последние две оказались одной и той же лекцией (одна прочитана в Гарварде, а другая в Йеле), поэтому в списке переведённых лекций не 24, а 23.

Список лекций под катом.

Что вы узнаете, прослушав этот курс:
  • Основы компьютерных наук и программирования;
  • Концепции алгоритмов и алгоритмичности мышления. Какие задачи можно решать с помощью программирования и каким образом;
  • Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
  • Основы языка программирования C и Scratch;
  • Основы баз данных и SQL;
  • Веб-разработка: основы CSS, HTML, JavaScript и PHP;
  • Основы подготовки презентации проектов по программированию.


Курс переведён и озвучен нашей студией по заказу JavaRush, и мы хотим сказать им огромное спасибо за поддержку!

Список переведённых лекций:

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

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

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

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

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

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

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

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

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

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

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

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

13-я лекция: о хэшировании данных, сетевых протоколах и о том, как при помощи зашифрованных соединений защитить себя от подозрительных незнакомцев.

14-я лекция: введение в веб-программирование и знакомство с языками HTML и CSS. Впервые в истории студенты двух учебных заведений — Гарварда и Йеля — при помощи современных технологий параллельно проходят обучение на курсе.

15-я лекция: знакомство с языком программирования PHP и языком разметки HTML.

16-я лекция: продолжение рассмотрения языка PHP, теперь для разработки веб-приложений, а также знакомство с базами данных и MySQL.

17-я лекция: продолжение знакомства с базами данных SQL.

18-я лекция: введение в JavaScrip tи программирование на стороне клиента.

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

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

21-я лекция: профессор Сказелатти из Йельского Университета рассказывает о системах обработки естественных языков. В лекции рассматриваются алгоритмы распознавания речи, раскрывается понятие статистических моделей распознавания речи, скрытых марковских моделей, вопросно-ответной системы, семантической обработки текста, а также затрагивается тема создания систем невербального общения.

22-я лекция: профессор Сказелатти из Йельского Университета демонстрирует использование искусственного интеллекта в играх. В лекции рассматриваются алгоритмы минимакс и альфа-бета-отсечение, а также разбирается игра робота в крестики-нолики.

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

Гарвардский курс по основам программирования CS50 теперь на русском / JavaRush corporate blog / Habr

Предыстория: кто мы и как дошли до жизни такой

Мы — команда проекта JavaRush. А JavaRush, кто еще не в курсе, — это полностью автоматизированный обучающий онлайн-курс по Java. Когда-то давно, именно благодаря поддержке хаброюзеров и статьям на хабре, JavaRush и появился. В то время мы собирались переучить на программистов миллион человек.

Очень амбициозно, не так ли? Но, как говорится, «проект, который можно сделать за две недели, мы делали три месяца. Потому что ничего нельзя сделать за две недели».

В нашу миссию — переучить на Java-программистов миллион — мы по-прежнему верим, но также решили поставить себе тактическую цель поскромнее: сделать офигенный онлайн-курс по Java. Считаю, нам это удалось. Мы продолжаем успешно пилить и допиливать наш JavaRush, обросли успешными «выпускниками»… Но сейчас немного о другом.

К сути

Однажды человек из нашей команды случайно наткнулся на видеозаписи лекций Гарвардского курса CS50 («Основы программирования и компьютерных наук»). Вообще-то я известен тем, что очень жестко критикую вузы за их скучные, неинтересные лекции, которые устарели лет на 10 уже в тот самый момент, когда студенты слышат их в первый раз.

Но нет правил без исключений. Гарвардский CS50 — это такой университетский курс, перед которым я снимаю шляпу. Хочу, чтобы все наши студенты и преподаватели посмотрели его. Именно так должен выглядеть современный университетский курс: ярко, познавательно, вдохновляюще.

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

Курс настолько крут, что Йельский университет отказался от собственного введения в программирование в пользу CS50. Более того, уже несколько лет CS50 могут проходить не только студенты Гарварда, но и все желающие, на сайте edX, причем, абсолютно бесплатно. Единственное «но»: курс на английском…

Короче говоря, CS50 нас настолько впечатлил, что мы решили перевести его на русский, хотя там нет ни слова о Java. Мы нашли классных ребят — студию переводов Vert Dider — и совместно принялись за адаптацию лекций.


На кого рассчитан

Если вы — новичок, пройдите CS50. Если кто-то из ваших знакомых приглядывается к ИТ и программированию, советуйте CS50 не глядя. Я серьезно.

CS50 подойдет любому человеку, кто решил стать «айтишником». Пожалуй, его можно рекомендовать и способным 12-летним, и умудренным опытом «перебежчикам» из других профессий. Идеально — старшеклассникам и студентам.

Курс очень прогрессивный и обновляется из года в год. При этом в отличие от большинства подобных университетских обучающих программ (например, MIT 6.00X) от слушателя не требуются знания университетской математики, достаточно школьного уровня.

Кто ведет

Профессор компьютерных наук Дэвид Малан. Возможно, когда вы его увидите, у вас произойдет разрыв шаблона «профессор университета»: он чрезвычайно энергичен и подача информации у него ну очень живая. Думаю, успех курса — во многом его заслуга. Также ему помогают многочисленные ассистенты. Некоторые из них — опытные ребята, некоторые — из числа тех, кто сам совсем недавно прошёл CS50.

Что изучают на CS50


  • Основы компьютерных наук и программирования. Системы счисления, работа с командной строкой в Linux, циклы, условные переходы и прочие радости.
  • Концепции алгоритмов и алгоритмичности мышления. Вы узнаете о том, какие задачи можно решать с помощью программирования и каким образом. О бинарном поиске, простом по сути, но очень эффективном и требующем тщательности в реализации, Дэвид Малан расскажет сходу, прямо на нулевой лекции. И попробуйте потом забыть сцену с разрывом телефонного справочника, а вместе с ней — и полученные знания! Вообще, курс охватывает все основные алгоритмы, которые нужно знать и понимать «айтишникам».
  • Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка.
  • Основы языка программирования C и визуального языка Scratch. Собственно, все основные примеры и задания студенты делают на языке C.
  • Основы баз данных и SQL.
  • Веб-разработка: основы CSS, HTML, JavaScript и PHP. Естественно, только самые азы.
  • Основы подготовки презентации проектов по программированию.

Интересные факты о CS50


  • Курс CS50 появился в Гарварде в 80е годы прошлого столетия.
  • В 2014 году Йельский университет решил отказаться от собственного курса по основам компьютерных наук в пользу CS50. В осеннем семестре 2015 года Дэвид Малан на каждой неделе проводил одну лекцию в аудитории Гарварда, вторую — в аудитории Йельского университета.
  • Да, CS50 сразу же стал самым популярным курсом Йеля: в осеннем семестре 2015 года на него записалось 510 студентов, больше, чем на любой другой курс любой специальности.
  • В Гарварде в 2012 году CS50 был вторым по популярности с 691 зарегистрированным студентом, однако в этом же году курс стартовал на образовательной платформе edX, что расширило его аудиторию еще на 53 000 слушателей со всего мира.
  • Осенью 2014 года CS50 выбился в лидеры в родном Гарварде с 818 записавшимися студентами. Это 12% всех учащихся колледжа.
  • Однажды лекцию CS50 вёл экс-CEO Microsoft Стив Балмер. В своем неповторимом и запоминающемся стиле ;).
  • В 2005 году Марк Цукерберг вел одну из лекций CS50 в качестве приглашенного гостя. Его пришло послушать… 15 человек.
  • Курс выбирают не только профильные студенты, но и те, кто хотят расширить кругозор, узнать что-то о компьютерах. Порой это кардинально меняет жизнь этих «непрофильных» студентов. Например, выпускница факультета истории и литературы Сьюзен Войчицки (Susan Wojcicki) прослушала CS50 на последнем курсе. А затем переехала в Кремниевую Долину. Сегодня она — исполнительный директор YouTube.

Где найти переведенные лекции


Страница, на которой будут размещены лекции курса на русском языке: javarush.ru/cs50.html. Они будут доступны совершенно бесплатно всем пользователям интернета. Перевод первой лекции 20 июня уже был опубликован на ресурсе. Следующую лекцию ждите 27 июня, и далее они будут появляться по мере их готовности.

Следите за обновлениями на страничках JavaRush в социальных сетях:

vk.com/javarush
www.facebook.com/www.javarush.ru

Гарвардский курс Computer Science 50 (CS50) по основам программирования в школе Coddy в Москве

CS50 — это легендарный курс по основам программирования и компьютерных наук. Его уже много лет преподают в Гарварде как обязательный для всех профильных специальностей. Не менее востребован он и среди студентов других специальностей. CS50 — базовый курс компьютерных наук— один из самых популярных во всем мире.

Он настолько крут, что Йельский университет отказался от собственного курса в пользу него.

Гарвардский курс CS50 на русском языке

CS50 очень прогрессивный, не стоит на месте и обновляется из года в год. При этом в отличие от большинства университетских программ, он не требует знаний университетской математики — достаточно школьного уровня.

Когда курс был выложен в интернет в свободный доступ, его по достоинству оценили миллионы слушателей. Долгое время он был доступен только на английском языке, но настолько впечатлил аудиторию, что нашлась команда добровольцев, которая перевела его на русский язык. Просто введите в поисковой системе запрос «курс программирования Гарвард CS50», и найдется множество ссылок для скачивания. Посмотреть все лекции онлайн можно здесь.

CS50 включает комплексное изучение информационных технологий: от систем счисления и алгоритмов до азов искусственного интеллекта.

Специалисты школы программирования для детей CODDY адаптировали курс для детей от 12 лет.

За 8 месяцев обучения мы поговорим о:

  • системах счисления и алгоритмах;
  • операционных системах и библиотеках;
  • строках и массивах;
  • сортировке пузырьком и рекурсии;
  • хэш-таблицах и деревьях;
  • протоколах шифрования и базах данных;
  • веб-программировании и верстке;
  • безопасности и искусственном интеллекте...

...и о многих других вещах, лежащих в основе программирования и компьютерных наук.

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

Обучение включает в себя много практики – реальные задачи из разных сфер науки. Это значительно повышает ценность курса, особенно для русскоязычных школьников, привыкших к переизбытку теории.

Как мы понимаем, что учащийся освоил программу?

Во время обучения мы оцениваем как практическую сторону вопроса (как это сделать?), так и понимание темы (почему и зачем).

Ученики демонстрируют свои знания, решая задачи своим собственным способом, объясняя алгоритмы своими словами, помогая одногруппникам исправлять ошибки и создавая презентации по своим законченным проектам.

Гарвардский курс CS50 на русском языке

CS50 (Computer Science 50) — вводный онлайн курс по компьютерным технологиям из Гарварда и, начиная с 2015 года, Йельского университета. Основным лектором является Дэвид Малан — один из известнейших преподавателей CS.

Содержание курса CS50:

  • Основы компьютерных наук и программирования. Системы счисления, работа с командной строкой в Linux, циклы, условные переходы и пр.;
  • Концепции алгоритмов и алгоритмичности мышления. Вы узнаете о том, какие задачи можно решать с помощью программирования и каким образом;
  • Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
  • Основы языка программирования C и визуального языка Scratch. Основные примеры и задания выполняются на языке C;
  • Основы баз данных и SQL;
  • Веб-разработка: основы CSS, HTML, JavaScript и PHP;
  • Основы подготовки презентации проектов по программированию.

CS50 завоевал статус самого популярного курса Гарварда, надеемся, он понравится и Вам. Ниже приведен список всех лекций и их краткое описание.
Ниже представлены все 23 серии Гарвардского курса по основам программирования, который был прочитан осенью 2015 года. Курс переведён на русский язык и озвучен студией Vert Dider по заказу JavaRush.
.
Здесь Вы можете скачать видео и дополнительные материалы по курсу CS50 (на русском языке):

Скачать курс CS50 с Google Drive

 

Лекция №1

Первое занятие является вводным и несет информативный характер. Вы познакомитесь с двоичной системой, ASCII кодом, алгоритмами и множеством различных необходимых понятий.

.

Лекция №2

Вторая серия курса продолжает первую. Из нее вы более подробно узнаете об алгоритмах, о том, для чего они нужны, и как работают. Также вы научитесь работать со Scratch — специальным языком программирования, который в игровой форме поможет Вам писать программы.

.

Лекция №3

Теперь у вас появится новый инструмент — язык программирования C. Знакомство с ним будет проходить легче благодаря уже знакомому Scratch. После лекции вы сумеете работать со своим кодом с помощью командной строки и узнаете некоторые интересные факты.

.

Лекция №4

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

.

Лекция №5

В пятой лекции вы узнаете о том, как устранять баги. Также узнаете про бесконечные циклы и что такое функциональная декомпозиция. Познакомитесь со строками и с понятием «ошибка сегментации».

.

Лекция №6

Шестое занятие будет проведено лектором Робом Боуденом, но Дэвид также будет на месте. Вы поймете, что такое массивы и какими они бывают. А также познакомитесь с криптографией.

.

Лекция №7

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

.

Лекция №8

Рекурсия, сортировка слиянием, компилятор Clang: все это станет понятно вам после восьмой лекции этого курса. Вы узнаете, как применять побитовые операторы, и вообще поймете цель их использования.

.

Лекция №9

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

.

Лекция №10

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

.

Лекция №11

После одиннадцатой лекции Вы сможете свободно работать с указателями и памятью. Узнаете, что такое char* и string, их сходства и различия, а также начнете работать с Valgrind.

.

Лекция №12

Двенадцатая лекция посвящена особенностям стека, очереди и связного списка. Разбор возможных проблем, связанных с доступом к памяти. Тут же рассматривается структура двоичного дерева, префиксного дерева и работа со сжатием файлов.

.

Лекция №13

В этой лекции вы займетесь веб-программированием и познакомитесь с интернет-технологиями. Еще перейдете от командных строк в C к программированию на PHP, JavaScript, познакомитесь с HTML, CSS, SQL и прочим.

.

Лекция №14

Вы закончите изучение HTML и CSS, узнаете как работает веб-сервер Apache, а также увидите реализацию загрузки главной страницы Facebook.

.

Лекция №15

Пятнадцатое занятие глубже введет вас в веб-программирование и познакомит с PHP и HTML.

.

Лекция №16

Ваше знакомство с веб-разработкой продолжается, но теперь вы узнаете и о том, как работать с базами данных и что такое MySQL.

.

Лекция №17

Вы продолжите знакомство с базами данных и с SQL.

.

Лекция №18

Погружение в JavaScript и front-end разработка –темы восемнадцатой лекции.

.

Лекция №19

В девятнадцатой лекции вы продолжите работать с JavaScript, а также узнаете о том, как компьютерные технологии используются в археологии.

.

Лекция №20

Компьютерная безопасность и то, как работать с паролями, что делать с вредоносным программным обеспечением — все то, о чем вы узнаете из двадцатой лекции. Будет также затронута проблема неприкосновенности личных данных.

.

Лекция №21

Эта видеозапись курса будет об искусственном интеллекте. Вы познакомитесь с Элизой. И это не очередной лектор, знакомство вас удивит и надолго останется в памяти. Обработка естественного языка и распознавание речи, невербальное общение также будут объяснены и обсуждены во время лекции.

.

Лекция №22

В этом видео профессор Йельского университета демонстрирует использование искусственного интеллекта в играх. Вы рассмотрите алгоритмы минимакс, альфа-бета-отсечение, а также разберете игру в крестики-нолики.

.

Лекция №23

В двадцать третьей лекции подводятся итоги курса, в игровой форме повторяются некоторые темы, идет непринужденное общение.

.

Надеемся, что данная статья была Вам полезна!
.

Самый полный русскоязычный перевод Гарвардского курса по программированию CS50 2015, бесплатно на YouTube

В этой статье я хочу немного рассказать о самом лучшем в мире курсе по программированию.

С 2013 года наша небольшая команда занимается переводом и адаптацией англоязычных видеокурсов. За это время мы перевели и адаптировали свыше 150 часов материала. Перед тем как приступать к работе, мы анализировали материалы нескольких обучающих онлайн-школ, и выбирали, на наш педагогический взгляд, самую лучшую, которая максимально доступно, структурированно и кратко подаёт обучающий материал. В результате чего нам приходилось просматривать по несколько курсов касающихся одной и той же тематики, а после выбирать тот, который наиболее качественный и доступный для понимания новичкам.

Как оказалось, действительно качественных курсов и преподавателей не так уж и много. В русскоязычном обучающем пространстве достаточно часто встречаются пересъёмки или адаптация зарубежных курсов, которые пользуются популярностью у американских или европейских специалистов.


На данный момент с точки зрения нашей команды для начинающих программистов наилучшим является Гарвардский курс CS50. По ниже указанным ссылкам вы сможете найти самый полный русскоязычный перевод этого курса в одном месте.


Из нулевой недели вы изучите то, как, не зная ничего о программировании можно создать простое приложение используя программу SCRATCH, как компьютер понимает ваши команды и что такое ASCII, Алгоритмы и Бинарная нотация.


Просмотрев первую неделю, вы узнаете про основные инструменты, которые используются в программировании для реализации разных задач. А именно, что такое переменные, методы (функции), приоритетность, циклы, приведение типа, стили, Булевые выражения или условия, компиляторы, библиотеки и что такое Clang.


Просмотрев вторую неделю, вы узнаете о том, что такое массивы, метод Return или возвращение результата, область видимости, глобальные переменные, перенаправление, аргументы командной строки, шифр Цезаря, шифр Виженера и RSA.

Просмотрев третью неделю, вы узнаете о том, что такое асимптотическая нотация, линейный поиск, бинарный поиск, сортировка выбором, сортировка пузырьком, сортировка вставками и быстрая сортировка.


Просмотрев четвёртую неделю, вы узнаете о том, каким образом происходят разные взаимодействия с файлами, что такое GDB, сортировка слиянием, указатели, рекурсия, символьные строки и структуры.


Просмотрев пятую неделю, вы узнаете о том, что такое Valgrind и связные списки, а также, мы рассмотрим подключаемую к нашим программам библиотеку CS50.


Просмотрев шестую неделю, вы узнаете о том, что такое хеш-таблицы, очереди, деревья и рекурсивные деревья.


Просмотрев седьмую неделю, вы узнаете о том, что такое http, html, css и какие особенности синтаксиса у языка php.


Просмотрев восьмую неделю, вы узнаете о том, какие бывают специфические особенности в PHP веб-разработке, что такое PHP веб-сессии, IP и SQL.


Просмотрев девятую неделю, вы узнаете, что такое DOM, MVC и TCP.


Просмотрев десятую неделю, вы узнаете, что такое JavaScript и Ajax.

Получив все эти знания, вы сможете за достаточно короткое время стать программистом, очень быстро изучать новые языки программирования, и увеличивать свой скилл от уровня junior к уровню middle и senior.

P.S. В ближайшем будущем мы выложим на нашем канале курс по стартапам и бизнесу от Стэнфордского Университета с ведущими лекторами, которые создали такие компании, как PayPal, Facebook, WhatsApp, Airbnb, Pinterest, Xerox и т.д.

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

Вот уже несколько месяцев специально для JavaRush мы переводим и озвучиваем самый популярный в мире университетский курс о CS50 — «Основы компьютерных наук и искусства программирования» (трейлер). Его уже много лет очно читают для студентов Гарварда и для воспитанников Йельского университета, а в последнее время ещё и заочно для многомиллионной аудитории интернета.
Это перевод самой новой версии курса, который стартовал осенью 2015 года. В курсе 24 лекции и постепенно мы переведём их все. Намедни мы перевели 15-ю лекцию, её вы найдёте под катом в списке всех переведённых на сегодняшний день лекций.

Что вы узнаете, прослушав этот курс:

  • Основы компьютерных наук и программирования;
  • Концепции алгоритмов и алгоритмичности мышления. Какие задачи можно решать с помощью программирования и каким образом;
  • Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
  • Основы языка программирования C и Scratch;
  • Основы баз данных и SQL;
  • Веб-разработка: основы CSS, HTML, JavaScript и PHP;
  • Основы подготовки презентации проектов по программированию.

Список переведённых лекций:

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

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

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

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

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

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

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

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

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

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

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

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

13-я лекция: о хэшировании данных, сетевых протоколах и о том, как при помощи зашифрованных соединений защитить себя от подозрительных незнакомцев.

14-я лекция: введение в веб-программирование и знакомство с языками HTML и CSS. Впервые в истории студенты двух учебных заведений — Гарварда и Йеля — при помощи современных технологий параллельно проходят обучение на курсе.

15-я лекция: знакомство с языком программирования PHP и языком разметки HTML.

Гарвардский курс CS50 по основам программирования. Часть 1

Мы — команда проекта JavaRush. А JavaRush, кто еще не в курсе, — это полностью автоматизированный обучающий онлайн-курс по Java. Когда-то давно, именно благодаря поддержке хаброюзеров и статьям на хабре, JavaRush и появился. В то время мы собирались переучить на программистов миллион человек. Очень амбициозно, не так ли? Но, как говорится, «проект, который можно сделать за две недели, мы делали три месяца. Потому что ничего нельзя сделать за две недели».

В нашу миссию — переучить на Java-программистов миллион — мы по-прежнему верим, но также решили поставить себе тактическую цель поскромнее: сделать офигенный онлайн-курс по Java. Считаю, нам это удалось. Мы продолжаем успешно пилить и допиливать наш JavaRush, обросли успешными «выпускниками»… Но сейчас немного о другом.

Однажды человек из нашей команды случайно наткнулся на видеозаписи лекций Гарвардского курса CS50 («Основы программирования и компьютерных наук»). Вообще-то я известен тем, что очень жестко критикую вузы за их скучные, неинтересные лекции, которые устарели лет на 10 уже в тот самый момент, когда студенты слышат их в первый раз.Но нет правил без исключений. Гарвардский CS50 — это такой университетский курс, перед которым я снимаю шляпу. Хочу, чтобы все наши студенты и преподаватели посмотрели его. Именно так должен выглядеть современный университетский курс: ярко, познавательно, вдохновляюще.

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

Курс настолько крут, что Йельский университет отказался от собственного введения в программирование в пользу CS50. Более того, уже несколько лет CS50 могут проходить не только студенты Гарварда, но и все желающие, на сайте edX, причем, абсолютно бесплатно. Единственное «но»: курс на английском…

Короче говоря, CS50 нас настолько впечатлил, что мы решили перевести его на русский, хотя там нет ни слова о Java. Мы нашли классных ребят — студию переводов Vert Dider — и совместно принялись за адаптацию лекций.

А теперь подробнее о CS50

На кого рассчитан Если вы — новичок, пройдите CS50. Если кто-то из ваших знакомых приглядывается к ИТ и программированию, советуйте CS50 не глядя. Я серьезно.

CS50 подойдет любому человеку, кто решил стать «айтишником». Пожалуй, его можно рекомендовать и способным 12-летним, и умудренным опытом «перебежчикам» из других профессий. Идеально — старшеклассникам и студентам.

Курс очень прогрессивный и обновляется из года в год. При этом в отличие от большинства подобных университетских обучающих программ (например, MIT 6.00X) от слушателя не требуются знания университетской математики, достаточно школьного уровня.

Кто ведет

Профессор компьютерных наук Дэвид Малан. Возможно, когда вы его увидите, у вас произойдет разрыв шаблона «профессор университета»: он чрезвычайно энергичен и подача информации у него ну очень живая. Думаю, успех курса — во многом его заслуга. Также ему помогают многочисленные ассистенты. Некоторые из них — опытные ребята, некоторые — из числа тех, кто сам совсем недавно прошёл CS50.

Что изучают на CS50

  • Основы компьютерных наук и программирования. Системы счисления, работа с командной строкой в Linux, циклы, условные переходы и прочие радости.
  • Концепции алгоритмов и алгоритмичности мышления. Вы узнаете о том, какие задачи можно решать с помощью программирования и каким образом. О бинарном поиске, простом по сути, но очень эффективном и требующем тщательности в реализации, Дэвид Малан расскажет сходу, прямо на нулевой лекции. И попробуйте потом забыть сцену с разрывом телефонного справочника, а вместе с ней — и полученные знания! Вообще, курс охватывает все основные алгоритмы, которые нужно знать и понимать «айтишникам».
  • Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка.
  • Основы языка программирования C и визуального языка Scratch. Собственно, все основные примеры и задания студенты делают на языке C.
  • Основы баз данных и SQL.
  • Веб-разработка: основы CSS, HTML, JavaScript и PHP. Естественно, только самые азы.
  • Основы подготовки презентации проектов по программированию.

 

Интересные факты о CS50

  • Курс CS50 появился в Гарварде в 80е годы прошлого столетия.
  • В 2014 году Йельский университет решил отказаться от собственного курса по основам компьютерных наук в пользу CS50. В осеннем семестре 2015 года Дэвид Малан на каждой неделе проводил одну лекцию в аудитории Гарварда, вторую — в аудитории Йельского университета.
  • Да, CS50 сразу же стал самым популярным курсом Йеля: в осеннем семестре 2015 года на него записалось 510 студентов, больше, чем на любой другой курс любой специальности.
  • В Гарварде в 2012 году CS50 был вторым по популярности с 691 зарегистрированным студентом, однако в этом же году курс стартовал на образовательной платформе edX, что расширило его аудиторию еще на 53 000 слушателей со всего мира.
  • Осенью 2014 года CS50 выбился в лидеры в родном Гарварде с 818 записавшимися студентами. Это 12% всех учащихся колледжа.
  • Однажды лекцию CS50 вёл экс-CEO Microsoft Стив Балмер. В своем неповторимом и запоминающемся стиле ;).
  • В 2005 году Марк Цукерберг вел одну из лекций CS50 в качестве приглашенного гостя. Его пришло послушать… 15 человек.
  • Курс выбирают не только профильные студенты, но и те, кто хотят расширить кругозор, узнать что-то о компьютерах. Порой это кардинально меняет жизнь этих «непрофильных» студентов. Например, выпускница факультета истории и литературы Сьюзен Войчицки (Susan Wojcicki) прослушала CS50 на последнем курсе. А затем переехала в Кремниевую Долину. Сегодня она — исполнительный директор YouTube.

 

Где найти переведенные лекции

Страница, на которой будут размещены лекции курса на русском языке: javarush.ru/cs50.html. Они будут доступны совершенно бесплатно всем пользователям интернета.

Вторая часть статьи

Источник: Хабрахабр

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *