═══════════════════
COMPUTING CURRICULA 1991
════════════ перечень учебных предметов по дисциплине
══════════ "Вычислительная техника и программирование"
════════════ Примеры конкретных учебных программ═════════════════
════ подготовки студентов по программированию (computer science)═
═══════════════ для получения звания бакалавра═══════════════════
═════════ (и возможности поступления в аспирантуру)══════════════
═══
══════ Общие замечания:
═══ 1) В семестре - 14 недель (без учета экзаменов)
═══ 2) 1 кредитный час = 1 лекционный час = 2 часа практич. занятий (1 час = 45-50 минут)
═══ 3) Все курсы═ полугодовые (семестровые);═ обычно в неделю на курс отводится 3 кредитных часа (2 часа лекций + 2 часа практ. занятий)
═══ 4) Содержание каждого курса описывается через модули знаний═ (AL1, OS4═ и т.п.), при этом для каждого модуля указывается дробь p/q, где q - общее число лекционных часов, отводимых на весь модуль, из них p ча сов отводится на модуль в данном курсе.
═══ 5)═ Предлагаемые учебные дисциплины по программированию обозначены Ck0n,═ где C означает Computing,═ k - номер курса (1, 2, 3 или 4),═ на котором она читается, а n - порядковый номер дисциплины на этом курсе.
══════════════════════════════════════════════════════════════════
═══
══════════════ ПРИМЕР D.
═══ Особенность программы: основное внимание уделяется═ реализаторским аспектам программирования.
═══ Всего программа предусматривает 40 курсов, из═ них═ 16═ курсов═ по программированию, в том числе 10 обязательных и 6 по выбору.
═══
═══════ Обязательные курсы по программированию:
═══
════════ C101 и C102. Введение в программирование I и II
══════════ (84 кред. часов, из них 39 лекц. часов)
═══ Тематика:═ современные═ языки═ программирования, структуры данных, процедуры, методы решения задач, сложность═ вычислений,═ сортировка═ и поиск, интерфейс с пользователем,═ знакомство на практических занятиях с конкретными системами.
═══ Модули знаний: AL1 (5/13), AL2 (1/2), AL3 (1/3),═ AL4═ (1/4),═ AL6 (3/6),═ AL8═ (2/6),═ HU1═ (2/5),═ NU1 (3/3), NU2 (4/4), PL1 (2/2), PL4 (2/4), SE1 (4/16), SE2 (1/8), SE3 (1/4), SE5═ (1/8),═ SP1═ (2/3),═ SP2 (1/3), SP4 (1/2).
═══ В═ рамках═ выделенных═ 84 кред. часов рекомендуется читать (парал лельно или включав в IP) курс "Введение в языки программирования" (PR) - 12 лекц. часов.
═══
════════ C201. Введение в компьютерные системы
══════════ (42 кред. часа, из них 25 лекц. часов)
═══ Тематика: физические основы ЭВМ, цифровая логика и ицфровые системы,═ системотехника, характеристики устройств; методы проектирования и реализации на аппаратном и программном уровнях, спецификации; графиче ский интерфейс.
═══ Модули знаний: AR1 (12/12), AR2 (4/6), AR (2/3), HU1 (2/5), SE1 (2/16), SE2 (1/8), SE3 (1/4), SE5 (1/8).
═══
════════ C202. Анализ и разработка алгоритмов
══════════ (42 кред. часа, из них 34 лекц. часов)
═══ Тематика:═ методы выбора подходящих структуры данных,═ рекурсивные алгоритмы,═ проблемы сложности и неразрешимости, представление задач и методы поиска в ИИ, введение в параллельные вычисления.
═══ Модули═ знаний:═ AL1═ (8/13), AL2 (1/2), AL3 (2/3), AL4 (3/4), AL5 (4/4), AL6 (3/6), AL7 (3/6), AL8 (1/6), AI1 (3/3), AI2 (6/6).
══════════════════════════════
════════ C301. Архитектура ЭВМ и язык ассемблера
══════════ (42 кред. часа, из них 21 лекц. час)
═══ Тематика: архитектура ЭВМ, машинное представление данных, программирование на языке ассеблера, ввод-вывод.
═══ Модули знаний: AR2 (2/6), AR3 (1/3), AR4 (12/15), AR5 (6/13).
═══
════════ C302. Программные системы
══════════ (42 кред. часов, из них 30 лекц. часов)
═══ Тематика: методы проектирования и реализации систем средней═ сложности, параллельные═ вычисления, базы данных,═ интерфейс с пользователем.
═══ Модули знаний: AL7 (3/6), AL8 (3/6), AL9 (3/3), DB1 (3/4), DB2 (5/5),═ HU2═ (3/3),═ PL2═ (2/2),═ PL3 (2/2), SE1 (1/16), SE (1/8), SE3 (1/4), SE4 (1/8), SE5 (1/8).
═══
════════ C303. Программная инженерия
══════════ (42 кред. часа, из них 32 лекц. часа)
═══ Тематика:═ проблемы═ проектирования═ и═ реализации больших систем, жизненный цикл систем, спецификации, верификация и тестирование, социальные и этические проблемы программирования.
═══ Модули знаний: SE1 (9/16), SE2 (5/8), SE3 (1/4),═ SE4═ (5/8),═ SE5 (5/8), SP1 (1/3), SP2 (2/3), SP3 (3/3), SP4 (1/2).
═══
════════ C304. Языки программирования
══════════ (42 кред. часа, из них 38 лекц. часов)
═══ Тематика: проблемы создания ЯП, методы трансляции.
═══ Модули═ знаний:═ PL4═ (2/4),═ Pl5 (4/4), PL6 (4/4), PL7 (6/6), PL8 (4/4), PL9 (3/3), PL10 (2/2), PL11 (10,10), PL12 (3/3).
═══
════════ C401. Операционные системы
══════════ (42 кред. часа, из них 33 лекц. часа)
═══ Тематика: управление процессами, устройствами и═ памятью,═ секретность и защита, сети ЭВМ, распределенные ОС.
═══ Модули знаний: DB1 (1/4), HU1 (1/5), OS1 - OS10 (полностью).
═══
════════ C402. Альтернативные архитектуры ЭВМ
════════ ══(42 кред. часа, из них 20 лекц. часа)
═══ Тематика: альтернаятивные архитектуры и их особенности.
═══ Модули знаний: AR4 (3/15), AR5 (7/13), AR6 (5/5), AR7 (5/5).
═══
════════════ Программистские курсы по выбору:
| Обозначение | Программная инженерия | Систем баз знаний | Мультипрограммирование |
| CS1 | Анализ программ | СУБД | Соврем. ОС |
| CS2 | СУБД | Маш.графика | Сети ЭВМ |
| CS3 | Теория вычислений | ИИ | Секретность на ЭВМ |
| CS4 | Трансляторы | Понимание ЕЯ | Надежность ЭВМ |
| CS5 | Верификация и тестирование | Распредел. БД | Паралл. и распред. ЭВМ |
| CS6 | Технология программирования | Экспертные системы | Проектирование ЭВМ |
═══
═══════════ Типовой учебный план═ (кред. часы в неделю)
═══ (ГСД = гуманитарная или социальная дисциплина по выбору; ЕНД = естественно-научная дисциплина по выбору)
| осенний семестр | весенний семестр | ||
| 1 курс (freshman year) | |||
| физика-1 | 4 | физика-2 | 4 |
| мат.анализ-1 | 4 | мат.анализ-2 | 4 |
| C101 | 3 | C102 | 3 |
| англ.язык | 3 | ГСД | 3 |
| ГСД | 3 | ГСД | 3 |
| итого: | 17 | итого: | 17 |
| 2 курс (sophomore year) | |||
| ЕНД | 3 | ЕНД | 3 |
| мат.анализ-3 | 3 | лин.алгебра | 3 |
| C201 | 3 | C202 | 3 |
| диск.математика | 3 | ГСД | 3 |
| ГСД | 3 | ГСД | 3 |
| итого: | 15 | итого: | 15 |
| 3 курс (junior year) | |||
| C301 | 3 | C303 | 3 |
| C302 | 3 | C304 | 3 |
| вер. и статис. | 3 | професс.этика | 3 |
| CS1 | 3 | CS2 | 3 |
| курс по выбору | 3 | ГСД | 3 |
| итого: | 15 | итого: | 15 |
| 4 курс (senior year) | |||
| С401 | 3 | С402 | 3 |
| CS3 | 3 | CS5 | 3 |
| CS4 | 3 | CS6 | 3 |
| ГСД | 3 | курс по выбору | 3 |
| курс по выбору | 3 | курс по выбору | 3 |
| итого: | 15 | итого: | 15 |
═════════════════ ПРИМЕР F
═══
═══ Особенность программы: основное внимание═ уделяется═ теоретическим
аспектам программирования; больше математических курсов (6).
═══ Всего в программе 40 учебных курсов, из них 14 курсов по═ программированию (9 обязательных и 6 по выбору).
═══
════════════ Обязательные курсы по программированию:
═══
════════ C101. Программирование I
═══════════ (56 кред. часов, из них 42 лекц. часа)
═══ Тематика: основные методы и принципы программирования═ (алгоритмы, архитектура ЭВМ, языки программирования, технология программирования); значительное место уделяется программированию на ЯП и методам проектирования и реализации программ; абстрактные типы данных,═ сортировка═ и поиск.
═══ Модули═ знаний:═ AL2═ (1/2), AL6 (3/6), PL3 (1/2), PR (12/12), SE1 (16/16).
═══
════════ C102. Программирование II
═══════════ (42 кред. часа, из них 42 лекц. часа)
═══ Тематика:═ продолжение курса C101, основные вычислительные методы, структуры данных, рекурсия, интерфейс с═ пользователем,═ социальные═ и профессиональные вопросы программирования.
═══ Модули знаний: AL1 (4/13), AL2 (1/2), AL3 (1/3),═ AR3═ (3/3),═ NU1 (3/3),═ NU2═ (4/4),═ PL1═ (2/2),═ PL2 (2/2), PL3 (1/2), PL4 (1/4), PL5 (2/4), SE2 (8/8), SP1 (3/3).
═══
════════ C201. Архитектура ЭВМ
══════════ (42 кред. часа, из них 31 лекц. часа)
═══ Тематика: основы работы ЭВМ (цифровая логика и т.п.);═ работа═ ЭВМ на═ логическом═ уровне;═ физическая реализация и организация различных видов памяти.
═══ Модули знаний: AR1 (12/12), AR2 (6/6), AR5 (13/13).
═══
════════ C202. Структуры данных и анализ алгоритмов
══════════ (42 кред. часа, из них 33 лекц. часа)
═══ Тематика: углубленное изучение структур данных и алгоритмов;═ формальное═ определение═ рекурсии, основные алгоритмы решения сложных задач, сложность алгоритмов, неразрешимые═ проблемы,═ оценка═ алгоритмов сортировки и поиска; введение в параллельные и распределенные вычисления.
═══ Модули═ знаний:═ AL1═ (9/13), AL3 (2/3), AL4 (4/4), AL5 (4/4), AL6 (3/6), AL7 (3/6), AL8 (6/6), AL9 (2/3).
═══
════════ C203. Компьютерные системы и интерфейс
══════════ (42 кред. часа, из них 27 лекц. часов)
═══ Тематика: программирование на языке ассемблера; машинное представление данных и команд, способы адресации, ввод-вывод и прерывания, модульность; взаимодействие между устройствами ЭВМ; альтернативные архитектуры ЭВМ; интерфейс с пользователем.
═ ══Модули знаний: AR4 (12/15), AR6 (5/5), AR7 (5/5), HU1 (5/5).════
════════ C204. Принципы языков программирования
══════════ (42 кред. часа, из них 30 лекц. часов)
═══ Тематика:═ методы═ управления, контроль типов, реализация структур данных, управление памятью во время счета; семантика языков; парадигмы программирования и их отражение в ЯП.
═══ Модули═ знаний:═ AL9═ (1/3),═ AI1 (1/3), AI2 (6/6), PL4 (2/4), PL6 (4/4), PL11 (10/10), PL12 (3/3).
═══
════════ C301. Операционные системы, файловые системы.
═ ═════════(42 кред. часа, из них 37 лекц. часов)
═══ Тематика: задачи и процессы, координация и═ синхронизация═ процессов,═ физическая и виртуальная память, сети, распределенные ОС, ОС реального времени; файлы, файловые системы, базы данных.
═══ Модули знаний: DB1 (3/4),═ DB2═ (5/5),═ OS1-OS7═ (полностью),═ OS8 (1/3), OS9 (3/3), OS10 (3/3).
═══
════════ C302. Теория вычислений
══════════ (42 кред. часа, из них 21 лекц. час)
═══ Тематика: автоматы и формальные языки; формальные системы описания алгоритмов (машина Тьюринга и т.п.); разрешимые и неразрешимые проблемы, анализ сложности алгоритмов; формальное описание семантики языков, семантический анализ; введение в формальную верификацию программ.
═══ Модули знаний: AL7 (3/6), PL7-PL10 (полностью), SE5 (3/5).
═══
════════ C303. Технология программирования
══════════ (42 кред. часа, из них 33 лекц. часа)
═══ Тематика:═ спецификации,═ проектирование, верификация и тестирование; инженерия программирования; социальные,═ этические═ и═ профессиональные═ проблемы программирования - с выходом на проблемы ИИ, секретности и защиты данных в ОС и СУБД.
═══ Модули знаний: AI1 (2/3), DB1 (1/4), HU2═ (2/3),═ OS8═ (2/3),═ SE3 (4/4), SE4 (8/8), SE5 (5/8), SP2-SP4 (полностью).
═══
═══
═════════ Программистские курсы по выбору:
═══════ (1 - на 3-м курсе, 4 - на 4-м курсе)
═══ Современные операционные систмеы
═══ Современные методы проектирования программных систем
═══ Искусственный интеллект
═══ Принципы баз данных
═══ Семантика и верификация
═══ Методы трансляции
═══ Сети и распределенные ЭВМ
═══ Машинная графика
═══ Параллельные вычисления
═══ Моделирование
═══ Численные и символьные вычисления
═════════
═══
═══════════ Типовой учебный план═ (кред. часы в неделю)
| осенний семестр | весенний семестр | ||
| 1 курс (freshman year) | |||
| дискрет.матем. | 4 | мат. логика | 4 |
| C101 | 4 | C102 | 3 |
| ГСД | 3 | ЕНД | 3 |
| ГСД | 3 | ГСД | 3 |
| курс по выбору | 3 | курс по выбору | 3 |
| итого: | 16 | итого: | 16 |
| 2 курс (sophomore year) | |||
| мат.анализ-1 | 3 | мат.анализ-2 | 3 |
| C201 | 3 | C203 | 3 |
| C202 | 3 | C204 | 3 |
| ЕНД | 3 | ЕНД | 3 |
| ГСД | 3 | ГСД | 3 |
| итого: | 15 | итого: | 15 |
| 3 курс (junior year) | |||
| лин.алгебра | 3 | теор.вер. | 3 |
| C301 | 3 | C302 | 3 |
| CS1 | 3 | C303 | 3 |
| ГСД | 3 | ГСД | 3 |
| ЕНД | 3 | ГСД | |
| итого: | 15 | итого: | 15 |
| 4 курс (senior year) | |||
| CS2 | 3 | СS4 | 3 |
| CS3 | 3 | CS5 | 3 |
| матем. по выбору | 3 | ГСД | 3 |
| ГСД | 3 | ГСД | 3 |
| курс по выбору | 3 | курс по выбору | 3 |
| итого: | 15 | итого: | 15
═══
══════════ ПРИМЕР L
═══
═══ Особенность═ программы: углубленное обучение теоретическим основам и═ формальным═ методам═ в программировании,═ которым уделяется главное внимание в основных курсах, прикладные же аспекты вынесены в═ основном в═ курсы═ по выбору; программа ориентирована во многом на подготовку к поступлению в аспирантуру. Предполагаются углубленные курсы по математике.
═══ Всего в программе 40 курсов, из них 14 по программированию (9 обязательных и 5 по выбору).
═══
═════════ Обязательные курсы по программированию.
═══
════════ C101. Введение в программирование I
══════════ (56 кред. часов, из них 40 лекц. часов)
═══ Тематика: введение в современную технологию программирование с использованием═ языков программирования; этапы проектирования и реализации программ; типы данных, сортировка и поиск, управляющие═ структуры, процедур;═ исторический и социальный аспект программирования, проблемы интеллектуальной собственности.
═══ Модули знаний: AL1 (5/13), AL6 (2/6),═ AR═ (1/3),═ PL3═ (2/2),═ PR (7/12), SE1 (16/16), SP1 (3/3), SP2 (1/3), SP3 (1/3), SP4 (2/2).
═══
════════ C102. Введение в программирование II
══════════ (56 кред. часов, из них 19 лекц. часов)
═══ Тематика:═ основные═ идеи═ в проектировании и развитии программных систем; АТД, реализация разлмчных структур данных и их применение; рекурсия; жизненный цикл программ, спецификации, введение в верификацию. Существенное внимание уделяется практическим занятиям.
═══ Модули знаний: AL1 (8/13), Al2 (2/2), AL3 (3/3),═ AL6═ (2/6),═ SE2 (1/8), SE3 (1/4), SE4 (1/8), SE5 (1/8).
═══
════════ C201. Анализ алгоритмов
══════════ (42 кред. часа, из них 24 лекц. часов)
═══ Тематика: анализ сложности алгоритмов на примере методов сортировки═ и═ поиска, методов поиска в ИИ, операций над файлами; классы сложности, вычислимость и неразрешимость, универсальная═ машина═ Тьюринга; параллельные вычисления.
═══ Модули═ знаний:═ AL4═ (4/4),═ AL5 (4/4), AL6 (2/6), AL7 (3/6), AL8 (6/6), AL9 (3/3), AI2 (2/6).
═══
════════ C202. Разработка цифровых систем
══════════ (56 кред. часов, из них 41 лекц. часов)
═══ Тематика: введение в цифровые═ системы,═ их═ математические═ модели; логические элементы ЭВМ, минимизационные методы, организация памяти, взаимодействие, альтернативные архитектуры (включая микропроцессоры и гиперкубы).
═══ Модули знаний: AR1 (12/12), AR2 (6/6). AR5-AR7 (полностью).
═══
════════ 203. Теория вычислений
══════════ (42 кред. часа, из них 21 лекц. часа)
═══ Тематика: теория автоматов и формальных языков; общая═ теория═ вычислимости═ (включая машины Тьюринга, рекурсивные функции и лямбда исчисление); разрешимость и неразрешимость, сложность; формальное описание семантики языков, введение в формальные методы верификации.
═══ Модули знаний: AL7 (3/6), PL7-PL10 (полностью), SE5 (3/8).
═══
════════ 204. Операционные системы и СУБД
══════════ (56 кред. часов, из них 43 лекц. часа)
═══ Тематика: определение ОС и СУБД; задачи, процессы,═ синхронизация, физическая═ и виртуальная память, распределенные ОС, секретность и защита; языки программирования для параллельных вычислений;═ реляционная модель базы данных, физическая организация данных.
═══ Модули═ знаний:═ DB1-DB2═ (полностью),═ OS1-OS10 (полностью), PL12 (3/3).
═══
════════ 301. Языки программирования и парадигмы.
══════════ (56 кред. часов, из них 43 лекц. часа)
═══ Тематика: язык ассемблера; процедурные языки;═ объектно-ориентированные, функциональные и логические парадигмы и языки; принципы проектирования и реализаторские концепции языков.
═══ Модули═ знаний:═ AR3(2/3),═ AR4═ (15/15),═ PL1═ (2/2),═ PL2 (2/2), PL4-PL6 (полностью), PL11 (10/10).
═══
══════ 302. Инженерия программирования и пользовательский интерфейс
══════════ (56 кред. часов, из них 33 лекц. часа)
═══ Тематика: основные методы проектирования,═ спецификации,═ фукнциональный и объектно-ориентированный подходы к проектированию, верификация═ и сопровождение; программные инструменты; социальная и профессиональная ответственность; человеко-машинный интерфейс.
═══ Модули знаний: HU1 (5/5), HU2 (3/3),═ SE═ (7/8),═ SE2═ (7/8),═ SE5 (4/8), SP2 (2/3), SP3 (2/3).
═══
════════ 303. Методы вычислений
══════════ (42 кред. часа, из них 14 лекц. часа)
═══ Темактика:═ различные═ алгоритмы═ в научном программировании и ИИ; численные методы для линейной аглебры и интегрирования═ (с═ оценками), преобразования Фурье, алгоритмы компьютерной геометрии и др. (по желанию лектора); методы поиска в ИИ, нейронные сети.
═══ Модули знаний: AI1 (3/3), AI2 (4/6), NU1 (3/3), NU2 (4/4).
═══
═══
═════════ Программистские курсы по выбору:
═══ Современные алгоритмы
═══ Искусственный интеллект
═══ Проектирование трансляторов
═══ Сети и распределенные вычисления
═══ Машинная графика
═══ Параллельные вычисления
═══ Моделирование
═══ Численные и символьные вычисления
═══ Объектно-ориентированное программирование
═══ Семантика и верификация
═══ другие курсы по желанию факультета
═══
═══
═══════════ Типовой учебный план═ (кред. часы в неделю)
| осенний семестр | весенний семестр | ||
| 1 курс (freshman year) | |||
| дискрет.матем. | 3 | мат. логика | 3 |
| C101 | 4 | C102 | 4 |
| ГСД | 3 | ГСД | 3 |
| ЕНД | 4 | ЕНД | 4 |
| курс по выбору | 3 | курс по выбору | 3 |
| итого: | 17 | итого: | 17 |
| 2 курс (sophomore year) | |||
| мат.анализ-1 | 3 | мат.анализ-2 | 3 |
| C201 | 3 | C203 | 3 |
| C202 | 4 | C204 | 4 |
| ГСД | 3 | ГСД | 3 |
| ГСД | 3 | ГСД | 3 |
| итого: | 16 | итого: | 16 |
| 3 курс (junior year) | |||
| лин. алгебра | 3 | C303 | 3 |
| C301 | 4 | CS1 | 3 |
| C302 | 4 | ГСД | 3 |
| ГСД | 3 | курс по выбору | 3 |
| курс по выбору | 3 | курс по выбору | 3 |
| итого: | 17 | итого: | 15 |
| 4 курс (senior year) | |||
| CS2 | 3 | СS4 | 3 |
| CS3 | 3 | CS5 | 3 |
| курс по выбору | 3 | курс по выбору | 3 |
| курс по выбору | 3 | курс по выбору | 3 |
| курс по выбору | 3 | курс по выбору | 3 |
| итого: | 15 | итого: | 15 |