Перейти к основному содержимому

CS50x: Введение в программирование


firstdigital

Почему программирование?

131 тыс руб

Средняя зарплата в ИТ в России

23 тыс вакансий

В сфере ИТ в России, в том числе удаленно

Фундамент

Успешной карьеры в любой сфере в современном цифровом мире

Почему этот курс?

Учитесь у лучших

Освойте программирование с нуля, пройдя самый популярный курс в Гарвардском университете с лучшими инструкторами в мире

Бесплатно

Все материалы курса доступны БЕСПЛАТНО. Получите сертификат об успешном окончании курса за дополнительную плату

Основа профессий

Засчитайте курс как часть одной из ИТ-профессий first digital, являющихся сильным сигналом для работодателей

Авторы оригинального курса

Дэвид Дж. Малан

Профессор практики компьютерных наук имени Гордона МакКея

Гарвардский университет

Даг Ллойд

Старший преподаватель по компьютерным наукам

Гарвардский университет

Брайан Ю

Старший преподаватель по компьютерным наукам

Гарвардский университет

Как проходит обучение

Видеолекции

Смотри видеоуроки в любое время, на любом устройстве, занятия разбиты на 10-30 минутные уроки чтобы встроится в ваше расписание

Практика

Закрепите новый материал выполнением практического задания с автопроверкой кода

Сообщество

Присоединяйтесь к онлайн форуму и чату для студентов для обсуждения заданий и обмена опытом

Сертификат

Получите сертификат об окончании курса, составьте из отдельных курсов свою ИТ-профессию

Трудоустройство

Скоро!

Откликайся на вакансии на закрытом сайте по поиску работы и эксклюзивные карьерные мероприятия, получите консультацию с занимающим позицию, которую ты хочешь получить

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

12 недель

6-18 часов в неделю

Начальный уровень

Неделя
Описание

1

Среда программирования Scratch

Темы недели:

• Что изучает информатика?
• Двоичная система – как компьютер может считать если он понимает только нули единицы?
• Представление данных – как буквы, цвета, картинки и видео представлены в двоичной системе
• Алгоритмы – почему они важны и как сравнить их эффективность
• Псевдокод – описание действий словами перед созданием кода
• Scratch – среда для программирования без написания кода
• Задание 1: делаем проект на визуальном языке программирования Scratch – на ваш выбор это может быть игра, история, анимация, и т.д.

2

Язык С

Темы недели:

• Первая программа – hello world!
• Компиляторы – перевод исходной кода в машинный код
• String – текстовый тип данных
• Первые программы в С – Пишем блоки из scratch в С
• Типы и форматы данных, операторы в С
• Память, неточности и переполнение – что вызвало крушение самолетов Boeing и ракеты Ariane 5?
• Задание 2: пишем на языке С примитивную версию игры Марио и программу определения валидности кредитной карты

3

Массив данных

Темы недели:

• Компиляция – разбираем более подробно
• Поиск ошибок в коде – методы и подсказки
• Функции в среде программирования CS50: help50, printf, debug50, check50 и style50
• Типы данных в С
• Оперативная память – что это и как она работает?
• Массивы данных, структура для хранения и обработки данных
• Strings – текстовые типы данных
• Читаемость кода – как сделать так чтобы другие и мы сами поняли написанное?
• Шифрование – базовые принципы
• Задание 3: пишем на языке С программу определения к программе какого класса школы относится текст исходя из его сложности, а также программу, которая может понять зашифрованный текст.

4

Алгоритмы

Темы недели:

• Эффективность алгоритмов: понятие большого O
• Алгоритмы поиска
• Виды сортировок и их эффективность – сортировка пузырьком, сортировка выбором, сортировка вставками, Сортировка слиянием
• Рекурсия – эффективное и часто элегантное решение через обращение функции или алгоритма к себе
• Задание 4: пишем на языке С программу определения победителя исходя из голосования если у голосующий выбирает только одного кандидата, и если определяет рэнкинг своих предпочтений

5

Память

Темы недели:

• 16-ричная система счисления
• Указатели – полезный инструмент для создания собственных типов данных и управления данными в памяти
• Создание собственных типов данных
• Valgring – инструмент для устранения утечки данных
• Организация памяти в компьютере – понимание того, как устроена память, поможет вам избежать ошибок, некоторые из которых привели к катастрофам (например, крушение самолетов Boeing и ракеты Ariane 5, которые мы рассмотрели в лекции 2)
• Указатели файлов – как открывать файлы с помощью указателей, проверять их тип, получать из них данные, и изменять их
• Задание 5: пишем на языке С программу по созданию фильтров для изображений, а также программу по восстановлению случайно удалённых файлов-картинок.

