Друзья, мы рады сообщить, что перевод всего гарвардского курса 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-я лекция: подводятся итоги курса, в игровой форме повторяются некоторые темы, идет непринужденное общение.

Поделиться с друзьями
-->

Комментарии (25)


  1. ST4NN
    11.05.2017 12:38
    +4

    Любителям не только посмотреть, но и сохранить себе:


  1. mydogandi
    11.05.2017 12:38

    Ссылки на лекции ведут непонятно куда.


    1. Kybinsky
      11.05.2017 12:38

      Поправили.


  1. dretwk
    11.05.2017 12:38

    Самое главное в этих лекциях не сами видео(но они тоже безусловно интересны), а практика от самого CS50. Такой вопрос, практика за 2015 год будет активна все время, т.е. можно будет проверять решенные задачи с помощью их скриптов автопроверки?


  1. Ryle
    11.05.2017 12:39

    Огромное спасибо за ваш труд.

    Но как же оригинально у вас расположены ссылки! Неряшливо, как говаривал один научрук, перечеркивая оригинал работы ручкой.

    Ворчание
    1-15 — на статью со ссылками на лекции 1-15
    16 — на статью с лекциями 1-16
    17, 18, 19 — на ютуб
    20 — на статью со ссылками на лекции 1-20
    21 — на статью про 21 лекцию
    22 — на статью со ссылками на лекции 1-22
    21 — на ютуб


    1. Kybinsky
      11.05.2017 12:39

      Поправили.


  1. eaglefly
    11.05.2017 12:39
    +2

    Знакомый-программист посмотрел несколько этих лекций, и сказал, что быстрее и продуктивнее тупо взять пару учебников и заниматься с ними, без ненужной воды и лишней траты времени.
    Так вот, посоветуйте кто-нибудь сведущий, стоит ли начинать знакомство с программированием с просмотра этого курса?


    1. Samal
      11.05.2017 14:12
      +1

      Вопрос из разряда — «учиться плавать в лягушатнике или же сразу с лодки с середины озера до берега?».
      Утрирую, конечно, но в любом случае кругозор и системность в IT очень пригодятся. Лекции это дают. Другое дело, что у каждого своя скорость восприятия информации и некоторым что-то может показаться «слишком уж пережёванным» — особенно «знакомым программистам», которые широту своего кругозора воспринимают как должное. Иными словами — данный курс лекций — «больше вширь, чем вглубь», что новичкам таки полезнее, чем сразу на глубину…


      1. berezuev
        11.05.2017 14:55

        «учиться плавать в лягушатнике или же сразу с лодки с середины озера до берега?».
        С лодки. И это относится не только к плаванию, но и к языкам программирования, просто языкам, да и, практически, любой сфере деятельности (кроме, разве что, медицины).


        1. Ryle
          11.05.2017 15:24
          +3

          Это лучше всего относится к иллюстративному материалу статьи «Ошибка выжившего».


        1. drcolombo
          11.05.2017 15:29

          А потом появляются всякие говнокодеры с портянками кода на тысячи строк в одном файле, без знания элементарных/базовых аргоритмов, после которых начинаются «брожения в умах» насчет «дешевле написать с нуля, чем это г… поддерживать». А также копипастеры со stackoverflow, которые не задумываются о том, что «под копотом» у кода, который они копируют и оптимальный ли это код для конкретно их задачи…


          1. Tsimur_S
            11.05.2017 16:00

            А после этого курса путь в говнокодеры закрыт?


            1. berezuev
              11.05.2017 18:16
              -1

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


            1. drcolombo
              15.05.2017 14:56

              Не обязательно именно после этого курса, но если человек получит и правильно будет применять на практике базовые знания, то шанс стать говнокодером существенно уменьшится. Я не рассматриваю разнообразных супер-гениев.
              А насчет Вашего комментария про «относится практически к любой сфере деятельности (кроме, разве что, медицины»… Строительство или архитектура? Механика? Электроника? Биология? Вы серьезно верите, что хотя бы в эти сферы может сунуться человек «с улицы» и ему соверешенно не нужна теоретическая подготовка, а сразу вперед за станок/паяльник/скальпель в руки?!


              1. Tsimur_S
                18.05.2017 16:03
                +1

                Дело в том что этот курс вряд ли изменит ситуацию, слишком уж поверхностны знания в нем. В то же время он очень большой и пытается охватить необъятное. Максимум что он сможет сделать это заинтересовать человека который никогда не расматривал карьеру в программировании. Он даже выглядит как рекламная агитка, рекламирующая свой универ. Он ни в коем случае не бесполезен, нет, но если вы хотите научится программировать то можно найти лучшее применение 24 часам вашего времени. А изучать это по этому курсу это все равно что предлагать человеку с улицы, который ищет ответ на вопрос «как стать врачом?», посмотреть Анатомию Грей.


      1. blackarrow
        12.05.2017 19:59

        ИМХО, есть смысл попробовать курс.
        Я, например, всегда вполне успешно работал с книгами, вообще никаких проблем. Отчасти из-за этого всегда несколько скептически относился к тем, кто выбирает онлайн курсы — типа, ну раз через книги не смогли, хоть так прокачиваться тоже вариант. А недавно таки зарегистрировался и начал проходить CS50 на edx.org, и я скажу, что уровень вовлеченности гораздо выше, чем в практике с книгой. Ощущаешь себя частью сообщества. Смотришь, слушаешь, читаешь, пробуешь что-то в их браузерной IDE, решаешь задачки — пирамида Марио в командной строке, шифр Виженера, заливаешь на проверку, что-то по ходу еще гуглишь и т.д.
        По обеспечению уровня вовлеченности, думаю, может конкурировать ситуация когда есть: 1). важная для вас прикладная задача, 2). соответствующая книга, 3). понимание, что технология, нужная для решения задачи, находится в этой книге. И тогда все идет как надо, за уши не оттащить, иногда бывает, ложишься спать не из-за сонливости или усталости, а просто из-за понимания что завтра на работу и таки хоть несколько часов поспать все-таки надо.


    1. NeverIn
      11.05.2017 16:39

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


    1. Tsimur_S
      11.05.2017 17:00

      для обучения не эффективно, а как заинтересовать вариант отличный.


    1. xDimus
      11.05.2017 17:01

      Посмотрел одну лекцию из середины — понравилась. Смотрел для знакомства с заинтересовавшей темой. Если цель изучить конкретный язык найдите курс по нему, а для общего развития и выбора дальнейшего направления по моему самое то. Ну и посмотрите сами одну две лекции :)


    1. norlin
      12.05.2017 11:30

      Всё индивидуально. Лично я просто не могу по книгам учиться, а вот на практике или по лекциям/туториалам вполне неплохо получается.


  1. itshack
    11.05.2017 12:39
    +1

    Спасибо! Нужное дело делаете.


  1. navion
    11.05.2017 23:35

    А есть что-то похожее, но про Python?


    1. blackarrow
      12.05.2017 09:44
      +1

      В оригинальном курсе на edx.org в 2017-м вместо PHP уже используется Python. При этом, как и ранее, в начале изучается С.


  1. Karpion
    13.05.2017 23:08
    +1

    Интересно, какой Ктулху помешал вам выложить не только видео, но и текст лекций? Читать гораздо удобнее.


  1. Movimento5Litri
    17.05.2017 00:31
    +1

    Сделайте, пожалуйста, транскрипт