Особенности построения дисциплины




РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ

«Программирование»

 

Специальность 230101 «Вычислительные машины, комплексы, системы и сети»

 

Отделение заочное

 

АВТФ

 

Курс 3, семестр 5

 

Лекции 12 часов

 

Лабораторные занятия 12 часов

 

Контрольная работа 5 сем.

 

Зачет 5 сем.

 

Самостоятельная работа 90 часов

 

Всего часов 114 часов

 

Новосибирск


Рабочая программа составлена на основании государственного образовательного стандарта (ГОС) высшего профессионального образования по специальности 230101 «Вычислительные машины, комплексы, системы и сети» (квалификация – инженер), утвержденного 27.03.2000 г. № 224.

 

Дисциплина соответствует в ГОС дисциплине «Программирование на языке высокого уровня» блока «Общепрофессиональных дисциплин» федерального компонента. Шифр в ГОС - ОПД.Ф.05.

 

 

Рабочая программа обсуждена на заседании кафедры вычислительной техники. Протокол № 7 от 31 августа 2005 г.

 

 

Программу разработала: ст.преп. каф. ВТ Юн С.Г.

 

Заведующий кафедрой ВТ: проф.,д.т.н., проф. Губарев В.В.

 

 

Ответственный за основную

образовательную программу:

 


Внешние требования

Ниже приведены выдержки из первого раздела ГОС «Общая характеристика направления подготовки дипломированного специалиста “:

«… Объектами профессиональной деятельности инженеров по направлению подготовки дипломированного специалиста “Информатика и вычислительная техника” являются:

- вычислительные машины, комплексы, системы и сети;

- автоматизированные системы обработки информации и управления;

- системы автоматизированного проектирования;

- программное обеспечение средств вычислительной техники и автоматизированных систем (программы, программные комплексы и системы);

- математическое, информационное, техническое, эргономическое, организационное и правовое обеспечение перечисленных систем.

Инженер по направлению подготовки “Информатика и вычислительная техника” может в соответствии с фундаментальной и специальной подготовкой выполнять следующие виды профессиональной деятельности:

- проектно-конструкторская;

- производственно-технологическая;

- научно-исследовательская;

- организационно-управленческая;

- эксплуатационная….»

В соответствии с седьмым разделом ГОС инженер по специальности " Вычислительные машины, комплексы, системы и сети " «…

должен знать:

- принципы организации и функционирования аппаратных и программных средств ВТ, включая ЭВМ, комплексы, системы и сети различного назначения;

- методы, технологии и инструментальные средства, применяемые на всех этапах разработки аппаратно-программных комплексов;

- методы расчета и конструирования основных подсистем, входящих в состав современных средств вычислительной техники;

- прогрессивные методы использования средств вычислительной техники для решения задач науки и практики;

- основные направления научно-технического развития аппаратных и программных средств ВТ;

должен владеть:

- методами проектирования аппаратных и программных средств;

- методами, языками и технологиями разработки аппаратно-программных комплексов;

- методами разработки и анализа алгоритмов, моделей, архитектур и структур аппаратно-программных комплексов;

- методами и средствами анализа, описания и проектирования человеко-машинного взаимодействия, инструментальными средствами разработки пользовательского интерфейса;

- методами и средствами тестирования, отладки и испытаний аппаратно-программных комплексов;…»

 

Предусмотренное стандартом содержание дисциплины “Программирование на языке высокого уровня” частично излагается ранее в 4 семестре в рамках дисциплины “Информатика” (выделено курсивом). Поэтому в 5 семестре возможно углубленное изучение языка Си.

 

ОПД.Ф.05 Программирование на языке высокого уровня:  
  основные этапы решения задач на ЭВМ; критерии качества программы; жизненный цикл программы; постановка задачи и спецификация программы; способы записи алгоритма; программа на языке высокого уровня; стандартные типы данных; представление основных управляющих структур программирования; теорема структуры и структурное программирование; анализ программ;утверждения о программах; корректность программ; правила вывода для основных структур программирования; инвариантные утверждения; процедуры и функции; массивы; утверждения о массивах; записи; файлы;индуктивные функции на последовательностях (файлах, массивах); динамические структуры данных; линейные списки: основные виды и способы реализации; линейный список как абстрактный тип данных; модульные программы; рекурсивные определения и алгоритмы; программирование рекурсивных алгоритмов; способы конструирования и верификации программ.    

Особенности построения дисциплины

· Курс относится к блоку общепрофессиональных дисциплин федерального компонента.

· Курс адресован студентам заочного отделения третьего курса, АВТФ НГТУ, обучающимся на специальности 230101 «Вычислительные машины, комплексы, системы и сети».

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

