НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Физико-технический факультет

Кафедра лазерных систем

“УТВЕРЖДАЮ”

Декан ФТФ

“___ ”______________200 г.

РАБОЧАЯ ПРОГРАММА учебной дисциплины

ИНФОРМАТИКА

010700- ФИЗИКА

ФАКУЛЬТЕТ ФИЗИКО – ТЕХНИЧЕСКИЙ

Курс 2 Семестры 3, 4

Лекции 17 час.

Практические занятия 17 час.

Зачет 3,4 сем.

Лаборатор. занятия 68 час.

Контр. работа 3,4 сем.

РГР 3 сем.

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

Всего часов 136

Новосибирск

2006

Рабочая программа составлена на основании Государственного образовательного стандарта высшего профессионального образования по направлению 510400 - физика.

Дата утверждения ГОС «14» апреля 2000 г. Регистрационный № 000 тех/бак

ЕН. Ф.02 - Общие математические и естественнонаучные дисциплины, федеральный компонент

Рабочая программа обсуждена на заседании кафедры Лазерных систем, протокола № 2 от 17 октября 2006 г.

Программу разработал

Ассистент _____________

Заведующий кафедрой

Д. ф.-м. н., профессор ______________

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

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

д. ф.-м. н., профессор ____________

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

Из требований Государственного образовательного стандарта высшего профессионального образования по направлению подготовки бакалавров направления 510400 -"физика":

Требования к обязательному минимуму содержания основной образовательной программы подготовки бакалавра по дисциплине "информатика":

Индекс

Наименование дисциплины и ее основные разделы

Всего часов

ЕН. Ф.02

Информатика

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

136

В соответствии с общими требованиями к профессиональной подготовленности бакалавров по направлению "Техническая физика" и его квалификационной характеристикой бакалавр должен

НЕ нашли? Не то? Что вы ищете?

знать:

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

- типовые программные продукты, ориентированные на решение научных задач технической физики.

владеть:

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

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

- компьютерными методами сбора, обработки и хранения информации;

Приведенные требования ГОС к профессиональной подготовленности бакалавра, а также требования ГОС к обязательному минимуму содержания основной образовательной программы бакалавра по направлению 510400 - "физика" - определяют содержание следующих разделов:

- Принципы построения дисциплины "Информатика".

- Цели учебной дисциплины.

- Содержание и структура курса.

- Учебная деятельность.

2. Особенности (принципы) построения дисциплины

Особенности (принципы) построения дисциплины описываются в табл. 2.

Таблица 2

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

Особенность (принцип)

Содержание

Основание для введения курса

ГОС ВПО подготовки бакалавров по направлению 510400 - " физика" (курс входит в число дисциплин обязательных феделальных компонентов - ЕН. Ф.02 "ИНФОРМАТИКА"

Адресат курса

Студенты физико-технического факультета: направление 010700 -"физика"

Главная цель

ЦЕЛЬ ИЗУЧЕНИЯ ДИСЦИПЛИНЫ обусловлена Государственным образовательным стандартом (ГОС) высшего профессионального образования по специальности 510400 и тенденциями образования и состоит в достижении базового уровня компетентности в области основ приобретения навыков самостоятельного решения задач разработки программного и информационного обеспечения, а также в вопросах их использования и практического применения

Ядро курса

Курс состоит из трех разделов:

- Основы информатики.

- Язык программирования С++.

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

- Введение в объектно-ориентированное программирование.

Требования к начальной подготовке, необходимые для успешного усвоения дисциплины

Дисциплина базируется на материале курсов: «Математика», «Физика» и предназначен для подготовки к изучению курса «Методы математической физики», а также других дисциплин использующих программное и информационное обеспечение.

Объём курса в часах

Учебным планом установлен следующий ПОРЯДОК ИЗУЧЕНИЯ ДИСЦИПЛИНЫ.

·  самостоятельное изучение отдельных разделов и тем с обязательным составлением конспекта (34 часа);

    выполнение и сдача на проверку ведущему курс преподавателю кафедры двух контрольных работ и одной расчетно-графической работы в установленный графиком самостоятельной работы срок; предварительная подготовка (18 часов самостоятельной работы) и выполнение четырнадцати лабораторных работ с оформлением отчётов и их защитой (68 часов аудиторных занятий); прослушивание лекций (17 час); выполнение практических занятий под руководством преподавачасов) сдача зачета.

