УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
«МЕЖДУНАРОДНЫЙ ГОСУДАРСТВЕННЫЙ ЭКОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ А.Д. САХАРОВА»
Утверждаю
Проректор по учебной работе
МГЭУ им А. Д. Сахарова
____________________ О. И. Родькин
_______________ 200_г.
Регистрационный № УД-_____/р.
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ СИ
Учебная программа для специальности
1-40 01 02 «Информационные системы и
технологии 
(по направлениям)»
Очная и заочная формы обучения
| Факультет: | мониторинга окружающей среды | |
| Кафедра: | экологических информационных систем | |
| Курс (курсы): | 2 | 2 | 
| Семестр (семестры): | 4 | 4 | 
| Лекции (часы): | 16 | 6 | 
| Практические (семинарские) занятия (часы): | – | – | 
| Лабораторные занятия (часы): | 52 | 12 | 
| Всего аудиторных часов по дисциплине: | 68 | 18 | 
| Всего часов по дисциплине: | 114 | 114 | 
| Зачет (семестр): | 4 (диф) | 4 (диф) | 
| Экзамен (семестр): | – | – | 
| Контрольная работа (месяц): | – | январь | 
| Курсовой проект (работа) (семестр): | – | – | 
| Форма получения высшего образования: | очная | Заочная | 
МИНСК 2009
Учебная программа составлена на основе типовой учебной программы по дисциплине «Программирование на языке Си» специальности 1-40 01 02-06 «Информационные системы и технологии (по направлениям), учебных планов специальности очной и заочной форм обучения.
Рассмотрена и рекомендована к утверждению на заседании кафедры экологических информационных систем (протокол № 11 от 21.04 2009).
Заведующий кафедрой
____________________ В. А. Иванюкович
Одобрена и рекомендована к утверждению советом факультета мониторинга окружающей среды (протокол № 11 от 25. 05. 2009).
Председатель
____________________ Н. В. Пушкарев
1. Пояснительная записка
Предметом изучения дисциплины являются основы программирования на алгоритмическом языке Си.
Цель преподавания дисциплины – дать студентам необходимый комплекс знаний и практических навыков в области разработки и применения программных средств, отвечающих современным принципам программирования, на основе алгоритмического языка Си для дальнейшего квалифицированного использования в учебном процессе, научных исследованиях и практической работе.
Задачами изучаемой дисциплины являются:
· освоение базовых программных средств персонального компьютера, средств разработки программных приложений для него, элементов интерфейса среды разработки;
· изучение общей концепции построения типовых программных модулей, выявление возможности повышения эффективности программного обеспечения и его оптимальности при разработке математической модели;
· изучение основных синтаксических конструкций изучаемого языка программирования, базовых типов данных, назначение и синтаксис библиотечных функций;
· изучение конструкций языка, связанных с отладкой программы, вызовом и обработкой исключительных ситуаций
В результате изучения дисциплины обучаемый должен:
знать:
· конструкции языка для создания логичной структуры разрабатываемого приложения;
· развитые средства среды разработки для повышения эффективности при создании различных типов приложений;
· возможности стандартных библиотек для обеспечения интерфейса с операционной системой
уметь:
· использовать возможности структурного программирования для решения прикладных задач;
· использовать развитые средства среды разработки при написании, отладке и тестировании, как отдельных частей, так и конечного программного продукта.
Перечень дисциплин, усвоение которых необходимо для изучения данной дисциплины.
Требуются знания информационных технологий, основ алгоритмизации и программирования.
Изучение дисциплины предусматривает систематическую самостоятельную работу студентов с рекомендуемой литературой, учебно-методическими пособиями, Internet-источниками, а также использование современных программных и технических средств при выполнении лабораторных занятий.
2. Содержание учебного материала
(в скобках указан объем для заочной формы обучения)
| № п / п | Наименование тем | Содержание | Объем часы | 
| 1. | Система программирования на языке Си и ее состав. Обзор компиляторов. Синтаксические основы языка Си | Интегрированная среда разработки; создание и выполнение проекта. Работа с отладчиком. Алфавит языка. Идентификаторы. Ключевые слова. Типы данных. Объявление и инициализация переменных. Константы. Операторы. Структура программы. Заголовочные файлы. Консольный ввод-вывод [1], с. 3 - 16 | 2 (0.5) | 
| 2. | Базовые инструкции языка. Выражения и операции. | Арифметические операции и выражения. Операции присваивания и отношения. Логические операции. Поразрядные операции и операции сдвига. Приоритет операций. Условные операции и операторы. Операторы ветвления, передачи управления. Оператор выбора. Циклические алгоритмы. | 2 (1) | 
| 3. | Организация данных. Массивы и указатели | Указатели: объявление, инициализация, разыменование. Операции с указателями. Объявление, инициализация и работа с одномерными и многомерными массивами. Символьные массивы. Связь указателей и массивов | 2 (1) | 
| 4. | Функции. Основные определения функции. Параметры функции main(). Директивы препроцессора | Принцип нисходящего программирования. Область видимости переменных. Типы функций. Прототип функции и определение функции. Параметры и аргументы функций. Рекурсивные функции. Передача массивов функциям. Указатели на функции. Способы конструирования программ. Директивы препроцессора. Макросы. | 2 (0.5) | 
| 5. | Строки в языке Си | Строковые литералы, строковые переменные, строковые указатели. Нулевые строки. Операции и функции работы со строками. Функции работы с символами | 1(0.5) | 
| Работа с динамической памятью | Функции работы с памятью. Создание одномерного динамического массива. Создание двухмерного динамического массива. Организация доступа к элементам массивов. Использование указателей | 1(0.5) | |
| 6. | Тип данных структуры. Динамические структуры данных. | Организация данных. Объявление и создание структурных переменных. Массивы структур. Размещение структурных переменных в памяти. Доступ к элементам структуры. Задачи поиска и сортировки в массиве структур. Битовые поля. Объединения. Динамическое использование памяти. | 2(1) | 
| 7. | Файлы в языке Си | Текстовые и бинарные файлы. Функции работы с файлами: открытие-закрытие файла, запись-чтение информации. Блоковый ввод-вывод файлов. Позиционирование в файле. | 2(1) | 
| 8. | Нелинейные структуры данных | Основные принципы работы с бинарными деревьями. Алгоритмы обхода дерева. Вставка нового элемента. Удаление узла. | 1 | 
| Понятие хеширования | Хеш-таблица и хеш-функция. Схемы хеширования | 1 | |
| Всего: | 16 (6) | ||
3. Учебно-методическая карта дисциплины
(в скобках указана информация для заочной формы обучения):
| Номер п / п | Название темы и перечень изучаемых вопросов | Количество аудиторных часов | Номер методического средства | Учебно-методические материалы | Номер формы контроля знаний | |||||||||
| Лекции | Практические занятия | Лабораторные занятия | Управляемая самостоятельная работа | |||||||||||
| Семестр 4: | ||||||||||||||
| 1 | Система программирования на языке Си и ее состав. Обзор компиляторов. Синтаксические основы языка. 1. Интегрированная среда разработки; создание и выполнение проекта. Работа с отладчиком. 2. Алфавит языка. Идентификаторы. Ключевые слова. 3. Типы данных. Объявление и инициализация переменных. Константы. 4. Структура программы. Операторы. Заголовочные файлы. Консольный ввод-вывод | 2 (0.5) | 1, 2 (1, 2) | [1,3,4] | 1, 2 (1, 2) | |||||||||
| 2 | Базовые инструкции языка. Выражения и операции: 1. Арифметические операции и выражения. 2. Операции присваивания и отношения. 3. Логические операции. 4. Поразрядные операции и операции сдвига. 5. Приоритет операций. 6. Условные операции и операторы. 7. Операторы ветвления, передачи управления. 8. Оператор выбора. Циклические алгоритмы | 2 (1) | 1, 2 (1, 2) | [1,3,4] | 1, 2 (1, 2) | |||||||||
| 3 | Организация данных. Массивы и указатели: 1. Указатели: объявление, инициализация, разыменование 2. Операции с указателями. 3. Объявление, инициализация и работа с одномерными и многомерными массивами 4. Символьные массивы. 5. Связь указателей и массивов | 2 (1) | 1, 2 (1, 2) | [1,3,4] | 1, 2 (1, 2) | |||||||||
| 4 | Функции. Основные определения функции. Параметры функции main(). 1. Область видимости переменных. 2. Типы функций. Прототип функции и определение функции. Параметры и аргументы функций. 3. Рекурсивные функции. 4. Передача массивов функциям. Указатели на функции. 5. Способы конструирования программ. Директивы препроцессора. Макросы | 2 (0.5) | 1, 2 (1, 2) | [1,3,4] | 1, 2 (1, 2) | |||||||||
| 5 | Строки в языке Си: 1. Строковые литералы, строковые переменные, строковые указатели. Нулевые строки. 2. Операции и функции работы со строками. 3. Функции работы с символами | 1 (0.5) | 1, 2 (1, 2) | [1,3-5] | 1, 2 (1, 2) | |||||||||
| 6 | Работа с динамической памятью: 1. Функции работы с памятью. 2. Создание одномерного динамического массива. Создание двухмерного динамического массива. 3. Организация доступа к элементам массивов. Использование указателей | 1 (0.5 | 1, 2 (1, 2) | [1,3-5] | 1, 2 (1, 2) | |||||||||
| 7 | Тип данных структура. Динамические структуры данных: 1. Организация данных. Объявление и создание структурных переменных. Массивы структур. Размещение структурных переменных в памяти. Доступ к элементам структуры. Задачи поиска и сортировки в массиве структур. 2. Битовые поля. 3. Объединения. 4. Динамическое использование памяти | 2 (1) | 1, 2 (1, 2) | [1,3-5] | 1, 2 (1, 2) | |||||||||
| 8 | Файлы в языке Си: 1. Текстовые и бинарные файлы. Функции работы с файлами: открытие-закрытие файла, запись-чтение информации. 2. Блоковый ввод-вывод файлов. 3. Позиционирование в файле | 2 (1) | 1, 2 (1, 2) | [1,3-5] | 1, 2 (1, 2) | |||||||||
| 9 | Нелинейные структуры данных: 1. Основные принципы работы с бинарными деревьями. 2. Алгоритмы обхода дерева. 3. Вставка нового элемента. Удаление узла | 1 (0) | 1, 2 (–) | [4-6] | 1, 2 (–) | |||||||||
| 10 | Понятие хеширования: 1. Хеш-таблица и хеш-функция. 2. Схемы хеширования | 1 (0) | 1, 2 (–) | [4-6] | 1, 2 (–) | |||||||||
| 11 | Основы работы в интегрированной среде программирования Borland C++: установка, настройка типовой конфигурации, выполнение и отладка, пошаговый режим, просмотр переменных. Освоение правил составление программ на языке Си. Организация линейных вычислительных процессов. Ввод-вывод данных. | 4 (1) | 2 - 4 (2 - 4) | [2] | 4, 5 (4, 5) | |||||||||
| 12 | Операторы ветвления и выбора. Операторы перехода Тернарная операция. | 4 (1) | 2 - 4 (2 - 4) | [2] | 4, 5 (4, 5) | |||||||||
| 13 | Программирование циклических алгоритмов (с предусловием, постусловием, со счетчиком). Вложенные циклы. Операторы продолжения цикла и досрочного выхода из цикла. | 4 (1) | 2 - 4 (2 - 4) | [2] | 4, 5 (4, 5) | |||||||||
| 14 | Работа с одномерными массивами. Строки как одномерные массивы символов. | 4 (1) | 2 - 4 (2 - 4) | [2] | 4, 5 (4, 5) | |||||||||
| 15 | Указатели и операции над адресами: правила обращения к объектам по указателю; связь указателей и массивов. Указатели тапа void*. Массивы указателей | 4 (2) | 2 - 4 (2 - 4) | [2] | 4, 5 (4, 5) | |||||||||
| 16 | Многомерные массивы: объявление, инициализация, размещение в памяти. Динамическое распределение памяти. | 4 (0) | 2 - 4 (–) | [2] | 4, 5 (–) | |||||||||
| 17 | Функции пользователя: составления функций пользователя и организация работы с ними. Организация рекурсии. | 4 (2) | 2 - 4 (2 - 4) | [2] | 4, 5 (5, 6) | |||||||||
| 18 | Использование графического режима в языке Си: функции для подготовки графической системы; функции для установки параметров изображения и получения изображения | 4 (0) | 2 - 4 (–) | [2] | 4, 5 (–) | |||||||||
| 19 | Использование структур: объявление, инициализация, особенности работы. Передача элементов структуры в функцию. | 4 (1) | 2 - 4 (2 - 4 ) | [2] | 4, 5 (5, 6) | |||||||||
| 20 | Файлы в языке Си: типы файлов, функции для работы с файлами | 4 (2) | 2 - 4 (2 - 4) | [2] | 4, 5 (5, 6) | |||||||||
| 21 | Алгоритмы сортировки, особенности реализации и сравнительные характеристики. | 4 (0) | 2 - 4 (–) | [2] | 4, 5 (–) | |||||||||
| 22 | Изучение алгоритмов работы с бинарным деревом: построение, добавление элемента, обход дерева, поиск и удаление элемента | 4(0) | 2 - 4 (–) | [4] | 4, 5 (4, 5) | |||||||||
| 23 | Итоговое занятие. Проведение контрольного тестирования. | 4 (1) | 2 - 4 (2 - 4) | [1-8] | 4 - 7 (4 - 7) | |||||||||
Наименования и виды методических средств:
| № п / п | Наименование | Вид | 
| 1. | NEC 220 | Компьютерная мультимедийная проекционная система | 
| 2. | Microsoft Windows | Операционная система | 
| 3. | Microsoft Novell | Сетевое программное обеспечение | 
| 4. | Интегрированная среда программирования Borland C++ | Система программирования ВС31 | 
Формы контроля знаний:
| № п / п | Форма | 
| 1. | Выборочный контроль на лекциях | 
| 2. | Проверка конспектов лекций студентов | 
| 3. | Проведение контрольных работ на потоке | 
| 4. | Сдача коллоквиума перед проведением лабораторных занятий | 
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.