· Данный курс базируется на курсе «Концептуальные основы информатики».

· Объем курса в часах – 24, из них: лекции – 12 ч., лабораторные занятия – 12ч.

· Курс предусматривает ознакомление с инструментальной средой разработки программ Visual C++.

· В 5 семестре итоговый контроль по курсу – зачет. Зачет получается по результатам выполнения контрольной работы и лабораторных занятий.


Цели курса

Номер цели Содержание цели
Студент должен иметь представление о:
  технологии проектирования сложных модульных программ,
  процессах распределения памяти в программе,
  многообразии структур данных и их использовании
  основных компонентах баз данных и их организации,
Студент должен знать:
  операции побитовой обработки машинного слова
  способы объявления и программирования структурированных переменных и массивов структур
  указатели и правила адресной арифметики,
  правила и функции динамического распределения памяти программы,
  программирование обработки динамических переменных и массивов,
  особенности рекурсивных функций и правил их программирования,
  программирование структур данных на базе массива – стека, очереди, списков, списка, дерева
  программирование динамических структур данных – таблиц массивов, стека, очереди, связных списков, двоичных деревьев, иерархических структур
  критерии качества программ, способы верификации программ
Студент должен уметь:
  разрабатывать в среде компилятора модульные программы с использованием проекта
  выбирать различные модели управления памятью программы в среде компилятора,
  управлять выполнением программы с помощью меню программы
  использовать динамическую память программы для организации динамических массивов и структур,
     

 


Структура курса


