Краткое содержание
Эта запись не очередной урок, а итоговый отчёт курса: она напоминает семь учебных целей, которые учебный план поставил в начале, показывает на одном рисунке, к какой из них отнесён каждый урок каждого раздела, объясняет, как прорабатывалась каждая цель на протяжении восьми содержательных разделов, отличает цели, у которых есть собственный раздел, от тех, что проходят через весь курс, собирает то, что курс оставляет за пределами C++, учит читать самопроверку по целям, которая сводит первую попытку итоговых проверок, и указывает, что курс оставляет курсу «Программирование на C++ II».
Цели обучения
- Формулировать семь общих целей курса и узнавать, в каких разделах и уроках прорабатывалась каждая из них.
- Отличать цели, у которых есть собственный раздел, от тех, что проходят через несколько разделов, в частности решение задач с неизменным чередованием компиляции и отладки, а также спецификацию и тестирование, и объяснять, как упражняются эти последние.
- Отделять в изученном на курсе то, что верно для любого языка, от его формы в C++, и объяснять, что курс оставляет курсу «Программирование на C++ II».
- Решать на основе самопроверки по целям, рисунка и задач повышенной трудности каждого урока итогов, какие разделы и какие уроки стоит повторить.
Что курс ставил своей целью
Курс родился с общей целью: научить писать правильные программы с нуля, сделав своим предметом само программирование, а не какой-либо язык. Для этого он выбрал требовательный инструмент, C++, потому что этот язык не скрывает машину: он заставляет объявлять типы, отделяет компиляцию от выполнения, делает видимыми память, цену копирования и пределы каждого числа и наказывает неопределённым поведением то, что другие языки маскируют. Урок об учебном плане развернул эту цель в семь общих учебных целей, которые стоит держать перед глазами с той нумерацией, под которой их называет рисунок:
- Решать задачи с помощью программ: специфицировать, что поступает на вход и что получается на выходе, разрабатывать алгоритм, выполнять его вручную, а также писать, компилировать, запускать и отлаживать его, истолковывая сообщения и предупреждения компилятора.
- Выбирать подходящий тип для каждого элемента данных и рассуждать о пределах его представления: диапазоне значений целых чисел, переполнении, округлении чисел с плавающей точкой и кодировке текста.
- Строить правильные выражения, зная приоритет, преобразования типов, побочные эффекты и то, что стандарт оставляет неопределённым.
- Проектировать управление потоком с правильными ветвлениями и циклами, которые завершаются, и обосновывать их корректность инвариантом.
- Разбивать задачу на функции с ясными интерфейсами, выбирать способ передачи параметров и решать задачи с помощью рекурсии.
- Представлять и обрабатывать составные данные (последовательности, таблицы, записи, текст и файлы) с помощью базовых алгоритмов и стандартной библиотеки, оценивая их сложность.
- Организовывать более крупные программы в нескольких файлах, специфицировать их предусловием и постусловием, систематически их тестировать и аргументировать их корректность.
Каждый урок курса, кроме того, заявил собственные частные цели. Уроки не говорят, какой общей цели служит каждая из них; это соответствие есть прочтение извне, по тому же методу, что и в остальных курсах сайта. Каждая частная цель относится к одной главной общей цели и, если она их затрагивает, к другим, второстепенным; каждая засчитывается целиком в своей главной и наполовину в каждой второстепенной, и урок связывается как с главной с той общей целью, которая набирает наибольший вес, и как со второстепенными с остальными, получившими какой-либо вес. Если две цели набирают поровну, решает цель раздела, а если ни одна из них ею не является, то цель с меньшим номером; так, урок Переменные и память, цели которого поровну распределены между целями 1 и 2, связывается с целью 2, которая есть цель его раздела. Вводные уроки следуют тому же правилу. Уроки итогов, напротив, следуют собственному критерию: их главная цель есть цель их раздела, потому что их цепочка понятий, их итоговая проверка и большая часть их задач повышенной трудности сводят то, чему научил раздел; раздел о тексте и файлах, у которого нет собственной цели, засчитывается в цель 6, к которой относятся три из четырёх его уроков. Если это так, весь курс принимает форму хребта: голова есть общая цель; позвоночник, порядок разделов, каждый со своим участком; каждый урок есть узел этого участка, связанный со своей главной целью, а семь целей парят вокруг позвоночника, поддерживаемые уроками, которые их питают.
Загрузка содержимого…