Описание основных "точек"

Промежуточный контроль знаний – защита лабораторных работ и РГР, итоговый контроль – экзамен.

Обеспечение последующих дисциплин

предназначен для подготовки к изучению последующих предметов: «Электроника», «Устройства и системы управления лазерным излучением», а также других дисциплин использующих программное и информационное обеспечение.

3. Цели учебной дисциплины

Основная задача преподавания дисциплины “Информатика” в первом семестре - выровнять уровень подготовки по программированию и научить “свободно владеть” языком программирования как “средством выражения” алгоритмов применительно к традиционному кругу задач - арифметико-логическим, сортировки и поиска, приближенным вычислений, обработки текста. Методика обучения базируется на том, что студент должен “видеть” за стандартными фрагментами алгоритмов результат выполняемых действий. Для этой цели введен раздел “Основы анализа программ”. Кроме того, используется значительное количество тестов, развивающих навыки “чтения” готовых программ и понимания их “смысла”, а также смысла отдельных фрагментов. В конце курса происходит переход к разработке принципиально более сложных программ, алгоритмов и структур данных. В результате должен быть сформирован уровень знания языка, позволяющий свободно оперировать различными типами данных и переменных произвольной сложности и модульными алгоритмами из обработки.

Таким образом, целями обучения являются:

·  выравнивание уровня подготовки по программированию;

·  получение основных знаний по архитектуре компьютера, алгоритмизации и теории информации;

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

·  получение базового уровня по программированию на языке Си с использованием простых типов данных: базовых типов данных и массивов;

·  приобретение навыков использования базового набора фрагментов алгоритмов в процессе разработки программ, навыков анализа и “чтения” программ;

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

·  знакомство с основными принципами организации хранения и поиска данных, алгоритмами сортировки и поиска, понятием трудоемкости алгоритма.

Предметы изучения

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

Объекты изучения

·  “Классический” Си с базовыми типами данных и массивами;

·  Базовые фрагменты алгоритмов, алгоритмы обработки строк, приближенных (итерационных) вычислений, поиска и сортировки;

·  Типы данных, производные типы данных, контекстное определение типа данных в Си, указатели, структуры, функции, управление памятью в Си.

После изучения дисциплины студент будет

Номер цели

Содержание цели

иметь представление

1

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

2

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

3

- о фазах трансляции и видах ошибок (лексические, синтаксические, семантические, связывания);

4

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

5

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

6

- о процессах распределения памяти в программе, осуществляемых при трансляции и выполнении программы;

7

- о технологии объектно-ориентированное программирование;

знать

8

- основные понятия теории информации;

- формы представления числовой и символьной информации;

9

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

10

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

11

- назначение (“смысл”) переменных в стандартных фрагментах программ, основные принципы анализа программ путем разбиения на стандартные фрагменты;

12

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

13

- алгоритмы последовательного и двоичного поиска, виды сортировок, оценки трудоемкости алгоритмов сортировки и поиска. Определение и свойства типа данных, способ контекстного определения типов данных в Си;

14

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

15

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

16

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

17

- принципы управления памятью программы, заложенные в Си, способы работы с данными переменного формата;

18

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

19

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

20

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

21

- иерархию функций

уметь

22

- анализа существующих и разработки собственных программ с использованием стандартных фрагментов алгоритмов;

23

- подготовки, трансляции и отладки программ в среде Borland C;

24

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

25

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

26

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

27

- решения задач, связанных с приближенными вычислениями, в том числе, с использованием итерационных циклов;

28

- разработки модульных программ, использующих сложные иерархические типы данных и переменные;

29

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

30

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

31

- разработки функций, имеющих формальные параметры и результат различных типов;

32

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

33

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

34

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

35

- создавать классы и объекты;

36

- перегружать функции и операции;

37

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

38

- выполнять Объектно-ориентированная обработка исключений.

4. Содержание и структура учебной дисциплины

3 семестр (17 часов)

Раздел: Основы информатики (1 часа)

1.   Основные положения теории информации. Понятие информации. Единицы измерения, хранения и передачи информации: бит, байт, машинное слово. Формы представления числовой, символьной, графической, звуковой информации.