6

Структуры данных

Темы недели:

• Работа с памятью – изменение размера массива с учетом особенностей хранения памяти
• Типы данных – связанный список, деревья, хеш-таблицы, очередь, стэк, словарь
• Задание 6: пишем на языке С программу по созданию проверки правописания

7

Язык Python

Темы недели:

• Основы Python – операторы, условия, циклы, объекты, функции
• Типы данных – массивы, списки, словари, и т.д.
• Работа с файлами – открытие, получение доступа к информации
• Задание 7: реализуем 5 ранее написанных нами программы на C на языке Python

8

SQL

Темы недели:

• Таблицы – работа с файлами CSV в python
• Основные операторы SQL – INSERT, SELECT, UPDATE, DELETE
• Типы данных SQL
• Операторы SQL – при работе с цифровыми значениями и для операции с элементами в различных типах данных
• Кейс – работа с базой данных сайта кинофильмов IMDb
• Реляционные базы данных – связь баз данных и таблиц между собой
• Проблемы – типовые проблемы с базами данных и методы их избежания
• Задание 8: мы будем использовать SQL для ответа на различные вопросы о базе данных фильмов IMDB

9

Безопасность данных

Темы недели:

• Ревью – обзор всего пройденного материала
• Пароль – наиболее популярные пароли в сети и программы подбора паролей
• Cookies – как сайты понимают, что это вы
• Доверие в интернете

10

11

12

Специализация и финальный проект

Специализация на выбор 10-12 недели

Разработка игр

Мы создадим легендарные игры Pong и Марио

Мобильная разработка для Android

Используя язык Java для написания приложений на Android, мы создадим три нативных приложения:
1) Приложение, которое использует данные по API на примере игры покемон
2) Приложение, создающее фильтры для фото по примеру инстраграм
3) Приложение, позволяющее сохранять записки на телефоне

Мобильная разработка для iOS

Используя язык Swift для написания приложений на iOS, мы создадим три нативных приложения:
1) Приложение, которое использует данные по API на примере игры покемон
2) Приложение, создающее фильтры для фото по примеру инстраграм
3) Приложение, позволяющее сохранять записки на телефоне

Вэб-разработка

Мы познакомимся с языками, использующимися в интернете: • HTML - язык для отображения веб-страница в браузере
• CSS – язык для создания стилей веб-страниц
• JavaScript – язык для создания интерактивных вэб-страниц
• Flask – фреймворк на Python, позволяющий создавать комплексные веб-приложения
• Python и SQL – для построения динамеских веб-приложений
• Далее вы создадите собственный веб-приложение по торговле акциями

Финальный проект

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

Идеи для проекта на выбор:
• веб-приложение, написанное с применением JavaScript, Python и SQL
• приложение для iOS на Swift
• игра, использующая Lua with LÖVE
• приложение для Android написанное на Java
• расширение Chrome с использованием JavaScript
• программа командной строки с использованием C
• приложение для использования на устройстве
• …

Что вы освоите в результате прохождения курса

Приобретёте широкое и структурированное понимание информатики и программирования

Освоите основы сразу нескольких языков программирования, включая:

Освоите такие понятия как:

  • абстракция
  • алгоритмы
  • структуры данных
  • инкапсуляция
  • управление ресурсами
  • безопасность
  • разработка программного обеспечения
  • web-разработка

Научитесь мыслить алгоритмически и эффективно решать задачи программирования

Познакомитесь с применением программирования на практике в таких областях как:

  • биология
  • криптография
  • финансы
  • информационная безопасность
  • разработка игр
  • и т.д.

Получите дополнительные знания в одной из выбранных специализаций:

  • разработка игр
  • мобильная разработка (iOS или Android)
  • web-разработка

Получите прочный фундамент для дальнейшего развития в ИТ или смежных сферах.

Сертификат об успешном окончании курса

Все материалы курса доступны БЕСПЛАТНО

В случае если вы хотите получить сертификат об успешном прохождении курса, необходимо будет оплатить 4900 р в любой момент учебы

Пример сертификата:

Сертификат может иметь самостоятельную ценность

А может использоваться для зачета курса как части одной из ИТ-профессий first digital, являющихся сильным сигналом для работодателей.

Примеры профессий first digital institute, в которых может быть засчитан сертификат CS50x:

  • Web-разработчик

  • Data Engineer

  • Data Scientist

  • Android-разработчик

  • iOS-разработчик

  • Разработчик Java

Одна профессия может включать до 15 отдельных курсов, и является гарантией всесторонней и качественной подготовки специалиста

Внести в список