
- •Рецензент: старший преподаватель кафедры прикладной информатики зип СибУпк ю. Е. Хохлова.
- •1. Общие положения
- •1.1. Цель и задачи дисциплины, ее место в учебном процессе
- •1.2. Требования к уровню освоения содержания дисциплины
- •2. Основные вопросы курса
- •Тема 5. Структуры данных
- •Тема 6. Сортировка
- •Тема 7. Поиск
- •Тема 8. Объектно-ориентированное программирование
- •Тема 9. Событийное программирование
- •Тема 10. Параллельные вычислительные технологии
- •3. Методические указания по самостоятельному изучению тем
- •Тема 1. Общее понятие алгоритма.
- •Тема 2. Основные конструкции программирования
- •Тема 3. Теория алгоритмов
- •Тема 4. Рекурсия
- •Тема 5. Структуры данных
- •Тема 6. Сортировка
- •Тема 7. Поиск
- •Тема 8. Объектно-ориентированное программирование
- •Тема 9. Событийное программирование
- •Тема 10. Параллельные вычислительные технологии
- •Какая система может быть отнесена к параллельной вычислительной системе?
- •4. Правила выполнения и оформления
- •Если рецензент предлагает внести в содержание контрольной работы те или иные исправления или дополнения и прислать их для повторной проверки, то это следует сделать в короткий срок.
- •5. Правила выбора варианта
- •6. Методические указания
- •7. Задания контрольной работы
- •В авторской редакции
Тема 5. Структуры данных
Понятие абстрактного типа данных. Классификация структур данных. Последовательные списки: стек, очередь, дек. Связные списки: однонаправленный список, двунаправленный список, циклический список. Графы. Методы реализации графов: матрица смежности, матрица инцидентности, списки смежных вершин, список ребер.
Тема 6. Сортировка
Внутренняя сортировка (сортировка массивов). Понятие сложности алгоритма сортировки. Основные алгоритмы внутренней сортировки: пузырьковая сортировка, шейкерная сортировка, сортировка простым выбором, сортировка простыми вставками, сортировка Шелла, сортировка слиянием, быстрая сортировка. Внешняя сортировка (сортировка файлов). Отрезки файла. Операции разделения файла и слияния файлов. Некоторые алгоритмы внешней сортировки: многофазная сортировка, сбалансированное слияние. Использование алгоритмов внутренней сортировки в сортировке последовательных файлов.
Тема 7. Поиск
Поиск в массиве. Линейный поиск. Бинарный поиск. Поиск в таблице. Хеширование. Выбор хеш-функции. Разрешение коллизий: метод открытой адресации, метод цепочек.
Тема 8. Объектно-ориентированное программирование
Парадигма объектно-ориентированного программирования (ООП): концепции объекта и класса, инкапсуляции, наследования и полиморфизма. Спецификация видимости атрибутов и методов объекта. Механизмы раннего и позднего связывания. Статические и виртуальные методы. Иерархии классов. Шаблоны классов.
Тема 9. Событийное программирование
и прикладные программные интерфейсы
Событийно-управляемое программирование. Пользовательские и системные события в программе. Методы обработки и распространение событий. Управление параллелизмом с помощью механизма обработки событий. Прикладной программный интерфейс (Application Programming Interface), API-программирование. Методы обработки данных, основанные на компонентных технологиях. Промежуточное программное обеспечение (middleware).
Тема 10. Параллельные вычислительные технологии
Параллельная вычислительная система. Примеры больших задач. Режимы выполнения задач: последовательный, псевдопараллельный (разделение времени) и параллельный. Виды параллелизма: многопроцессорная, векторная и конвейерная обработка. Методика разработки параллельных алгоритмов. Модель «процессы-каналы» параллельной программы. Разделение вычислений на независимые части: параллелизм по данным и функциональный параллелизм. Выделение информационных зависимостей: локальные и глобальные, статические и динамические схемы передачи данных, структурные и произвольные, синхронные и асинхронные способы взаимодействия. Масштабирование подзадач. Распределение подзадач по процессорам вычислительной системы.
3. Методические указания по самостоятельному изучению тем
Приступая к самостоятельному выполнению контрольной работы, студенты должны изучить основные вопросы программы, пользуясь материалами установочных лекций и рекомендованной литературой.
Тема 1. Общее понятие алгоритма.
Управляющие конструкции алгоритмического языка.
Понятие переменной
Общее понятие алгоритма и краткий обзор существующих алгоритмических языков. Неформальный алгоритмический язык - псевдокод, максимально приближенный к естественному языку. Основные конструкции алгоритмического языка - алгоритм, ветвление, цикл; приводятся простейшие примеры программ на псевдокоде. Понятие переменной.
При изучении данной темы следует обратить внимание на источники: [1], [2].
Контрольные вопросы для самопроверки:
1. Понятие алгоритма. Свойства.
2. Формы записей алгоритмов.
3. Основные алгоритмические конструкции.
4. Основы алгебры логики.
5. Законы логических операций. Таблицы истинности.