2.   Понятие алгоритма: алгоритм, предметная область, набор операций, интерпретатор. Формы представления алгоритма - блок схема. Программа как реализация понятия алгоритма в среде обработки данных. Компоненты языка программирования - типы данных и переменных, операции, логика алгоритма, модульная организация программы. Реализация программы на уровне компьютерной архитектуры - процессор, память, команда, данные. Принцип хранимой программы.

Раздел: Язык программирования Си (3 часов).

1.  История развития языков программирования высокого уровня: Фортран, Бейсик, Паскаль, Си, их особенности. Язык Си как средство программирования архитектуры компьютера. Пример простейшей Си-программы вычисления суммы элементов массива. Особенности синтаксиса. Функции, переменные, операции, операторы.

2.  Понятие типа данных и переменной. Определение переменных в Си. Базовые типы данных char, int, long как машинные слова. Особенности типа данных char. Байт, слово, двойное слово. Знаковая и беззнаковая формы представления в Си. Представление символов. Представление чисел с плавающей запятой. Массивы: особенности работы, инициализация.

3.  Преобразование базовых типов данных в выражениях: действия, порядок. Явные и неявное преобразования.

4.  Выражения и операции (обзор и классификация): арифметические, сравнения, логические, машинно-ориентированные, присваивания, адресные, выделения составляющего типа данных. Особенности выполнения операций на Си (совместимость, приоритеты, направление выполнения, действие и результат). Особенности выполнения арифметических операций и операций присваивания. Операция "запятая". Операции сравнения, логические операции

5.  Выражения и операторы. Роль ";" как ограничителя. Классификации управляющей логики программы - последовательность, условие, цикл, переход. Основные операторы Си: if, while, do-while, for, switch, break, continue, return, goto: классификация, особенности синтаксиса и выполнения.

6.  Функции. Формальные и фактические параметры. Способы передачи параметров – по значению и по ссылке. Понятие стека. Результат функции. Локальные и глобальные (автоматические и внешние) переменные. Функция как основа модульного программирования.

7.  Организация выполнения программ в компьютере. Трансляция. Компилятор и интерпретатор. Фазы трансляции: макропроцессор, лексический, синтаксический и семантический анализ, генерация кода. Модульное программирование, объектный модуль, компоновка, библиотеки.

Раздел: Базовые понятия теории и практики программирования (3 часов)

1.  Структура данных как система взаимосвязанных переменных и значений. Последовательность. Стек и очередь. Свойства. Представление стека и очереди в массиве. Использование стека при вызове функции.

2.  Циклические программы. Виды циклов. Итерационный цикл. Рекуррентные последовательности и итерационные циклы. Программа вычисления корня функции. Программа вычисления суммы ряда.

3.  Работа со строками. Представление строки в Си. Строка и массив символов. Функции ввода-вывода. Программы преобразования целого числа из символьной формы в двоичную и обратно. Проектирование программ сортировки слов, форматирования строки и преобразования кодов.

4.  Структура программного интерфейса видеоадаптеров EGA/ VGA/ SVGA. Библиотека графических функций языка Си. Основные графические функции. Программирование видеоадаптера в текстовом и графических режимах.

Раздел: Типы данных. Указачаса).

1.  Указатели. Указатель как элемент архитектуры компьютера. Синтаксис указателя в Си. Указатель - как “степень свободы ” программы. Указатель - формальный параметр и результат функции.

2.  Адресная арифметика. Указатели и массивы. Способы работы через указатель с массивом - индексация и перемещение указателя. Указатели char*, работа со строками через указатели. Примеры.

Раздел: Типы данных. Модульная организация алгоритма и данных (1 часа).

1.  Структура. Определение структуры как типа данных. Структура и массив. Массивы структурированных переменных. Указатель на структуру. Указатель на структуру - формальный параметр и результат функции. Инициализация структурированных переменных. Проектирование сложных программ - иерархия типов данных и функций.

2.  Операции над указателями. Преобразование типов указателей. Указатели и управление памятью. Машинно-зависимые операции над указателями. Использование указателей для работы с данными переменного формата. Функция как тип данных. Спецификация типа результата функции. Определение и объявление функции. Прототип. Функции с переменным количеством параметров.

Раздел: Объектно-ориентированное программирование как технология программирования.

