Среди целей этого курса - предоставить школьникам всестороннее знакомство с основами дисциплины в области информатики. Мы будем делать это с использованием программирования на нескольких разных языках в качестве средства для внедрения этих основ, включая такие темы, как алгоритмы, абстракция, данные, глобальное воздействие и интернет-технологии. Хотя курс тяжелый по программированию, следует подчеркнуть, что это не «курс программирования»; скорее, этот курс следует рассматривать как решение проблем, творчество и исследование. К концу года студенты будут иметь более четкое представление о ключевых принципах дисциплины в области информатики. Они смогут разумно говорить о том, как работают компьютеры и как они позволяют нам стать лучшими решателями проблем, и, мы надеемся, смогут передавать эти знания другим.
Материал курса организован вокруг семи так называемых «больших идей», а также шести методов компьютерного мышления. Семь больших идей:
И шесть методов компьютерного мышления:
Глава | Темы | Сроки | |
---|---|---|---|
Глава 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 недель |