Первая лекция

Содержание первой лекции

• родной язык компьютеров — двоичная система счисления
• ASCII — как записываются символы
• как алгоритмизировать задачи — на живых примерах. Очень живых=)
• почему Дэвид разорвал телефонный справочник или что такое двоичный поиск
• сложность алгоритма — что, как и почему
• о том, что такое циклы, расскажет никто иной, как Марк Цукерберг, основатель Facebook
• …а еще вы увидите его же в 2005 году, в качестве приглашенного гостя CS50. Хм… судя по аудитории, интерес к технологиям вырос в десятки раз!

CS50 на русском: Лекция #1

комментарий

Можно сказать вводная лекция, содержание было скорее поверхностным что бы познакомиться с целью курса, и рассказать как же оно круто учиться у них в Гарворде =(

Жаль что не повезло родиться в Европе, глядя на их подход к обучению становиться стыдно за свою страну…

Вторая лекция

Содержание второй лекции

• Что такое алгоритмы. Казалось бы, такое простое понятие, но на самом деле алгоритмизовать даже столь элементарный процесс, как намазывание арахисового масла на тост совсем не просто. Ребята вам это покажут на практике=).

• Как эффективно посчитать количество людей в аудитории? У нас есть такой алгоритм.

• Есть такое английское выражение “From Scratch”. Переводится оно как «С самого начала». Но можно также перевести как «Начиная со Scratch», если слово Scratch понимать как специальный учебный язык программирования. Так вот, вас познакомят со Scratch — замечательной разработкой Массачусетского технологического университета и покажут, как писать с её помощью программки.

CS50 на русском: Лекция #2

комментарий

Заинтересовало описания графического языка Scratch, нужно будет обязательно попробовать его в деле.

Третья лекция

• Язык программирования C. На примере простейшей программы Дэвид растолкует основные конструкции языка, пользуясь аналогиями с изученными на нулевой неделе «пазлами» Scratch;

• Облачная IDE, в которой мы будем писать программы на C и не только;

• Вот такие штуки: jharvard@ide50:~/workspace $ make hello. Выглядит как заклинание? К концу лекции станет понятно, что к чему. Это одна из команд Linux. Выучим еще парочку необходимых для запуска приложений из командной строки.
И немного интересных фактов о первом программируемом американском компьютере (из тех, что целую комнату занимают), а также о первом обнаруженном баге=).

CS50 на русском: Лекция #3

комментарий

Понял насколько хорош Python в сравнении с синтаксисом C# , эти сложности с операторами ух.. Конечно для развития видимо стоит его хотя бы почитать, но я так понял что на протяжении курса мы с ним будем работать постоянно, так что основы работы я освою.

Четвёртая лекция

В четвертой лекции мы углубимся в язык С и изучим всё необходимое для выполнения первых трех серьезных заданий по программированию. Это циклы, условия, типы данных, переменные и функции. Задания, к слову весьма разнообразные, совсем не скучные. Выполнив их, вы отточите использование библиотек, ввод/вывод и циклы вместе со знаменитым водопроводчиком Super Mario, посчитаете, сколько воды вы расходуете во время душа и запрограммируете первый относительно серьезный алгоритм для вычисления минимального количества монеток для выдачи сдачи. Задания не слишком сложные, но требуют от новичков задействовать всё, что было выучено на третьей и четвертой лекции, плюс немного подумать. Смело к работе, а если что-то не получается, задавайте вопросы, мы будем рады помочь=).

CS50 на русском: Лекция #4

комментарий

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

Пятая лекция

В четвертой лекции мы углубимся в язык С и изучим всё необходимое для выполнения первых трех серьезных заданий по программированию. Это циклы, условия, типы данных, переменные и функции. Задания, к слову весьма разнообразные, совсем не скучные. Выполнив их, вы отточите использование библиотек, ввод/вывод и циклы вместе со знаменитым водопроводчиком Super Mario, посчитаете, сколько воды вы расходуете во время душа и запрограммируете первый относительно серьезный алгоритм для вычисления минимального количества монеток для выдачи сдачи. Задания не слишком сложные, но требуют от новичков задействовать всё, что было выучено на третьей и четвертой лекции, плюс немного подумать. Смело к работе, а если что-то не получается, задавайте вопросы, мы будем рады помочь=).

CS50 на русском: Лекция #5

