Курс объясняет основные понятия
процедурного программирования. Темы включают типы данных, управляющие структуры,
функции, массивы, файлы и механизмы запуска, тестирования и отладки. Курс также
содержит введение в исторический и социальный контекст компьютерных наук и обзор
информатики как научной дисциплины.
Требования к слушателям: Никаких знаний в области программирования или
информатики не требуется. Студенты должны иметь достаточный объем математических
знаний для решения простых линейных уравнений и уметь пользоваться
математической нотацией и формализмами.
Описание
курса:
- Компьютерные приложения: обработка текстов, электронные таблицы, файлы и
каталоги.
- Базовые конструкции программирования: синтаксис и семантика языка высокого
уровня; переменные, типы, выражения и присваивания; простейший ввод/вывод;
конструкции ветвления и итеративные конструкции; функции и передача
параметров; структурная декомпозиция
- Алгоритмы и решение задач: стратегии решения задач, роль алгоритмов в
решении задач, стратегии реализации алгоритмов, стратегии отладки, понятие
алгоритма, свойства алгоритмов
- Базовые структуры данных: примитивные типы; массивы; структуры; строки и
операции над строками
- Представление данных в памяти компьютера: биты, байты, слова;
представление числовых данных и основания систем счисления; представление
символьных данных
- Обзор операционных систем: роль и задачи операционных систем; простое
управление файлами
- Введение в распределенные вычисления: основы и история сетей и Интернета;
демонстрация и использование таких сетевых приложений, как электронная почта,
telnet и FTP.
- Взаимодействие человека и машины: введение в вопросы проектирования
- Методология разработки ПО: основные понятия и принципы проектирования;
структурная декомпозиция; стратегии тестирования и отладки; разработка
тестовых наборов; среды разработки; инструменты тестирования и отладочные
инструменты
- Социальный контекст программирования: история программирования и
компьютеров; эволюция идей и аппаратуры; социальное воздействие компьютеров и
Интернета; профессионализм, этический кодекс и ответственное поведение;
авторские права, интеллектуальная собственность и нарушение авторских прав на
программное обеспечение
Затрагиваемые разделы:
- PF1 Основные конструкции программирования 10 часов (9 осн. + 1)
- PF2 Алгоритмы и решение задач 3 осн. часа (из 6)
- PF3 Основные структуры данных 2 осн. часа (из 14)
- AR2 Представление данных в памяти компьютера 1 осн. час (из 3)
- AR3 Организация машины на уровне ассемблера 2 осн. часа (из 9)
- OS1 Обзор операционных систем 1 осн. час (из 2)
- NC1 Введение в распределенные вычисления 1 осн. час (из 2)
- PL3 Введение в трансляцию 1 осн. час (из 2)
- PL4 Описание и типы данных 3 осн. часа
- PL5 Механизмы абстракции 3 осн. часа
- HC1 Основы взаимодействия человека и машины 1 осн. час (из 6)
- GV1 Основы методов программирования графики 1 осн. час (из 2)
- SP1 История информатики 1 осн. час
- SP2 Социальные вопросы программирования 1 осн. час (из 3)
- SP4 Профессиональная и этическая ответственность 1 осн. час (из 3)
- SP6 Интеллектуальная собственность 1 осн. час (из 3)
- SE1 Проектирование ПО 3 осн. часа (из 8)
- SE3 Программные средства и окружения 2 осн. часа (из 3)
- SE4 Процессы разработки ПО 1 осн. час (из 2)
- Темы по выбору 1 час
Примечания:
Этот курс представляет собой часть
альтернативной реализации модели вводного курса с ориентацией на императивное
программирование, в которой базовые понятия программирования покрываются за три
семестра (а не за два, как в традиционном подходе). В терминах учебного плана
это означает, что студенты должны приступать к освоению более сложных курсов
после изучения последовательности
CS101I-102I-103I или двухсеместровой
последовательности CS111I-112I, излагающей тот же материал
в более концентрированной форме. Хотя преподавание основ программирования за два
семестра в течение долгих лет было стандартом при обучении информатике, все
большее число тем может со всеми основаниями считаться фундаментальными,
создавая тем самым трудности в прочтении полного введения в информатику за один
год. CC2001 ожидает, что трехсеместровая вводная последовательность курсов
получит все более широкое распространение в ближайшие десять лет, и рекомендует
кафедрам и факультетам экспериментировать с обеими этими моделями.