Программа курса CS50 для средних школ.

Описание

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

Обзор учебной программы

Материал курса организован вокруг семи так называемых «больших идей», а также шести методов компьютерного мышления. Семь больших идей:

  • Креативность
  • Абстракция
  • Данные и информация
  • Алгоритмы
  • Программирование
  • Интернет
  • Глобальное влияние

И шесть методов компьютерного мышления:

  • Сетевые технологии
  • Создание вычислительных продуктов
  • Создание абстракций
  • Анализ проблем
  • Общение (устно и письменно)
  • Взаимодействие
Глава Темы Сроки
Глава 0 Компьютеры и вычислительная техника Компьютеры и вычислительная техника. Как работают компьютеры. Биты и байты. Аппаратные средства. Память. Двоичная система. ASCII. Алгоритмы. 3 недели
Глава 1 Строим блоки программирования Псевдокод. Scratch. Синтаксис. Переменные. Типы данных. Операторы. Булевы выражения и условия. Циклы. 4 недели
Глава 2 Объединение блоков Компиляция. Функции и возврат. Массивы и строки. Взаимодействие с командной строкой. Коды выхода. Библиотеки. Приведение типов. Ошибки и отладка. 5 недель
Глава 3 Компьютерное мышление Линейный поиск. Сортировка пузырьком. Сортировка выбором. Сортировка вставками. Двоичный поиск. Временная сложность. Неразрешимые проблемы. Моделирование. 4 недели
Глава 4 Дизайн, элегантность и эффективность Принципы хорошего дизайна. Структуры и инкапсуляция. Рекурсия. Сортировка слиянием. Шестнадцатеричная система. Файловый ввод-вывод. Изображения. Контроль версий и совместная работа. 4 недели
Глава А Управление данными Стеки. Очереди. Указатели. Динамическая память. Valgrind. Деревья. Связанные списки. Хэш-таблицы. опционально
Глава Б Инструменты разработчика Абстракция и API. Сжатие данных. Кодирование Хаффмана. Сжатие LZW. Масштабируемость. Современные вычислительные проблемы. Совместная работа (продолжение) опционально
Глава 5 Сеть и Интернет Основы Интернета. IP-адреса. DNS и DHCP. Маршрутизаторы. TCP и IP. HTTP. Модель доверия. Информационная безопасность. HTML. CSS. 3 недели
Глава 6 Решение проблем во взаимосвязанном мире PHP. PHP для веб-программирования. SQL. MVC. JavaScript. Ajax. Искусственный интеллект. Виртуальная и расширенная реальность. 5 недель