комментарий

Чем дальше тем труднее заставить себя смотреть Это ). С одной стороны очень годные лекции, но с другой.. материал слишком зациклен вокруг СИ и его синтаксиса, мне после питона смотреть на этот код действительно больно, столько лишнего хлам, объявления типов переменных, бррр.. Надеюсь что в дальнейшем курс будет абстрагирован от конкретного языка, и сфокусирован на программировании в целом..

Шестая лекция

Каждый раз, когда вы ловите себя на том, что копируете и вставляете куски кода, спрашивайте себя: а нет ли другого способа? В шестой лекции Гарвардского курса по основам программирования CS50 будет много полезного для нахождения «других способов», но и веселья хватит сполна. Кстати, её будет вести молодой лектор Роб Боуден. Но Дэвид Малан также вертикально поприсутствует=). Что значит «вертикально»? Узнаете в начале лекции.

• Роб объяснит, что такое массивы, одномерные и многомерные;

• что такое аргументы командной строки, какова их связь с элементами массивов и как их использовать непосредственно в программах;

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

CS50 на русском: Лекция #6

комментарий

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

Седьмая лекция

Помните разорванный телефонный справочник из самой первой лекции CS50? В седьмой лекции он возвращается! Возвращается, чтобы сделать фразу «эффективность алгоритмов» не пустым звуком, а пояснить на примере. Все программисты думают о скорости работы программы и о том, сколько памяти она при этом «съест». На учебных задачках это не так очевидно, но когда мы работаем с большими массивами данных (как почти везде в «Энтерпрайзе»), эти вопросы становятся первоочередными. Представьте себе, что данные в телефонном справочнике не отсортированы по алфавиту. Представляете, сколько времени у нас бы ушло на то, чтобы его там найти? С учётом того, что в телефонном справочнике нет человека с таким именем, пришлось бы перебирать все строчки подряд — и всё впустую! Но есть выход: данные всегда можно отсортировать. И в седьмой лекции Дэвид Малан расскажет об известных алгоритмах сортировки — пузырьковой, вставки и выбора. Эффективны ли они? Подсказка: не слишком, в чем это проявляется — узнаете из лекции. Но почему они в таком случае знамениты и зачем их изучать? Дело в том, что они довольно просты в реализации, а на их основе можно создавать уже более продвинутые алгоритмы сортировки. А еще, вы услышите, как звучат алгоритмы сортировки. Незабываемая музыка программирования уже доступна в переводе седьмой лекции.

CS50 на русском: Лекция #7

комментарий

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

Восьмая лекция

• Узнаем, может ли рекурсия помочь нам в поисках Майка Смита. И вообще, узнаем, что это за загадочный инструмент такой — рекурсия — и как её применять. • Разберемся, с понятием сортировки слиянием, и поймем, как можно её реализовать с помощью рекурсии. Снова разделяем и властвуем, уже практически по привычке. • Станем на шаг ближе к пониманию загадочного компилятора Clang и его работе. Продолжим разбираться с тем, что находится «под капотом» программы и оценим путь от исходного кода через ассемблерный к объектному. • Столкнемся с такими вот знаками: & | ^ ~. Это— не «птичий язык», а побитовые операторы, они позволяют добраться до отдельных битов данных. Для расшифровки каждого из них Дэвид воспользуется весьма необычным инструментом — доской и маркерами! Даже такое «ретро» изредка проскакивает на CS50 =). • А еще Дэвид приоткроет завесу тайны: в практическом задании вам предстоит вспомнить детство и поиграть в «пятнашки». Только в этот раз они будут написаны на Си. • Наконец, вы увидите милую беседу Эрика Шмидта из Google и одного бывшего сенатора с каким-то знакомым лицом по имени Барак. Эрик попросил Барака предложить самый эффективный способ отсортировать миллион 32-битных целых чисел. Ответ нынешнего президента США вы узнаете из лекции.

CS50 на русском: Лекция #8

комментарий

Разбирали по кусочкам метода рекурсивной сортировки, а потом начали знакомство в базовыми принципам работы интерпритатора, то как Си превращается в ассемблер и уже в объектный код.. Нагрузка конечно выросла, но я не уверен что хочу продолжать смотреть, и уж тем более комментировать эту информацию. Хотя конечно досмотреть себя попробую заставить…