- •Методы программирования программа общего курса и описания лабораторных работ Учебное пособие
- •Введение
- •Программа общего курса "эвм и программирование"
- •1. Цели и задачи курса и его место в учебном процессе на факультете вмк
- •1.1. Цель преподавания курса
- •1.2. Задачи изучения курса
- •1.3. Дисциплины, освоение которых необходимо при изучении данного курса
- •Содержание курса
- •1. Структура действия и структуры данных.
- •1.1. Структуры данных.
- •1.2. Структуры хранения.
- •1.3. Динамические структуры.
- •1.4. Динамические структуры и структуры хранения.
- •1.5. Динамическое распределение памяти.
- •1.6. Распределение памяти для структур хранения, представляющих основные отношения с помощью адресных указателей.
- •2. Динамические структуры и конструирование математических моделей (алгебр: объекты и операции).
- •2.1. Пример 1: система для арифметических действий над полиномами.
- •2.2. Пример 2: система для арифметических действий над многочленами от нескольких переменных.
- •2.3. Пример 3: редактирование текстов.
- •2.4. Пример 4: структуры хранения геометрических объектов (случай плоского чертежа, содержащего точки и отрезки прямых линий).
- •3. Организация доступа по имени к структурам данных.
- •5.2. Введение многопрограммного режима в целях равномерной загрузки устройств эвм.
- •5.3. Математическая модель управления процессами и ресурсами в операционной системе.
- •Программа общего лабораторного практикума на эвм
- •3 Семестр Тема: Математические структуры и структуры хранения.
- •Лабораторная работа 1 Тема: Реализация динамической структуры стек с использованием вектора памяти. Использование стека при решении задач.
- •Лабораторная работа 2 Тема: Реализация динамической структуры очередь с использованием кольцевого буфера. Использование очереди при решении задач.
- •Лабораторная работа 2 Тема: Реализация динамической структуры очередь с использованием кольцевого буфера. Использование очереди при решении задач.
- •4 Семестр Тема: Методы представления и обработки сложных объектов на эвм
- •Лабораторная работа 7 Тема: Организация динамических таблиц с доступом по имени.
- •Методические указания к выполнению лабораторных работ
- •Методические указания к оформлению лабораторных работ
- •Вопросы для контроля по общему курсу "эвм и программирование"
- •Тема 1.Структуры действия и структуры данных.
- •Тема 2. Динамические структуры и конструирование математических моделей.
- •Тема 3. Организация доступа по имени.
- •Тема 4.Проблемное языковое обеспечение.
- •Учебно-методические цели работы
- •Лабораторная работа 2 Обслуживание процессором эвм очереди заданий (очередь) Постановка учебно-практической задачи
- •Учебно-методические цели работы
- •Лабораторная работа III Аналитические преобразования полиномов от нескольких переменных Постановка учебно-практической задачи
- •Учебно-методические цели работы
- •Лабораторная работа IV Организация доступа по имени Постановка учебно-практической задачи
- •Учебно-методические цели работы
- •Анализ способов организации таблиц.
- •1. Просматриваемые таблицы
- •2. Упорядоченные таблицы
- •3. Таблицы с вычисляемыми адресами
- •Анализ способов организации таблиц.
- •1. Просматриваемые таблицы
- •2. Упорядоченные таблицы
- •3. Таблицы с вычисляемыми адресами
- •Лабораторная работа VI Обработка геометрических объектов на эвм
- •1. Цели и задачи дисциплины
- •2. Требования к уровню освоения содержания дисциплины.
- •3. Объем дисциплины и виды учебной работы(часы):
- •4. Содержание дисциплины
- •6.2. Средства обеспечения освоения дисциплины
- •7. Материально-техническое обеспечение дисциплины
- •8. Методические рекомендации по организации изучения дисциплины
- •8.1. Рекомендуемый перечень тем практических занятий
- •8.2. Рекомендуемый перечень тем индивидуальных занятий
- •8.3. Рекомендуемый перечень тем домашних заданий
- •8.3. Рекомендуемый перечень тем контрольных работ
1. Цели и задачи дисциплины
Дисциплина "Методы программирования" имеет целью обучить студентов принципам построения и анализа алгоритмов, способствовать развитию логического мышления, формированию научного мировоззрения и прививать склонность к творчеству. При изучении курса используются знания, полученные слушателями в процессе изучения курсов "Математический анализ", "Теория вероятностей", "Языки программирования высокого уровня". Знания и практические навыки, полученные из курса "Методы программирования", используются обучаемыми при изучении научных дисциплин, а также при разработке курсовых и дипломных работ.
Задачи дисциплины - дать основы:
структур данных;
оценки сложности работы алгоритма;
aлгоритмов сортировки;
алгоритмов поиска;
алгоритмов на графах;
алгоритмов генерации случайных последовательностей;
алгоритмов генерации подстановок.
2. Требования к уровню освоения содержания дисциплины.
В результате изучения дисциплины студенты(слушатели) должны
Иметь представление:
о способах оценки сложности работы алгоритмов;
о возможности модификации алгоритмов с учетом конкретных практических задач;
Знать:
принципы лежащие в основе алгоритмов сортировки и поиска информации;
принципы хранения и обработки информации в алгоритмах сортировки, поиска и алгоритмах на графах;
методы генерации случайных последовательностей и подстановок;
Уметь:
сформулировать задачу и использовать для ее решения известные методы;
применять полученные знания к различным предметным областям;
реализовывать алгоритмы на языках программирования высокого уровня выбирая структуры данных для хранения информации;
Иметь навыки:
написания и отладки программ, реализующих алгоритмы сортировки, поиска и алгоритмы на графах.
получения эмпирических оценок трудоемкости алгоритма.
3. Объем дисциплины и виды учебной работы(часы):
Вид занятий |
Всего часов |
Семестры | |
Общая трудоемкость |
200 |
- |
- |
Аудиторные занятия |
100 |
50 |
50 |
Лекции |
48 |
24 |
24 |
Практические занятия (ПЗ) |
48 |
24 |
24 |
Семинары (С) |
- |
- |
- |
Лабораторные работы (ЛР) |
- |
- |
- |
Контрольные работы |
4 |
2 |
2 |
Самостоятельная работа |
100 |
50 |
50 |
Курсовой проект (работа) |
- |
- |
- |
Расчетно-графические работы |
- |
- |
- |
Реферат |
- |
- |
- |
Иные виды работ |
- |
- |
- |
Вид итогового контроля |
36 |
зачет |
экзамен |
4. Содержание дисциплины
4.1. Тематический план.
Раздел дисциплины |
Лекции(час) |
ПЗ или С(час) |
ЛР(час) |
Структуры данных. |
12 |
8 |
- |
Алгоритмы сортировки. |
12 |
12 |
- |
Алгоритмы поиска. |
8 |
12 |
- |
Алгоритмы на графах. |
8 |
8 |
- |
Генерация псевдослучайных последовательностей и алгоритмы порождения перестановок. |
8 |
8 |
- |
4.2. Содержание разделов дисциплины
РАЗДЕЛ 1.СТРУКТУРЫ ДАННЫХ
Цели и задачи курса. Место дисциплины в учебном процессе. Методические рекомендации по изучению курса. Обзор литературы.
Элементарные и простые структуры данных. Сложные структуры данных. Статические и динамические структуры.
РАЗДЕЛ 2. АЛГОРИТМЫ СОРТИРОВКИ
Понятия модели вычислений и оценки сложности алгоритмов.
Основные понятия и стратегии сортировки. Алгоритмы сортировки вставками, выбором, слиянием, обменная сортировка, распределяющая сортировка. Оценка сложности работы алгоритмов внутренней сортировки.
Основные понятия внешней сортировки. Алгоритмы многофазного и каскадного слияния.
РАЗДЕЛ 3.АЛГОРИТМЫ ПОИСКА
Основные понятия. Алгоритмы исчерпывающего поиска.
Поиск в последовательно организованном файле.
Поиск в деревьях. Оптимальные деревья двоичного поиска. Сбалансированные деревья.
Хеширование. Разрешение коллизий.
РАЗДЕЛ 4. АЛГОРИТМЫ НА ГРАФАХ
Возможные представления графов в ЭВМ.
Остовные деревья. Алгоритмы поиска связных и двусвязных компонент в неориентированных графах. Алгоритм поиска сильносвязных компонент в ориентированных графах.
Алгоритмы нахождение остовного дерева минимального веса, определения кратчайших расстояний между вершинами графа., нахождения транзитивного замыкания.
РАЗДЕЛ 5. ГЕНЕРАЦИЯ ПСЕВДОСЛУЧАЙНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ И АЛГОРИТМЫ ПОРОЖДЕНИЯ ПЕРЕСТАНОВОК
Моделирование равномерно распределенных случайных величин. Методы моделирования дискретных и непрерывных случайных величин.
Алгоритмы порождения перестановок в лексикографическом порядке, циклическим сдвигом и в порядке минимального изменения. Коды Грея.
Итоги изучения курса. Методические рекомендации по применению полученных знаний, умений и навыков при изучении последующих курсов.
5. Лабораторный практикум
не предусмотрен.
6. Учебно-методическое обеспечение дисциплины
6.1. Рекомендуемая литература
Основная литература
Кнут Д. Искусство программирования для ЭВМ. т.1,2,3, Сортировка и поиск. - М.: Мир,.
Кормен. Т., Леверсон Ч., Ртвест Р. Алгоритмы. Построение и анализ.-М.; МЦНМО, 1999, 960 с.
Грехем Р., Кнут Д., Поиашник О. Конкретная математика.М.. Мир.,1998, 702 с.
Мачкевич И.В. Алгоритмы сортировки. Курс лекций.. М.: в/ч 33965, 1991.
Дополнительная литература
Ахо А. , Хопкрофт ДЖ. Построение и анализ вычислительных алгоритмов. - М; Мир, 1979. - 536 с.
Кнут Д. Искусство программирования для ЭВМ. т.3, Сортировка и поиск. - М.: Мир, 1978, ,848с.
Мейер Б., Бодуэн К. Методы программирования. т.1, - М.; Мир, 1982г. 362с.
Рейнгольд Э., Нивергелд Ю., Део Н.. Комбинаторные алгоритмы . Теория и практика, М., Мир., 1980г., 480с.
Нивергельд Ю., Рейнголд Э., Фаррар Дж. Машинный подход к решению математических задач. М. Мир. 1977, 351с.
Акулинин Ю.А. Исаев О.В. , Кривенко М.П., Мацкевич И.В. Специальное применение ЭВМ. Курс лекций. М.: в/ч 33965, 1986