Федеральное агентство по рыболовству
Вид материала | Основная образовательная программа |
Аннотация к рабочей программе дисциплины «Основы алгоритмизации» 2. Требования к уровню освоения содержания дисциплины 3. Содержание дисциплины. Основные разделы. |
- Федеральная целевая программа "Развитие электронной компонентной базы и радиоэлектроники", 3538.74kb.
- Федеральное агентство по рыболовству Федеральное государственное учреждение, 238.81kb.
- Федеральное агентство по рыболовству, 102.49kb.
- Федеральное агентство по рыболовству, 1217.46kb.
- Федеральное агентство по рыболовству, 1299.43kb.
- Федеральное агентство по рыболовству, 1721.64kb.
- Программа-минимум кандидатского экзамена по специальности 12. 00. 01 «Теория и история, 921.53kb.
- Федеральное агентство по рыболовству, 105.13kb.
- Федеральное агентство по рыболовству азово черноморское территориальное управление, 84.7kb.
- Английский язык методические указания и контрольные задания для студентов специальности, 646.48kb.
Аннотация к рабочей программе дисциплины «Основы алгоритмизации»
1. Цели и задачи дисциплины
Дисциплина “Основы алгоритмизации” позволяет выровнять уровень подготовки студентов по программированию и научить “свободно владеть” языком программирования как “средством выражения” алгоритмов применительно к традиционному кругу задач - арифметико-логическим, сортировки и поиска, приближенным вычислений, обработки текста.
Постепенный переход к детальному изучению структур данных в памяти и в файлах и алгоритмов работы с ними, к разработке принципиально более сложных программ, алгоритмов и структур данных позволяет сформировать уровень знания языка Си, позволяющий свободно оперировать типами данных и переменных произвольной сложности и модульными алгоритмами из обработки.
Цель дисциплины состоит в изучении методов алгоритмизации, основ программирования на алгоритмических языках высокого уровня и в использовании полученных навыков при решении инженерных задач.
Задачи курса:
- формирование базовых знаний по алгоритмизации и программированию - о стиле написания программ, о рациональные методах их разработки и оптимизации, о стратегии отладки и тестирования программ;
- получение базового уровня по программированию на языке Си с использованием простых типов данных: базовых типов данных и массивов;
- изучение структур данных в памяти и в файлах и алгоритмов работы с ними с использованием языка Си;
- знакомство с основными принципами организации хранения и поиска данных, алгоритмами сортировки и поиска;
- приобретение навыков использования базового набора фрагментов и алгоритмов в процессе разработки программ, навыков анализа и “чтения” программ;
- изучение основ технологии программирования и методов решения вычислительных задач и задач обработки символьных данных;
- формирование уровня знания языка, позволяющего свободно оперировать типами данных и переменными произвольной сложности и модульными алгоритмами их обработки.
2. Требования к уровню освоения содержания дисциплины.
Процесс изучения дисциплины направлен на формирование у обучаемого следующих компетенций:
- использует основные законы естественнонаучных дисциплин в профессиональной деятельности, применяет методы математического анализа и моделирования, теоретического и экспериментального исследования (ОК-10);
- разрабатывать компоненты программных комплексов и баз данных, использовать современные инструментальные средства и технологии программирования (ПК-5);
В результате изучения дисциплины студент должен:
должен иметь представление:
о структуре программного обеспечения, о видах и областях применения основных программных средств;
об основных этапах решения задач на ЭВМ, о жизненном цикле программы, о критериях качества программы, о понятии диалоговых и дружественных пользователю программ;
об общих принципах построения, описания, способах записи и основах доказательства правильности алгоритмов (верификации алгоритмов);
об общей классификации современных языков программирования, их областях применения и использования;
о стандартных типах данных и о типах данных, определяемых пользователем;
о представлении основных структур программирования: итерация, ветвление, повторение, процедуры и функции; о программирование рекурсивных алгоритмов;
о файлах и об основных видах динамических структур данных и способах их реализации;
о способах конструирования программ и о понятии модульных программ;
об использовании дополнительных пакетов и библиотек при программировании;
должен знать:
современные методы и средства разработки алгоритмов и программ на языке Си;
синтаксис и семантику основных конструкций языка Си;
способы организации сложных структур данных (массивы, структуры, списки, деревья), основные методы представления и алгоритмы обработки этих данных;
особенности работы с файлами в языке Си;
особенности технологии разработки программ сложной структуры на языке Си;
должен уметь:
принимать участие во всех фазах проектирования, разработки, изготовления, отладки и документирования программ;
разрабатывать модульные программы на Си с использованием базовых типов данных и массивов и сложных иерархических типов данных и переменных;
разрабатывать собственные программы с использованием стандартных фрагментов алгоритмов;
использовать указатели, структурированные переменные в разрабатываемых программах;
применять динамическую память при обработке данных заранее неизвестного объема и размерности,
должен получить навыки:
разработки программ, использующих данные в произвольном формате, а также использующих массивы указателей и списки для хранения, упорядочения и поиска данных;
проектирования программ, использующих двоичные файлы для размещения различных структур данных с полной и поэлементной их загрузкой в память.
использования некоторых алгоритмов прикладной теории графов, целочисленного линейного программирования, теории расписания и защиты данных, алгоритмов сжатия информации;
работы в интегрированных средах программирования и с использованием библиотек.
3. Содержание дисциплины. Основные разделы.
Стандартные типы данных. Байт; машинное слово; представление отрицательных чисел, дополнительный код; типы данных целых чисел; числа с плавающей точкой; представление символьных данных; массив как производный тип данных.
Типы данных, операции и выражения языка Си. Результат операции; действия над операндами; преобразование типов операндов; классификация операций; арифметические операции; операции сравнения и логические операции; операции присваивания; явное преобразование типа; условная операция; операция последовательности действий ("запятая"); таблица приоритетов; часто возникающие ошибки.
Представление основных структур программирования: итерация, ветвление, повторение; процедуры.
Операторы и управляющие конструкции языка Си. Операторы простой последовательности действий; условные операторы; операторы цикла; принцип вложенности; операторы перехода.
Функции языка Си и структура программы. Определение функции; способ передачи параметров; главная функция; глобальные (внешние) переменные; инициализация; области действия функций; определение и объявление. Препроцессор; трансляция и ее фазы; модульное программирование, компоновка.
Обзор лексики, синтаксиса и семантики языка Си. Лексический и синтаксический анализ. Семантический анализ частей программы. Словесные формулировки и их формальное написание. Примеры: проанализируйте смысл фрагментов.
Технология структурного программирования, примеры. Структурное программирование; модульное проектирование; нисходящее пошаговое структурное проектирование.
Алгоритмы, использующие итерационные процессы и циклы. Нахождение корня функции методом половинного деления; нахождение корня функции методом последовательных приближений; вычисление степенного полинома; алгоритм вычисление суммы степенного ряда.
Алгоритмы для работы с текстовыми данными. Стандартная библиотека ввода-вывода; ввод-вывод целых чисел; ввод целого числа; вывод двоичного числа; представление текста; упорядоченные строки. Алгоритмы работы со строками: контекстная замена; форматирование строки.
Моделирование стека и очереди при помощи массивов. Моделирование стека, основные операции работы с ним. Моделирование очереди, основные операции работы с ней.
Алгоритмы сортировки и слияния на примере массивов. Обменные сортировки; сортировки разделением; сортировки подсчетом; сортировки выбором; сортировки вставками; сортировки слиянием.
Алгоритмы поиска и выбора значений из массивов. Постановка задач поиска и выбора, линейный и бинарный поиск.
Указатели и адресная арифметика, работа с указателями. Указатель как средство доступа к данным; указатель как элемент архитектуры компьютера; работа с указателем; философский смысл указателя; адресная арифметика, указатель как адрес памяти; указатели и массивы; указатели как формальные параметры; указатель - результат функции; операции над указателями; границы памяти, адресуемой указателем; строки, массивы символов и указатели char*
Типы данных, определяемые пользователем. Структуры и объединения, производные типы данных. Структуры; указатель на структуру, операция "->"; указатель на структуру - формальный параметр; указатель на структуру -результат функции; объединения; битовые поля. иерархия и конструирование типов данных; контекстное определение типов данных в Си; абстрактные типы данных; определение типа данных - спецификатор typedef.
Динамические структуры данных. Динамические переменные и массивы. Присваивание указателей различного типа; явное преобразование типа указателя "на лету"; работа с памятью "на низком уровне"; указатель типа void*; работа с последовательностью данных переменного формата (на основе алгоритм упаковки-распаковки разреженного массива); указатели и многомерные массивы. Работа с динамической памятью; динамические массивы; проблемы размерности данных.
Функция как тип данных и модуль, модульное программирование. Формальные и фактические параметры; вызов функции; функции с переменным количеством параметров. Файл Си-программы как элемент модульного программирования; классы памяти и области действия переменных; области действия функций; связывание, внешние ссылки и точки входа; заголовочные файлы и библиотеки.
Алгоритмы, использующие поразрядные операции. Поразрядные операции: операция "или"; операция "и"; операция "инверсия"; операция "исключающее или"; операция "сдвиг влево"; операция "сдвиг вправо". Примеры использования поразрядных логических операций.
Понятие и классификация структур данных. Совокупность физически (типы данных) и логически (алгоритм, функции) взаимосвязанных переменных и их значений.
Массив указателей как структура данных. Формирование массивов указателей; работа с массивом указателей; многоуровневые указатели; динамические массивы указателей переменной размерности; массивы указателей на строки; многоуровневые массивы указателей на строки.
Односвязные и двусвязные линейные списки, очереди, стеки. Списки как динамические структуры данных; работа со списками; способы формирования списков; односвязные списки; представление очереди и стека односвязным списком; двусвязные списки; проблема концов списка и циклические списки.
Рекурсия, примеры рекурсивных алгоритмов. Особенности программирования рекурсивных функций; философские аспекты рекурсии; линейная рекурсия как простейший тип рекурсии. Рекурсия и поисковые задачи, результат функций рекурсивного поиска.
Понятие рекурсивных структур данных, деревья, графы. Деревья; двоичное дерево; нумерация вершин в деревьях, алгоритмы обхода дерева; структуры данных с произвольными связями - графы.
Использование указателей на функции. синтаксис указателя на функцию; указатель на функцию как формальный параметр. Итераторы - обхода, поиска, сортировки, двоичного поиска, включения и исключения элементов в упорядоченной структуре данных. Динамическое связывание.
Обзор достоинств и недостатков различных структур данных. Сравнение различных структур данных с точки зрения возможности хранения упорядоченного множества переменных, включения, исключения и ускоренного поиска: иерархические структуры данных; структуры данных с элементами произвольных типов; структуры переменной размерности.
Текстовые файлы и файлы произвольного доступа. Стандартная библиотека ввода-вывода; последовательный текстовый файл; позиционирование в текстовом файле. Двоичный файл - неограниченный массив байтов; основные характеристики двоичных файлов; избыточность в двоичных файлах и защита от ошибок; файл записей фиксированной длины; файл записей переменной длины; параметризованные файлы записей фиксированной длины; связанные записи в файле, файловый указатель; поэлементная загрузка динамических структур данных; массив указателей в файле.