МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФАКУЛЬТЕТ ИНФОРМАТИКИ УТВЕРЖДАЮ Декан факультета С.П. Сущенко « » ____________ Рабочая программа дисциплины ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ 1 Направление подготовки 230700 Прикладная информатика Квалификация выпускника Бакалавр Форма обучения Очная Томск 2010 2010 г. 1. Цели освоения дисциплины – обучение началам профессионального программирования. 2. Место дисциплины в структуре ООП бакалавриата Дисциплина входит в естественно-научный цикл, базовую часть. Дисциплины-предшественники. Для изучения курса требуется знание математики и информатики в объеме программы общеобразовательной средней школы. 3. Компетенции обучающегося, формируемые в результате освоения дисциплины В результате освоения дисциплины обучающийся должен: Знать: язык программирования Паскаль, основные базовые алгоритмы на этих языках, методы доказательства правильности и исследования трудоемкости программ, методы тестирования программ. Уметь: разрабатывать программы умеренной сложности, их тестировать, проводить исследование трудоемкости, доказывать правильность программ. Владеть: способами написания программ умеренной сложности, методами исследования трудоемкости программ, методами доказательства правильности, методами тестирования программ. Знания и умения соответствуют следующим общекультурным и профессиональным компетенциям ООП ВПО: - способность использовать, обобщать и анализировать информацию, ставить цели и находить пути их достижения в условиях формирования и развития информационного общества (ОК-1); - способность использовать основные законы естественнонаучных дисциплин в профессиональной деятельности и эксплуатировать современное электронное оборудование и информационно-коммуникационные технологии в соответствии с целями образовательной программы бакалавра (ПК-3); - способность ставить и решать прикладные задачи с использованием современных информационно-коммуникационных технологий (ПК-4); - способность моделировать и проектировать структуры данных и знаний, прикладные и информационные процессы (ПК-9); - способность применять к решению прикладных задач базовые алгоритмы обработки информации, выполнять оценку сложности алгоритмов, программировать и тестировать программы (ПК-10); - способность применять методы анализа прикладной области на концептуальном, логическом, математическом и алгоритмическом уровнях (ПК-17); - способность применять системный подход и математические методы в формализации решения прикладных задач (ПК-21); 4. Структура и содержание дисциплины «информатика и программирование 1» Общая трудоемкость дисциплины составляет 6 зачетных единиц, 216 часов, реализуется на протяжении 3-х семестров. Параллельно с дисциплиной «информатика и программирование 1» проводится учебная практика по программированию. Содержание дисциплины ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ 1 1. Программирование на языке Паскаль Трансляция и выполнение программы на языке Паскаль. Арифметические и символьные переменные, константы в Паскале, операции над ними, присваивание значений. Стандартные средства ввода и вывода. Логические значения, переменные, операции над ними. Условные и выбирающие операторы, циклы с параметром и с условием. Массивы. Описание типа в Паскале. Процедуры и функции, их вызов и описание. Подстановка параметров по значению, по ссылке. Символьные переменные, строки, операции над ними. Структуры (записи), действия над ними. Управление процессом трансляции, использование стандартных библиотек. Стандартные математические функции, датчик случайных чисел. 2. Тестирование и отладка программ Технологический процесс разработки программы. Задачи тестирования. Создание тестов. Пошаговая отладка. Исчерпывающее тестирование и его ограничения. Принцип черного ящика. Тестирование методом белого ящика. Тестирование по частям. Генерация тестов большой размерности. 3. Доказательство правильности программ Вход и выход алгоритма. Пред- и постусловие алгоритма. Доказательство завершимости алгоритма. Методы доказательства правильности: последовательный просмотр, перебор вариантов, математическая индукция. Использование абстракции при доказательстве вложенных алгоритмов. Доказательство сверху-вниз и снизу-вверх. Доказательство рекурсивных алгоритмов. Использование пред- и постусловия при тестировании. 4. Основные алгоритмы и их трудоемкость Трудоемкость алгоритмов. Вычисление рекуррентных последовательностей, сумм, произведений. Вычисление полинома по схеме Горнера. Поиск корня функции методом дихотомии. Минимальные и максимальные элементы в массиве. Простые алгоритмы упорядочения элементов в массиве. Косвенная упорядоченность. Упорядочение массивов строк. Поиск элементов в массиве. Дихотомический алгоритм поиска, его трудоемкость. Алгоритм слияния упорядоченных массивов. 5. Рекурсивные алгоритмы Простые рекурсивные функции. Локальные и глобальные переменные. Выполнение рекурсивного алгоритма с помощью стека. Глубина рекурсии. Трудоемкость рекурсивных алгоритмов. Рекурсивный алгоритм генерации перестановок чисел, его трудоемкость. Рекурсивный алгоритм сортировки слиянием, его трудоемкость и глубина рекурсии. Алгоритм “Ханойские башни”. 6. Файлы в Паскале. Взаимодействие с операционной системой Файлы в операционной системе. Файловая система, действия над файлами. Стандартные файлы ввода и вывода в Паскале. Переназначение стандартных файлов. Текстовые файлы, их описание, открытие, ввод и вывод, закрытие. Двоичные файлы. Прямой доступ к двоичным файлам. Стандартные процедуры и функции для работы с файлами и файловой системой. Выполняемая программа с параметрами. Обработка параметров. Программа из модулей, трансляция программы по частям. 7. Диалоговые программы и графический вывод Интерактивные средства создания оконных приложений. Библиотека процедур и функций для работы в оконных приложениях. Вывод и ввод текста, числовых данных в окнах. Цвет на экране. Задание цвета символов и цвета фона. Графическая библиотека процедур и функций в Паскале. Графическое разрешение, цвет. Рисование отрезков, закрашивание фигур. Задание цвета, типа линии. Рисование графиков. 8. Указатели и распределение памяти Тип указатель. Указатель на массив. Операторы выделения и аннулирования памяти. Работа с динамическими массивами. Списочные структуры. Выделение и удаление элементов списка. Моделирование списков с помощью массивов. Реализация стека и очереди с помощью списка, с помощью массива. Поиск элементов в списке. Алгоритм слияния упорядоченных списков. Простейший алгоритм упорядочения списка. Рекурсивный алгоритм сортировки списков методом слияния. Распределение часов дисциплины по темам и видам работ № п/п 1 2 3 4 5 6 7 8 Раздел дисциплины Программирование на языке Паскаль Тестирование и отладка программ Доказательство правильности программ Основные алгоритмы и их трудоемкость Рекурсивные алгоритмы Файлы в Паскале. Взаимодействие с операционной системой Диалоговые программы и графический вывод Указатели и распределение памяти ИТОГО: Аудиторные занятия (час), в том числе Всего лаборачасов лекци семиторные и нары занятия СамосФормы текущего тоятеконтроля льная успеваемости работа 4 2 2 4 2 2 8 4 4 Письменный контроль по теории 16 8 8 Письменный контроль по теории. 16 8 8 Письменный контроль по теории. 4 2 2 4 2 2 8 4 4 Письменный контроль по теории. 72 32 32 Итоговый письменный контроль 5. Образовательные технологии Лекции проводятся в сопровождении иллюстративного материала в форме презентаций. Самостоятельная работа проводится в компьютерном классе, оснащенном соответствующим программным обеспечением. 6. Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины Виды самостоятельной работы студентов: повторение лекционного материала; написание и исследование программ. Контроль самостоятельной работы студентов. Текущий контроль – не менее 4-х раз в течение семестра в виде письменного ответа на теоретические вопросы по содержанию дисциплины. Промежуточная аттестация по итогам освоения дисциплины – итоговый письменный экзамен по теоретическим вопросам и решению задач в виде составления и исследования программ. 7. Учебно-методическое и информационное обеспечение дисциплины а) основная литература: 1. Костюк Ю. Л. Основы программирования. Разработка и анализ алгоритмов: Учебное пособие. – Томск: Изд-во Томского ун-та, 2006. б) дополнительная литература: 1. Microsoft Software Developer Network Library – July 2005. 2. Вирт Н. Алгоритмы + структуры данных = программы. – М.: Мир, 1985. 3. Вирт Н. Систематическое программирование. – М.: Мир, 1975. 4. Дейкстра Э. Дисциплина программирования. – М.: Мир, 1978, 275 c. 5. Епанешников А. М., Епанешников В. А. Программирование в среде Turbo Pascal 7.0. – 3-е изд., стер. – М.: ДИАЛОГ-МИФИ, 1995. в) программное обеспечение и Интернет-ресурсы: 1. Транслятор с языка Паскаль в операционной системе Windows или Linux. 2. Программа для проведения презентаций – Power Point или аналогичная. 3. Интернет-браузер – Microsoft Explorer или аналогичный. 8. Материально-техническое обеспечение дисциплины Лекционная аудитория должна быть оборудована проекционным оборудованием: компьютером и проектором, а также программными средствами для их функционирования. Компьютерный класс, компьютеры должны быть объединены в локальную сеть с выходом в Интернет. Программа составлена в соответствии с требованиями ФГОС ВПО с учетом рекомендаций и ООП ВПО по направлению подготовки 230700 Прикладная информатика. Авторы – профессор Ю.Л. Костюк. Рецензент – доцент А.Л. Фукс. Программа одобрена на заседании кафедры теоретических основ информатики факультета информатики от « » __________ 2010 года, протокол № ________ .