Обязательные модули, которые помещаются в существующие компьютерные курсы, читаемые для специальности "Прикладная математика и информатика" и отражают тенденции новых стандартов

  I семестр – Информатика (Информатика)

  Основы алгоритмизации

Основные этапы решения задач с помощью компьютера. Понятие математической модели задачи. Алгоритм и его свойства, способы представления. Принципы работы компьютера.

Машинный язык и языки программирования высокого уровня. Алфавит языка, синтаксис языка, семантика. Принципы сравнения языков высокого уровня. Понятие типа данных. Константы, переменные. Скалярные типы, Представление данных в памяти, способы адресации.

Типовые алгоритмические схемы.

Организация подпрограмм. Технологии проектирования и разработки программ.

  Простейшие структуры данных

Структурные типы: массивы, строки, записи, множества. Алгоритмы обработки структурных типов данных. Файлы, юниты и пакеты. Организация хранения данных во внешней памяти. Особенности алгоритмов для работы с внешней памятью.

  II семестр – Языки программирования (Языки программирования и методы трансляции)

  Введение в ООП

Классы, объекты и ссылки. Создание и уничтожение объектов, конструкторы и деструкторы. Методы доступа. Инкапсуляция. Классы и наследование. Предок всех классов. Доступ к методам базового класса.

  Динамические структуры данных

Списки односвязные и двусвязные, линейные и кольцевые. Основные операции над ними. Деревья. Двоичные деревья. Обходы бинарных деревьев. Рекурсивные и нерекурсивные алгоритмы обработки. Деревья поиска. Улучшенные двоичные деревья.

НЕ нашли? Не то? Что вы ищете?

  Абстрактные типы данных

Стек. Очередь. Статическая и динамическая реализация. Использование стека: развертка рекурсии. Дек. Словари для произвольных данных

  III семестр – Языки программирования (Языки программирования и методы трансляции)

  Объектно-ориентированное программирование (на примере языка Java)

Типы данных, операции и функции. Обработка исключений.

Классы. Инкапсуляция. Конструкторы и деструкторы. Методы доступа. Наследование. Виртуальные методы. Абстрактные классы. Интерфейсы. Итераторы. Отношения между классами: является, содержит, подобен.

  Обзор технологий и языков программирования

Классификация технологий разработки программ: Процедурное, функциональное, декларативное, объектно-ориентированное. Обзор языков, поддерживающих соответствующие технологии.

  IV семестр – Операционные системы (Системное и прикладное программное обеспечение)

  Архитектура компьютера и операционные системы

Поколения компьютерных архитектур. Типы компьютеров. Основные компоненты компьютерной системы: процессор, основная память, устройства хранения информации, устройства ввода/вывода. Архитектура микропроцессоров и наборы команд.

Основные понятия, виды, назначение и характеристики операционных систем. Управление процессами. Управление памятью, виртуальная память. Управление устройствами ввода/вывода, файловые системы. Безопасность операционных систем.

  Многопоточное программирование

Многоядерные процессоры. Уровни реализации многопоточности. Основные операции с потоками: создание, уничтожение, соединение. Библиотеки многопоточности.

Взаимное исключение и его реализация. Основные примитивы синхронизации потоков: семафоры, мьютексы, барьеры, мониторы. Высокоуровневая синхронизация: структуры данных и каркасные многопоточные библиотеки.

  IV семестр – Компьютерные сети (Компьютерные сети)

очень мало практики - рекомендации: добавить практику

  Архитектура компьютерных сетей

Основные понятия: протоколы и службы. Многоуровневая архитектура и стеки протоколов. Службы прикладного уровня. Протоколы транспортного уровня. Сетевой уровень и маршрутизация. Канальный уровень, технологии канального уровня. Физический уровень и среды передачи данных.

  Сетевое программирование (практика средствами Java)

Интерфейс сокетов Беркли, объектно-ориентированные интерфейсы. Типы протоколов прикладного уровня. Клиенты и однопоточные итеративные серверы. Серверы асинхронного типа. Взаимно-согласованные серверы. Высокоуровневые библиотеки реализации сетевого взаимодействия.

  V семестр – Курсы по выбору ()

  1 вариант. Теоретические основания информатики

Теория автоматов и формальных языков: Конечные автоматы. Недетерминированные конечные автоматы. Регулярные выражения и регулярные языки. Контекстно-свободные грамматики. Магазинные автоматы.

Теория вычислимости: Тезис Чёрча-Тьюринга, формализации понятия алгоритма: машина Тьюринга, рекурсивные функции, лямбда-исчисление. Разрешимость и проблема останова. Сводимость.

Теория сложности: Оценка сложности алгоритмов. Временная сложность, классы сложности, NP-полнота. Пространственная сложность. Сводимость.

  2 вариант.

  VII семестр – Базы данных (Базы данных)

Нет лекций, а курс - общий. Обязательно добавить лекций

  Технологии баз данных: проектирование БД и программирование приложений

Подходы к организации БД. Проектирование реляционных БД. Использование нормализации. Семантическое моделирование данных. Средства поддержки проектирования баз данных и информационных систем. Инструментальные средства поддержки процесса моделирования и разработки. CASE–средства.

Физическая организация реляционных СУБД. Компиляторы SQL. Проблемы оптимизации. Общая схема обработки запроса. Управление транзакциями. Изолированность пользователей при параллельной работе. Механизм блокировок. Задачи и средства администрирования БД.

Модели взаимодействия с БД в ИС: файл-сервер, удаленный доступ, сервер БД, сервер приложений. Доступ к БД через WWW. Механизмы доступа к БД из прикладных программ – встроенный SQL, интерфейс прикладного уровня(API), ODBC-драйверы.

Динамический SQL. Оператор подготовки. Оператор получения описания подготовленного запроса. Оператор выполнения подготовленного запроса. Работа с динамическими операторами через курсоры.

  Язык SQL

Реляционная модель данных – общая характеристика. Базисные средства манипулирования реляционными данными. Функции СУБД. Типовая организация СУБД. Архитектура клиент – сервер. Серверы баз данных.

Язык SQL. Функции и основные возможности. Стандартизация SQL. Язык SQL на примере одной из современных СУБД. Процедурные расширения языка SQL. Значение хранимых процедур. Триггеры. Назначение триггеров.

Механизм транзакций. Значение транзакций для СУБД. Проблемы выполнения транзакций в многопользовательской среде. Уровни изоляции транзакций. Способы реализации механизмов управления транзакциями.

  VIII семестр – Курсы по выбору ()

  1 вариант. Web-технологии

Основные понятия современной web-архитектуры. HTML и CSS. Регулярные выражения. Клиентский JavaScript, использование современных библиотек. Введение в XML. Взаимодействие клиента и сервера. Серверное программирование. Удаленное исполнение сценариев и технология AJAX. Web-сервисы

  2 вариант. Параллельное программирование

Параллельные структуры вычислительных систем. Микропроцессорные системы и способы распараллеливания. Распараллеливание в ВС на уровне исполнительных устройств. Аппаратная поддержка языка пользователя как основная концепция мультипроцессорных систем.

Моделирование и анализ параллельных вычислений. Оценка коммуникационной трудоемкости параллельных алгоритмов. Принципы разработки параллельных методов. Параллельное программирование средствами MPI: общие процедуры, прием/передача сообщений, коллективное взаимодействие, группы и коммуникаторы, виртуальные группы. Параллельное программирование средствами OpenMP: основные конструкции, загрузка и синхронизация, дополнительные возможности.

  3 вариант. Офисное программирование