Курс последовательно проводит ученика от первой консольной программы до проектирования, проверки и исследования законченной процедурной системы. Учебник задаёт теоретическую последовательность, а Модули 1–16 закрепляют соответствующие Разделы задачами возрастающей самостоятельности.
- Уровень: полный фундамент языка и процедурного программирования до начала объектно-ориентированного проектирования.
- Назначение: сформировать строгую модель исполнения, хранения данных, управления состоянием, построения алгоритмов, диагностики, отказоустойчивости и архитектуры процедурной программы.
- Формат: Введение, 27 последовательных Разделов, 16 Модулей и Финальный экзамен.
- Темп: определяется отдельно выбранной глубиной прохождения Модулей; программа фиксирует состав и порядок обучения, а не календарный срок.
- Итог курса: ученик способен формализовать задачу, выбрать представление данных, реализовать и доказать алгоритм, измерить и отладить программу, обработать внешние данные и отказы и защитить архитектуру законченной процедурной системы.
Как читать учебную программу
Каждый Раздел содержит два элемента:
- Результат — проверяемое действие, которое ученик должен уметь выполнить после завершения Раздела.
- Содержание — хронологическая последовательность учебных блоков. Каждый следующий блок опирается на предыдущие и показывает, что именно необходимо понять, реализовать и уметь объяснить.
Разделы изучаются по порядку. Материал не считается завершённым после чтения: после соответствующей группы Разделов выполняется закрепляющий Модуль. Более поздние Разделы повторно используют ранние понятия, поэтому типы, контракты, инварианты, nullable-анализ, культура, сложность и политика отказа сохраняются во всех последующих задачах.
Рабочий формат курса
- Все программы используют
using System;,namespace,class Programиstatic void Main(string[] args). Top-level statementsне применяются.- Минимальная версия языка —
C# 9; версия.NET SDKфиксируется для всей учебной группы. - Nullable-анализ включён через
<Nullable>enable</Nullable>. - Вычисляющее ядро по мере развития курса отделяется от консоли, файлов, времени и псевдослучайности.
- Проектирование классов, инкапсуляция, наследование, полиморфизм, интерфейсы, обобщённые коллекции, делегаты, события, асинхронность и многопоточность начинаются в Курсе II.
Хронологический маршрут
| Шаг | Теоретическая часть | Закрепление | Результат шага |
|---|---|---|---|
| 0 | Введение, Разделы 1–3 | Первые программы и устная проверка | Ученик создаёт проект, читает структуру кода и понимает путь исполнения |
| 1 | Разделы 4–8 | Модуль 1. Линейные вычисления и представление данных | Ученик точно моделирует значения и машинные вычисления |
| 2 | Разделы 9–11 | Модуль 2. Ветвления | Ученик строит полную систему случаев и безопасно разбирает ввод |
| 3 | Раздел 12 | Модуль 3. Циклы | Ученик реализует повторение, доказывает завершимость и оценивает работу |
| 4 | Разделы 13–14 | Модуль 4. Методы и рекурсия | Ученик проектирует процедурный API и прослеживает стек вызовов |
| 5 | Раздел 15 | Модуль 5. Одномерные массивы | Ученик реализует алгоритмы над последовательностями, сортировку и поиск |
| 6 | Раздел 16 | Модуль 6. Значимые и ссылочные типы | Ученик управляет идентичностью, псевдонимами, мутацией и копированием |
| 7 | Раздел 17 | Модуль 7. Многомерные массивы | Ученик проектирует алгоритмы над прямоугольными областями и координатами |
| 8 | Раздел 18 | Модуль 8. Зубчатые массивы | Ученик работает с нерегулярной формой и топологией внутренних объектов |
| 9 | Раздел 19 | Модуль 9. Строки | Ученик реализует точные текстовые контракты, парсеры и строковые алгоритмы |
| 10 | Раздел 20 | Модуль 10. Собственный значимый тип | Ученик создаёт процедурные модели связанных данных через struct |
| 11 | Раздел 21 | Модуль 11. Время и измерение | Ученик работает со временем и строит воспроизводимый измерительный эксперимент |
| 12 | Раздел 22 | Модуль 12. Случайность | Ученик реализует корректные случайные алгоритмы и вероятностные исследования |
| 13 | Раздел 23 | Модуль 13. Систематическая отладка | Ученик локализует первое неверное состояние и подтверждает исправление |
| 14 | Разделы 24–25 | Модуль 14. Отказы и файлы | Ученик проектирует модель отказа и согласованный файловый конвейер |
| 15 | Раздел 26 | Модуль 15. Проектирование процедурной программы | Ученик самостоятельно проектирует законченную процедурную архитектуру |
| 16 | Раздел 27 | Модуль 16. Процедурные симуляции | Ученик реализует дискретную модель и проводит техническое исследование |
| 17 | Весь курс | Финальный экзамен | Ученик подтверждает целостное владение процедурным C# |