Введение. (Парадигма программирования. Модульное программирование. Абстракция данных. Понятия объекта, класса объектов. Основные понятия объектно-ориентированного программирования: инкапсуляция, наследование и полиморфизм.) (1 часа). (1 час.) Расширение языка С.(Прототипы функций. Перегрузка функций. Значения формальных параметров по умолчанию. Ссылки и параметры ссылки. Объявления переменных. Встраиваемые функции. Операции new и delete.) (1 часа). Классы. (Краткий обзор. Функции-члены и данные-члены. Интерфейсы и реализация. Конструкторы и деструкторы. инициализация и очистка. Конструктор без параметров. Конструктор копирования. Указатель this. Статические члены: функции и данные. Указатели на члены. Структуры и объединения. Константные члены-функции и константные объекты.) (1 час.) Дружественные функции и перегрузка операций. (Функции-друзья. Перегрузка бинарных и унарных операций.. Перегруженные операции индексирования, вызова функций, инкремента и декремента префиксных и постфиксных, разадресации. Перегрузка new и delete. Преобразование типов, определяемых пользователем с помощью конструкторов и операций преобразования. Неявное преобразование типов. Друзья-функции и друзья-классы.). (1 час.) Производные классы. (Наследование классов и производные классы. Конструкторы, деструкторы и наследование. Иерархия классов. Виртуальные функции. Полиморфизм. Абстрактные классы и чистые виртуальные функции. Множественное наследование. Виртуальные базовые классы. Контроль доступа.). (1 час.) Классы потоков. (Заголовочные файлы. Предопределённые объекты и потоки. Операции помещения и извлечения. Форматирование. Флаги форматирования. Манипуляторы. Ошибки потоков. Файловый ввод-вывод с применением потоков С++. Конструкторы файловых потоков. Открытие файлов в разных режимах. Ввод-вывод в файлы. Формирование в памяти.). (1 час.) Параметризованные типы и функции. (Шаблоны функций. Шаблоны классов. Параметры шаблонов. Наследование и шаблоны.). (1 час.) Обработка исключительных ситуаций. (Обработка ошибок в стандартном С. Распознавание ситуаций. Использование set_new_handler(). Объектно-ориентированная обработка исключений. Применение try, catch, throw. Раскрутка стека. Стандартные исключения в С++. Работа с конструкторами и исключениями. Функции terminate(), unexpected().).(1 час.) Библиотека классов на С++. (Библиотека для организации ввода вывода в потоки (iostream, fstream). Библиотека контейнерных классов Classlib в Borland C++. Библиотека шаблонов контейнеров в Borland C++.). (1 час.)

Лабораторные занятия, их содержание, объем в часах

3 семестр (34 часа)

1.  Функции. Передача параметров. Модульное проектирование программ решения численных задач. (4 часа).

2.  Итерационные циклы. Вычисления суммы ряда и произведений. Схема Горнера (4 часа).

3.  Структуры, объединения, перечисления, битовые поля. Инициализация на этапе компиляции и во время работы программы. Организация списков и древообразных структур. Рекурсивные структуры (4 часа).

4.  Сортировка и поиск. Метод пузырька. Метод Шелла. Графическая визуализация методов (4 часа).

5.  Структуры, объединения, перечисления, битовые поля, массивы структур и указачаса).

6.  Работа с файлами символьного и двоичного типа. Считывание переменных, структур из файла, сохранение данных в файле. Межзадачный обмен данными (4 часа).

7.  Динамическое распределение памяти. Основные операции динамического управления памятью. (4 часа).

8.  Структуры, организация списков и древообразных структур. Рекурсивные структуры (4 часа).

4 семестр (34 часа)

9.  Работа с проектами в среде Borland C. (Изучить среду программирования, освоить навыки работы с проектами. Восстановить навыки работы со структурами, освоить приемы использования функций-членов структур). (4 часа).

10.  Использование классов в С++. (Изучить способы инкапсуляции данных, особенности различных типов конструкторов, деструкторы. Освоить операции new и delete для работы с динамической памятью.) (8 часа).

11.  Переопределение операций. (Освоить приемы написания переопределенных операций - членов и друзей класса, оперирующих объектами класса и переменными базовых типов данных.) (8 часа).

12.  Производные классы. (Освоить приемы построения производных классов, создания и применения виртуальных функций). (4 часа).

13.  Шаблоны классов. (Освоить приемы создания шаблонов классов и их применение). (4 часа).

14.  Ввод-вывод в потоки. (Освоить применение операций ввода-вывода в потоки, перегрузку операций ввода-вывода, применение статических функций-членов класса). (4 часа).

15.  Обработка исключительных ситуаций на С++ . (Освоить приемы обработки исключений при возникновении математических ошибок и ошибок недостатка памяти, прерываний операционной системы. )(4 часа).

5.  Учебная деятельность

Внеаудиторная работа студентов по дисциплине заключается в:

    самостоятельном изучении материала теоретических знаний; выполнении расчетно-графических заданий (РГЗ); выполнении контрольной работы подготовке к лабораторным работам; подготовке к защитам лабораторных работ и РГЗ;

Контрольная работа 3,4 семестр

Анализ эффективности алгоритмов. Студентами производится анализ эффективности программ, разработанных на лабораторных занятиях. Даются рекомендации по совершенствованию алгоритмов.

Тематика работ:

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

Контрольная работа №2. Анализ и оптимизация вычислительных алгоритмов.

Расчетно-графическое задание (РГЗ)

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

Тематика работ:

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

На выполнение каждого расчетно-графического задания отводится четыре недели. Работа выполняется на сброшюрованных листах белой бумаги формата А4 и сдается на проверку преподавателю.

Лабораторные работы

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

6. Правила аттестации студентов по учебной дисциплине

Проверка степени усвоения и глубины полученных знаний после прослушивания курса лекций 3 и 4 семестрох проводится во время зачета. В билете для зачета четыре теоретических вопроса и одна практическая задача.

Допуском к зачету является выполнение и сдача расчетно-графической работу в 3 семестре, выполнение и защита лабораторных работ. Зачет проводится в письменной форме. Зачет получают все студенты ответившие полностью на все вопроса, а также частично на теоретические и выполнившие практическую задачу. Студенты не ответившие на один вопрос получают дополнительный вопрос. Отсутствие полного ответа на него приводит к незачету, и повторной сдачи зачета.

Описание правил аттестации студентов размещается в табл. 7.

Таблица 7

Учебная

деятельность

Срок

сдачи, защиты

Минимальный балл

Максимальный балл

Комментарий

Зачет

конец 3, 4 семестра

не зачет

зачет


7. Список литературы

Основной список

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

2.  ., П. Дж. Дейтел. Как программировать на Си++. М.:, 1999, 1000 с. (первые 600 страниц - изложение обычного Си, наиболее полно соответствует структуре курса для 1-2 семестра).

3.  У. Топп, У. Форд. Структуры данных в Си++. М.:, 1999, 800 с. (наиболее полно соответствует структуре курса для 3-4 семестра).

4.  . Основы практического программирования на языке Си. М.: Издательство ПРИОР, 1999, 464 с..

5.  Романов E. Л. Информатика. Основы анализа и проектирования программ. Конспект лекций и методические указания к лабораторным работам по дисциплине "Информатика". - Новосибирск, Изд-во НГТУ, 1999, -80 с. (“методичка” для 1-го семестра, библиотека НГТУ - 73Р693)

6.  Романов E. Л. Язык Си. Типы данных и управление памятью. Конспект лекций. Тестовые вопросы и задания к лабораторным работам. - Новосибирск, Изд-во НГТУ, 2000, -62 с. (“методичка” для 1,2-го семестра, библиотека НГТУ – 51Р693)

7.  Романов E. Л. Язык Си. Структуры данных. Тестовые вопросы и задания к лабораторным работам. - Новосибирск, Изд-во НГТУ, 2001, -80 с. (“методичка” для 2,3-го семестра, библиотека НГТУ - Р693)

8.  Подбельский Си++: Учеб. пособие. - М.:Финансы и статистика, 1995. -560 с.:ил.

Дополнительный список

1.  Язык программирования Си. Задачи по языку Си: Пер. с англ. - М.: Финансы и статистика, 1985. (“Библия”-изложение классического Си авторами) (Библиотека НГТУ - 51К362)

2.  Программирование на языке Си для персонального компьютера IBM PC: Пер. с англ. - М.: Радио и связь, 1991, - 432 с., ил. (неплохая, хотя и не очень актуальная книжка, библиотека НГТУ - 51Т106)

3.  Касаткин программирование на языке Си. Управление ресурсами: Справ. пособие. - Мн.: Выш. шк., 1992, - 432 с., ил. (машинно-зависимое программирование на Си под DOS) (Библиотека НГТУ - 681К28)

4.  Касаткин программирование на языке Си. Системное программирование. - Мн.: Выш. шк., 1993, - 301 с., ил. (машинно-зависимое программирование на Си под DOS) (Библиотека НГТУ - 681К28)

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

6.  Искусство программирования для ЭВМ. т.3. Сортировка и поиск: Пер. с англ., - М.: Мир, 1978, 845 с., ил.

7.  Романов E. Л. Язык Си и введение в системное программирование в MS DOS: Методические указания к лабораторным работам по дисциплине "Программирование". - Новосибирск, Изд-во НГТУ, 1993, -64 с. (устаревшая “методичка” для 3-го семестра, библиотека НГТУ - n 963)

8.  Романов E. Л. Организация файлов данных. Методические указания к лабораторным работам по дисциплине "Информатика". - Новосибирск, Изд-во НГТУ, 1995, -32 с. (“методичка” для 3-го семестра, библиотека НГТУ - n 1178).

9.  Романов программирования на Си: Методические указания к лабораторным работам по дисциплине "Информатика". - Новосибирск, Изд-во НГТУ, 1995 г. - 54 с. (устаревшая “методичка” для 1-го семестра) (Библиотека НГТУ - n 1160).

10.  Романов программирования Си и организация данных: Конспект лекций. - Новосибирск: Изд-во НГТУ, 1996. -100 с. (“методичка” для 3-го семестра).

11.  Энциклопедия языка Си. М.: Мир, 1992.

12.  Язык программирования Си (Справочник). (Библиотека НГТУ - 51Б795).

13.  Программирование на языке Си. (Библиотека НГТУ - 51Д409).

14.  Программируем на Си. 1994. (Библиотека НГТУ - 51Д424).

15.  Котлинская на языке Си. (Библиотека НГТУ - 51К734).

16.  Техника программирования на Turbo Си. (Библиотека НГТУ - 51Т381).

17.  Язык Си. Книга ответов. (Библиотека НГТУ - 51Т57).

18.  Язык Turbo Си. (Библиотека НГТУ - 51У931).

19.  Язык Си. Руководство для начинающих. (Библиотека НГТУ - 51У977).

20.  Введение в программирование на языке Си. (Библиотека НГТУ - 51Х993)

21.  Справочное руководство по языку программирования Си++ с комментариями. - М.:Мир,1992.

22.  Липпман. Си++ для начинающих (в 2 томах). М.: ГЕЛИОН, 1993.

23.  Программирование на Си++. Киев, НИПФ, Диасофт, 1993.

24.  Романов на языке Си++: Практический подход. - М.: Компьютер, 1993, -160 с., ил.

25.  От Си к Си++. М.:Издательство "ЭДЭЛЬ",1993.-128 с.

26.  Просто и ясно о Borland C++: Пер. с англ. -M.:Бином. -416 с.: илл.

9.  Контролирующие материалы для аттестации студентов по дисциплине

3 семестр

Пример билета на зачет

1.  Какие из приведенных описаний операторов являются неправильными и почему?

    unsigned K=-2.5 Integer Len Complex a=5 D[10:10] Register float B
Операции *B**C***D, &(A+B) их смысл? Составьте алгоритм программы вычисления интеграла. Перечислите основные форматы ввода-вывода в Си Написать программу расчета

4 семестр

1. Расширения языка С++. Перегрузка функций. Значение формальных параметров по умолчанию. Ссылки как новый тип данных. Операторы new и delete.

2. Классы. Члены классов: функции и данные. Конструкторы: без параметров, копирования и с параметрами. Модификаторы доступа: public, protected и private. Модификаторы const и static; функции и данные с этими модификаторами.

3. Перегрузка операторов. Понятие перегрузки операторов и операторы, которые могут быть перегружены. Унарные и бинарные операторы. Понятие логической перегрузки. Перегрузка префиксной и постфиксной формы операторов ++ и --.

4. Наследование. Понятие наследования. Типы наследования. Множественное наследование. Перегрузка функций и понятие виртуальных функций. Абстрактные классы.

5. Шаблоны (Templates). Шаблоны функций. Шаблоны классов. Наследование параметризованных класов.

6. Потоки в С++. Понятие потоков. Типы потоков. Перегрузка операций потокового воода и вывода.

7. Обработка ошибок. Типа бработок ошибок. Понятие исключения. Использование исключений. Обозначение функций потенциально могущих вызвать исключение. Try...Throw...Catch.