Гарвардские лекции по основам программирования CS50 — теперь на русском

Онлайн-курсы JavaRush и студия VertDider запустили проект по переводу на русский язык популярных лекций по основам программирования из Гарварда — CS50. Оригинальный курс на английском был выложен в открытый доступ уже несколько лет назад, но переводится на русский впервые. За основу взяли самую свежую версию — ту, что стартовала в самом Гарварде осенью 2015 года.

Передаём слово ребятам из JavaRush.

Зепп Бренниган, генеральный директор JavaRush

Прежде, чем стать типичным программистом, человеку нужно пройти путь типичного студента. Под «студентом» тут имеется в виду человек, который основательно учится чему-то новому. Учится не обязательно в вузе: возможно, он самостоятельно перерывает интернет в поисках полезной информации. Среди тонн информационного мусора порой можно отыскать настоящие алмазы, хотя при нынешних размерах и структуре глобальной сети сделать это весьма и весьма непросто.

Однажды Zapp, глава JavaRush (о JavaRush будет в конце статьи), рылся в интернете, пытаясь найти такие вот алмазы для новичков в программировании — студентов JavaRush — и наткнулся на CS50. Под этой аббревиатурой скрывается вводный курс по основам компьютерных наук и искусства программирования. Его читают студентам Гарвардского университета, с недавнего времени — еще и в Йеле. И «заочно» во всем мире, посредством образовательной интернет-платформы edX. Причем совершенно бесплатно!

Признаться, курс зацепил Zapp’а, хотя обычно он не слишком (мягко говоря) жалует университеты, пичкающие студентов технологиями, утратившими актуальность ещё во времена бурной юности их родителей. Вузовские «айтишные» лекции еще и скучные чаще всего. Настолько, что скулы сводит. Но нет, CS50 — не такой, даже близко! Он прогрессивный (постоянно обновляется), лекции можно смотреть как крутой сериал (а не засыпать на задней парте или заниматься своими делами), задания подобраны со смыслом. Курс хочется смотреть, изучать и… продолжать вливаться в ИТ.

Одним словом, CS50 делает ровно то, что должен делать любой вводный курс: дает основы и вдохновляет на будущие свершения. При этом он универсален, то есть пригодится абсолютно любому будущему айтишнику независимо от специализации. А еще, чтобы усвоить CS50, не нужно штудировать «матанализ», «дискретку» и прочую университетскую математику. Курс вполне осилит гуманитарий или старшеклассник. Если английский знает, разумеется. А если нет? Раньше тех студентов, кто с трудом разбирал энергичную речь лектора, могли выручить разве что автоматически переведенные субтитры, из которых выудить смысл крайне тяжело на самом деле.

Но теперь даже английский учить не придется. Хотя нет, придется, конечно, но уже для работы, а не для учёбы. Потому что мы — JavaRush и студия VertDider — перевели лекции CS50 на русский.

Чему учат на CS50

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

5

С программированием как таковым CS50 начинает знакомить на «нулевой» неделе. Вероятно, чтобы не пугать даже самых неуверенных гуманитариев, профессура Гарварда первым делом показывает студентам визуальный язык Scratch, на котором можно составлять программы простым перетягиванием графических элементов. Эта разработка Массачусетского Технологического Института (MIT) предназначена для обучения школьников, но основные концепции процедурного программирования — всякие циклы и условия — понять помогает очень быстро. Однако на Scratch никто долго не останавливается, а сразу же переходят на «великий и прекрасный» язык C, и большинство практических заданий студенты CS50 решают именно на нем. Очень неплохой выбор хотя бы потому, что C — чуть более низкоуровневый, чем большинство других ходовых языков, то есть хорош для понимания работы компьютера. К тому же знание основ С не помешает «линуксоидам» и прочим админам. Кстати, Linux’у и его командам также уделено внимание в курсе.

Далее студентам рассказывают о понятии функции, глобальных переменных, параметров, возвращаемых значений. Объяснят принцип стека и «кучи» (heap) и какие данные там хранятся, расскажут о массивах, строках и аргументах командной строки, отладке, вводе и выводе в файлы.

Конечно, не обойдется без основ алгоритмов и структур данных. Студенты получат очень внятные и интересные пояснения алгоритмов поиска (линейного, двоичного) и сортировок (пузырьковой, выбором, слиянием), ознакомятся с деревьями и хеш-таблицами.

Узнают о том, стоит ли боятся рекурсии и когда она необходима. А еще — о такой экзотике, как указатели, которые наделяют программиста огромной силой, но негативно сказываются на безопасности.

Счастливые слушатели CS50 получат представление о такой науке, как криптография, и поймут, в чем сила самых известных шифров — Цезаря, Виженера, DES.

Точно так же — поверхностно, но в самый раз для первого знакомства — в курсе поведают о веб-разработке, основах CSS, HTML, JavaScript и PHP. И немного о SQL с базами данных.

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

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

Кто учит, как давно и кого

CS50 эволюционировал от обычного вводного курса по программированию до настоящего суперхита. В Гарварде его читают, начиная с 80х годов минувшего столетия, но он начал стабильно набирать популярность после того, как его возглавил Дэвид Малан. Этот профессор Гарварда — вовсе не углубленный в себя и свою науку седовласый старец. Это увлеченный дирижер (или режиссер, если угодно), умеющий заразить своей увлеченностью, рассказать просто о сложных вещах и вдохновить на продолжение учёбы.

Впервые Дэвид прочёл CS50 в 2007 году, а уже в 2014 году 12% студентов Гарварда всех специализаций, то есть более восьми сотен человек, записались на «Основы программирования», загнав его в топ популярности среди всех курсов колледжа. До этого все было не так весело и многолюдно. Скажем, на лекции создателя Facebook Марка Цукерберга в 2005 году присутствовало аж 15 студентов. Правда, тогда эта социальная сеть только-только набирала обороты. Каждый год Дэвиду ассистируют множество человек — как другие преподаватели, так и недавние студенты CS50. И еще пара-тройка Muppet’ов=).

8137bc67406e40ef8e736d28eb7f6752

Вы, возможно, слышали о Сьюзен Войчицки (Susan Wojcicki), исполнительном директоре Youtube. Так вот, в 1990 году она заканчивала Гарвард. Факультет истории и литературы, как ни странно. На последнем курсе девушку перемкнуло, и она решила узнать побольше о компьютерах, посему — выбрала CS50. Затем была Кремниевая долина, дружба с Ларри и Сергеем (теми самыми Ларри и Сергеем), свой луна-парк, все дела. Вот как CS50 может изменить жизнь.

А вы кто такие, господа переводчики?

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

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

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

Вот страница, на которой появляются лекции курса на русском языке. Они будут доступны совершенно бесплатно всем пользователям интернета. Перевод первой лекции появился 20 июня, следующая будет 27 июня, дальше — по мере их готовности.

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

PS: Важная информация: вы же поняли, что можете учиться в Гарварде? На русском! Совершенно бесплатно! Не выходя из дома! Где бы он ни был, ваш дом, хоть на Северном полюсе. Лишь бы интернет был.

PPS: Кстати, типичный программист является типичным студентом пожизненно. Оставайтесь студентом, не прекращайте процесс познания!