(цели
5. Содержание курса

 

Лекционные занятия

Ссылки на цели курса Часы   Темы лекционных занятий
  0,5 Критерии качества программы. Утверждения о программах, корректность программ, инвариантные утверждения. Способы конструирования и верификации программ.
    Битовая структура переменной. Понятие битового поля и маски. Использование битовой структуры переменной для фиксации элементов множеств, событий и состояний, управления внешними устройствами. Использование восьмеричной и шестнадцатеричной систем счисления для установки битовых полей и масок. Машинно - ориентированные операции и битовая арифметика: логические операции И, ИЛИ, НЕ, исключающее ИЛИ. Программирование машинной обработки битовых полей, маскирования битов, упаковки данных.
  1,5 Адресный указатель и его смысл. Объявление указателя в программе. Тип указателя. Жизненный цикл указателя: объявление, связывание, косвенная выборка значения. Указатель, как формальный параметр и результат функции. Явное и неявное преобразование типа значения через указатель. Адресная арифметика. Указатели и массивы. Программирование типовых приемов обработки одномерного массива через указатель. Программирование типовых приемов обработки строки текста через указатель. Массив указателей. Представление двумерного массива с помощью массива указателей. Программирование типовых приемов обработки двумерного массива, представленного в виде массива указателей.
6, 7 0,5 Структура и объединение, как пользовательский тип данных. Сходство и различие структуры и объединения. Поле структуры, объединения. Программирование работы с отдельным полем структуры, объединения. Одномерный массив структур. Правила доступа к полям структур в массиве. Программирование типовых операций обработки одномерного массива структур. Указатель на структуру. Программирование доступа к отдельным полям структуры через указатель. Программирование типовых приемов обработки одномерного массива структур через указатель на массив.
2, 8, 9, 14   Структура памяти программы. Модели организации памяти программы Tyni, Small, Medium, Large, Huge. Близкий, дальний и нормализованный указатели и их связь с моделями памяти. Динамическая память программы. Функции управления динамической памятью программы. Динамический одномерный массив. Строка – как динамический одномерный массив. Динамический двумерный массив и программирование его создания. Уничтожение динамических переменных и массивов. Надежные массивы и их программная реализация.
    Рекурсия. Определение рекурсии. Рекурсивные структуры данных, функции. Особенности проектирования рекурсии. Динамика рекурсии, рекурсивный спуск и возврат. Дно рекурсии. Передача параметров и результата между рекурсивными вызовами. Программирование рекурсивных алгоритмов задач поиска, движения по лабиринту, расстановки фигур.
3, 4, 16 0,5 Понятие структуры данных. Элемент, как алгоритмическая компонента структуры данных. Статические и динамические структуры данных Неупорядоченные структуры данных, доступ к элементам по логическому номеру. Упорядоченные структуры данных, доступ к элементу по ключевому значению. Классификация структур данных: стек, очередь, списки, деревья, иерархические таблицы, иерархические структуры. Основные операции структур данных: поиск, вставка нового элемента, удаление элемента.
3, 11, 16   Статические структуры для хранения и поиска данных. Представление стека, очереди, списка, двоичного дерева поиска на базе массива. Программирование основных операций для стека на базе массива. Программирование основных операций для циклической очереди на базе массива. Программирование основных операций для неупорядоченного списка на базе массива. Программирование основных операций для упорядоченного списка на базе Программирование основных операций для дерева поиска на базе массива.
3, 12, 16   Динамические связные списки. Элемент списка и его рекурсивная структура. Роль адресного указателя в организации динамического связного списка. Заголовок, текущий элемент списка. Структура динамического односвязного, двухсвязного списка. Программирование итерационного и рекурсивного алгоритмов поиска элемента с заданным значением в связном списке. Односвязный упорядоченный список. Программирование итерационного и рекурсивного алгоритмов вставки и удаления элемента по значению из односвязного упорядоченного списка. Проблема концов списка при программировании операций. Программирование итерационного и рекурсивного алгоритмов вставки и удаления элемента с заданным номером из двухсвязного списка. Проблема концов списка при программировании операций. Организация стека и очереди на базе односвязного списка, программирование основных операций.
3, 12, 16   Динамические связные деревья, как рекурсивные структуры данных. Элемент дерева (узел) и его рекурсивная структура. Двоичное (бинарное) дерево поиска, как упорядоченная структура данных. Роль ключевого значения данных в двоичном дереве поиска. Программирование рекурсивных и итерационных алгоритмов поиска, вставки и удаления значения по ключу в двоичном дереве поиска. Программирование рекурсивных операций обхода элементов двоичного дерева в прямом, обратном и поперечном порядке.
3, 12, 16   Иерархические динамические структуры данных: списки списков, деревья деревьев, комбинированные структуры. Иерархическая динамическая таблица данных, как многоуровневый массив указателей. Представление таблицы текста в виде трехуровневого массива указателей на строки.

 

Лабораторные занятия.

В течение сессии в очном порядке выполняются три лабораторных работы. Целью лабораторных работ является закрепление и контроль полученных в течение семестра знаний и навыков по программированию, освоение новых приемов программирования и техники создания сложных программ.

Лабораторные работы посвящены разработке комплексной многомодульной программы текстового редактора.

Основные требования к реализации редактора:

Работа редактора основана на представлении текста в памяти программы в виде иерархической таблицы динамических страниц, содержащих по 25 динамических строк текста.

Редактор управляется с помощью меню функций:

- загрузка текста из файла в окно,

- сохранение текста из окна в файл,

- переход на следующую страницу текста,

- переход на предыдущую страницу текста,

- выполнение функции редактирования по варианту.

Редактор разрабатывается как многомодульная программа с использованием технологии проекта.

Ссылки на цели курса Часы Темы лабораторных занятий
1, 13, 15   Программирование главного меню текстового редактора
1,3, 4, 12   Разработка основных функций текстового редактора
1, 13,17   Создание и комплексная отладка многомодульной программы текстового редактора.

 

Самостоятельная работа

Часы (всего 90) Самостоятельная работа
  Изучение теоретического материала
  Выполнение контрольной работы
  Подготовка к лабораторным занятиям

Контрольная работа.

 

Цель контрольной работы: приобретение и закрепление теоретических знаний и практических навыков в разработке алгоритмов и программ на уровне прикладного и системного программирования.

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

- машинно-ориентированное программирование,

- рекурсивные алгоритмы,

- массивы указателей,

- динамический связный список,

- двоичное дерево поиска

Отчет по контрольной работе для задач 1-5 должен содержать описание алгоритма решения задачи, текст программы с комментариями, результаты тестирования программы на ЭВМ. Работа программ должна быть продемонстрирована преподавателю.

 

ЛИТЕРАтура

 

1. Юн С.Г. https://ce.cs.nstu.ru/index.php?id=YunS_page – домашняя страница Юн С.Г. с материалами к курсу.

2. Романов Е.Л. Язык Си++ в задачах, вопросах и ответах. – Новосибирск: Издательство НГТУ, 2003, 428 с.;

3. Романов Е.Л. Практикум по программированию на Си++: - BHV-Санкт-Петербург, 2004, 432 c.,

4. Романов E.Л. https://ermak.cs.nstu.ru/cprog - электронный учебник по дисциплине «Информатика».

5. Вирт Н. Алгоритмы и структуры данных: Пер. с англ. - М.: Мир, 1989, - 360 с., ил.

6. Топп У., Форд У.. Структуры данных в Си++. М.:ЗАО БИНОМ, 1999, 800 с.

7. Подбельский В.В., Фомин С.С. Программирование на языке Си. М.:ФиС, 1999, 600 с. (рекомендуемый учебник по направлению «Информатика и ВТ»).

8. Дейтел Х.М., Дейтел П.Дж. Как программировать на Си++. М.:ЗАО БИНОМ, 1999, 1000 с.




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-21 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: