Алгоритмы в программировании

О курсе

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

Программа курса

Уровни Цели
Уровень 0 Системы счисления. Алгоритмы. Визуальный язык Scratch и программы на нём.
Уровень 1 Основные команды Linux. Язык Си, его синтаксис. Первая программа (hello world).
Уровень 2 Что такое криптография? Простые криптографические шифры. Баги. Си: строки и массивы.
Уровень 3 Алгоритмы сортировки. Компилятор. Побитовые операции.
Уровень 4 Рекурсия. Стек памяти и локальные переменные. Кодирование изображения. Структуры (struct). Основы адресной арифметики.
Уровень 5 Указатели, структура памяти, стек, очереди и связные списки.
Уровень 6 Начинаем программировать в вебе. HTML, CSS, протокол TCP/IP и HTTP.
Уровень 7 Язык программирования PHP. Динамическая типизация.
Уровень 8 Шаблон MVC. Немного о языке запросов SQL.
Уровень 9 JavaScript, Ajax и DOM.
Уровень 10 Глобальное информационное поле. Искусственный интеллект.