Друзья, мы рады сообщить, что перевод всего гарвардского курса 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-я лекция: подводятся итоги курса, в игровой форме повторяются некоторые темы, идет непринужденное общение.
Поделиться с друзьями
ST4NN
Любителям не только посмотреть, но и сохранить себе:
магнит
mydogandi
Ссылки на лекции ведут непонятно куда.
Kybinsky
Поправили.
dretwk
Самое главное в этих лекциях не сами видео(но они тоже безусловно интересны), а практика от самого CS50. Такой вопрос, практика за 2015 год будет активна все время, т.е. можно будет проверять решенные задачи с помощью их скриптов автопроверки?
Ryle
Огромное спасибо за ваш труд.
Но как же оригинально у вас расположены ссылки! Неряшливо, как говаривал один научрук, перечеркивая оригинал работы ручкой.
16 — на статью с лекциями 1-16
17, 18, 19 — на ютуб
20 — на статью со ссылками на лекции 1-20
21 — на статью про 21 лекцию
22 — на статью со ссылками на лекции 1-22
21 — на ютуб
Kybinsky
Поправили.
eaglefly
Знакомый-программист посмотрел несколько этих лекций, и сказал, что быстрее и продуктивнее тупо взять пару учебников и заниматься с ними, без ненужной воды и лишней траты времени.
Так вот, посоветуйте кто-нибудь сведущий, стоит ли начинать знакомство с программированием с просмотра этого курса?
Samal
Вопрос из разряда — «учиться плавать в лягушатнике или же сразу с лодки с середины озера до берега?».
Утрирую, конечно, но в любом случае кругозор и системность в IT очень пригодятся. Лекции это дают. Другое дело, что у каждого своя скорость восприятия информации и некоторым что-то может показаться «слишком уж пережёванным» — особенно «знакомым программистам», которые широту своего кругозора воспринимают как должное. Иными словами — данный курс лекций — «больше вширь, чем вглубь», что новичкам таки полезнее, чем сразу на глубину…
berezuev
«учиться плавать в лягушатнике или же сразу с лодки с середины озера до берега?».
С лодки. И это относится не только к плаванию, но и к языкам программирования, просто языкам, да и, практически, любой сфере деятельности (кроме, разве что, медицины).
Ryle
Это лучше всего относится к иллюстративному материалу статьи «Ошибка выжившего».
drcolombo
А потом появляются всякие говнокодеры с портянками кода на тысячи строк в одном файле, без знания элементарных/базовых аргоритмов, после которых начинаются «брожения в умах» насчет «дешевле написать с нуля, чем это г… поддерживать». А также копипастеры со stackoverflow, которые не задумываются о том, что «под копотом» у кода, который они копируют и оптимальный ли это код для конкретно их задачи…
Tsimur_S
А после этого курса путь в говнокодеры закрыт?
berezuev
А за что минусуют человека? Совершенно верно ведь говорит.
В любом случае, должен быть наставник, который будет регулярно показывать на ошибки. И да, по началу код будет такой, который проще удалить и написать с нуля. Благо, с каждой итерацией код будет все чище, и писать его будут гораздо быстрее.
drcolombo
Не обязательно именно после этого курса, но если человек получит и правильно будет применять на практике базовые знания, то шанс стать говнокодером существенно уменьшится. Я не рассматриваю разнообразных супер-гениев.
А насчет Вашего комментария про «относится практически к любой сфере деятельности (кроме, разве что, медицины»… Строительство или архитектура? Механика? Электроника? Биология? Вы серьезно верите, что хотя бы в эти сферы может сунуться человек «с улицы» и ему соверешенно не нужна теоретическая подготовка, а сразу вперед за станок/паяльник/скальпель в руки?!
Tsimur_S
Дело в том что этот курс вряд ли изменит ситуацию, слишком уж поверхностны знания в нем. В то же время он очень большой и пытается охватить необъятное. Максимум что он сможет сделать это заинтересовать человека который никогда не расматривал карьеру в программировании. Он даже выглядит как рекламная агитка, рекламирующая свой универ. Он ни в коем случае не бесполезен, нет, но если вы хотите научится программировать то можно найти лучшее применение 24 часам вашего времени. А изучать это по этому курсу это все равно что предлагать человеку с улицы, который ищет ответ на вопрос «как стать врачом?», посмотреть Анатомию Грей.
blackarrow
ИМХО, есть смысл попробовать курс.
Я, например, всегда вполне успешно работал с книгами, вообще никаких проблем. Отчасти из-за этого всегда несколько скептически относился к тем, кто выбирает онлайн курсы — типа, ну раз через книги не смогли, хоть так прокачиваться тоже вариант. А недавно таки зарегистрировался и начал проходить CS50 на edx.org, и я скажу, что уровень вовлеченности гораздо выше, чем в практике с книгой. Ощущаешь себя частью сообщества. Смотришь, слушаешь, читаешь, пробуешь что-то в их браузерной IDE, решаешь задачки — пирамида Марио в командной строке, шифр Виженера, заливаешь на проверку, что-то по ходу еще гуглишь и т.д.
По обеспечению уровня вовлеченности, думаю, может конкурировать ситуация когда есть: 1). важная для вас прикладная задача, 2). соответствующая книга, 3). понимание, что технология, нужная для решения задачи, находится в этой книге. И тогда все идет как надо, за уши не оттащить, иногда бывает, ложишься спать не из-за сонливости или усталости, а просто из-за понимания что завтра на работу и таки хоть несколько часов поспать все-таки надо.
NeverIn
Солидарен с вашим знакомым, очень много воды, шуточек-прибауточек, вызовов на сцену участников действия.
Тем не менее если обучаться с нуля курс может оказаться полезным, в полу-игровой форме без сильного давления на мозги.
Удручает, что вход в профессию новичков будет без базового математического образования, т.е. кодить в принципе научат, а понимать глубину, булеву алгебру, логику, автоматы, алгоритмы увы нет.
Особенно заметна базовая подготовка в процессе работы, когда «разработчик» эффективнее «кодера» на порядок.
Tsimur_S
для обучения не эффективно, а как заинтересовать вариант отличный.
xDimus
Посмотрел одну лекцию из середины — понравилась. Смотрел для знакомства с заинтересовавшей темой. Если цель изучить конкретный язык найдите курс по нему, а для общего развития и выбора дальнейшего направления по моему самое то. Ну и посмотрите сами одну две лекции :)
norlin
Всё индивидуально. Лично я просто не могу по книгам учиться, а вот на практике или по лекциям/туториалам вполне неплохо получается.
itshack
Спасибо! Нужное дело делаете.
navion
А есть что-то похожее, но про Python?
blackarrow
В оригинальном курсе на edx.org в 2017-м вместо PHP уже используется Python. При этом, как и ранее, в начале изучается С.
Karpion
Интересно, какой Ктулху помешал вам выложить не только видео, но и текст лекций? Читать гораздо удобнее.
Movimento5Litri
Сделайте, пожалуйста, транскрипт