Преподаватели: Костин А. Н., старший преподаватель кафедры тидм




Скачать 120.62 Kb.
НазваниеПреподаватели: Костин А. Н., старший преподаватель кафедры тидм
Дата26.11.2012
Размер120.62 Kb.
ТипРеферат


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

Преподаватели: Костин А. Н., старший преподаватель кафедры ТИДМ;

Гуськова О. И., доцент кафедры ТИДМ;

Косткин Р. С., старший преподаватель кафедры ТИДМ, к.ф.м.н.


Структура и содержание дисциплины «Программирование»


Общая трудоемкость дисциплины составляет 7 зачетных единиц 252 часа, из них аудиторных 144 часов, самостоятельной работы — 108 часов.

Структура дисциплины

п/п

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


Се­местр

Виды учебной работы (в академических часах)

Лекции

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

Язык программирования Java (72)

1

Введение

1

6

2

2

Типы данных, литералы, перменные

4

4

3

Операции и библиотечные методы и классы

4

6

4

Ветвления и циклы (основные алгоритмические конструкции)

4

6

5

Массивы и структуры данных

6

6

6

Статические методы

4

4

7

Основы ООП

8

8

Язык программирования C++ (72)

8

Введение

2

4

2

9

Типы данных и операции над ними

6

2

10

Ветвления и циклы (основные алгоритмические конструкции)

4

6

11

Массивы и структуры данных

6

6

12

Указатели, работа с памятью, функции

8

10

13

ООП

8

10

Всего

72

72


Содержание дисциплины


п/п

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


Содержание основных тем (дидактические единицы)

Язык программирования Java

1

Введение

Особенности языка и платформы Java. Классификация программ по типу исполнения (компилируемые, интерпретируемые, исполняемые на виртуальных машинах). Виртуальная машина Java. JIT-компиляция. Создание простейшей программы на Java, её компиляция в байт-код и запуск. Средства разработки Java-приложений. Интегрированные среды разработки.

2

Типы данных, литералы, переменные

Встроенные типы данных. Способы задания литералов различных типов. Хранение данных в памяти ЭВМ. Приведение типов (явное и автоматическое). Константы и переменные.

3

Операции и библиотечные методы и классы

Оператор присваивания. Порядок действий (приоритет операторов). Арифметические операторы. Операторы инкремента и декремента. Встроенный класс Math. Псевдослучайные числа. Операторы сравнения и логические операторы. Встроенный класс String. Строковые операции.Стандартные потоки ввода-вывода. Организация ввода и вывода данных. Класс Scanner.

4

Ветвления и циклы (основные алгоритмические конструкции)

Операторы сравнения и логические операторы. Операторы ветвления. Условный оператор. Минимизация количества проверок. Операторы ветвления. Оператор множественного выбора. Его сравнение с условным оператором. Операторы организации циклов. Цикл типа «n раз». Операторы организации циклов. Цикл типа «пока» (с пред- и постпроверкой условия).

5

Массивы и структуры данных

Массивы. Способы объявления и инициализации массивов. Индексация и размер массива. Алгоритмы сортировки. Многомерные массивы.

6

Статические методы

Статические методы классов. Методы функционального и процедурного типа. Сигнатура метода. Перегрузка методов.

7

Основы ООП

Процедурное программирование. Объектно ориентированное программирование. Сравнение парадигм. Объекты и классы. Абстракция данных. Сценарий построения объектно-ориентированной программы. Члены классов. Методы и поля. Специальные методы классов (конструкторы). Конструктор по умолчанию. Модификаторы уровня доступа (default, public, protected, private). Основополагающие принципы ООП. Инкапсуляция.

Наследование. Полиморфизм. Интерфейсы как средство реализации множественного наследования.

Иерархия классов Java. Коренной класс Object и его методы. Исключительные ситуации. Обработка исключительных ситуаций.

Язык программирования C++

8

Введение

Классификация языков программирования. Типизация данных в языках программирования. Язык программирования C++. Стандарт языка. Стандартная библиотека. Структура простейшей программы на C++.

9

Типы данных и операции над ними

Встроенные типы данных C++. Способы представления чисел различных типов на уровне ЭВМ. Константы и переменные. Область видимости. Пространство имён. Оператор присваивания. Арифметические операторы. Операторы сравнения и логические операторы. Порядок действий (приоритет операторов).

10

Ветвления и циклы (основные алгоритмические конструкции)

Условный оператор и оператор множественного выбора. Операторы для организации циклов. Стандартные потоки ввода/вывода. Средства работы с потоками ввода/вывода. Специальные символы (символ перевода строки, символ табуляции, символ конца строки). Псевдослучайные числа. Генерация псевдослучайных чисел на C++.

11

Массивы и структуры данных

Массивы в C++. Алгоритмы сортировки. C-строки (символьные массивы). Многомерные массивы.

12

Указатели, работа с памятью, функции

Указатели в C++. Операция разыменования. Константные указатели и указатели на константы. Указатели и массивы. Операции над указателями. Ссылки в C++. Статическая, автоматическая и динамическая память. Создание и удаление динамических объектов. Типичные ошибки, возникающие при использовании динамической памяти («утечка памяти»). Функции в C++. Прототип и описание функции. Формальные и фактические параметры. Передача параметров в функции по значению, по ссылке, по указателю. Параметры функций со значениями по умолчанию. Перегрузка функций. Рекурсия. Шаблоны функций.

13

ООП

Объектно-ориентированный подход. Абстракция данных. Наследование. Инкапсуляция. Контроль доступа к свойствам и методам (public, private, protected). Полиморфизм и шаблоны классов. Конструкторы и деструкторы. Перегрузка операторов.



Программа экзамена «Программирование на Java» (I семестр):

  1. Особенности языка и платформы Java.

  2. Классификация программ по типу исполнения (компилируемые, интерпретируемые, исполняемые на виртуальных машинах). Виртуальная машина Java. JIT-компиляция.

  3. Создание простейшей программы на Java, её компиляция в байт-код и запуск.

  4. Средства разработки Java-приложений. Интегрированные среды разработки.

  5. Встроенные типы данных. Способы задания литералов различных типов.

  6. Приведение типов (явное и автоматическое). Константы и переменные.

  7. Оператор присваивания. Порядок действий (приоритет операторов). Арифметические операторы. Операторы инкремента и декремента.

  8. Встроенный класс Math. Псевдослучайные числа.

  9. Операторы сравнения и логические операторы. Операторы ветвления. Условный оператор. Минимизация количества проверок. Оператор множественного выбора. Его сравнение с условным оператором.

  10. Встроенный класс String. Строковые операции. Стандартные потоки ввода-вывода. Организация ввода и вывода данных. Класс Scanner.

  11. Операторы организации циклов. Цикл типа «n раз». Цикл типа «пока» (с пред- и постпроверкой условия).

  12. Массивы. Способы объявления и инициализации массивов. Индексация и размер массива. Алгоритмы сортировки. Многомерные массивы.

  13. Статические методы классов. Методы функционального и процедурного типа.

  14. Сигнатура метода. Перегрузка методов.

  15. Процедурное (императивное) программирование. Объектно-ориентированное программирование. Сравнение парадигм.

  16. Основные понятия ООП. Объекты и классы. Абстракция данных. Сценарий построения объектно-ориентированной программы.

  17. Члены классов. Методы и поля. Специальные методы классов (конструкторы). Конструктор по умолчанию. Модификаторы уровня доступа (default, public, protected, private).

  18. Основополагающие принципы ООП. Инкапсуляция. Наследование. Управление наследованием. Интерфейсы как средство реализации множественного наследования. Полиморфизм. Средства реализации полиморфизма.

  19. Иерархия классов Java. Коренной класс Object и его методы.

  20. Исключительные ситуации. Обработка исключительных ситуаций.

  21. Приложения с графическим интерфейсом с использованием GUI-пакетов и апплеты.

Программа экзамена «Программирование на C++» (II семестр):

  1. Классификация языков программирования (компилируемые, исполняемые на виртуальных машинах и интерпретируемые ЯП). Язык программирования C++. Стандарт языка. Стандартная библиотека.

  2. Структура простейшей программы на C++. Процесс компиляции.

  3. Базовые типы C++. Константы и переменные. Хранение целых и вещественных чисел данных в памяти ЭВМ.

  4. Оператор присваивания. Арифметические операторы. Операторы сравнения и логические операторы. Порядок действий (приоритет операторов).

  5. Условный оператор и оператор множественного выбора.

  6. Операторы для организации циклов. Префиксная и постфиксная итерация.

  7. Стандартные потоки ввода/вывода. Средства работы с потоками ввода/вывода. Специальные символы (символ перевода строки, символ табуляции, символ конца строки).

  8. Псевдослучайные числа. Генерация псевдослучайных чисел на C++.

  9. Массивы в C++. Алгоритмы сортировки. C-строки (символьные массивы). Многомерные массивы.

  10. Указатели в C++. Операция разыменования. Константные указатели и указатели на константы. Ссылки в C++.

  11. Указатели и массивы (одномерные и многомерные). Операции над указателями.

  12. Статическая, автоматическая и динамическая память. Типичные ошибки, возникающие при использовании динамической памяти («утечка памяти»).

  13. Функции в C++. Прототип и описание функции. Формальные и фактические параметры. Передача параметров в функции по значению, по ссылке, по указателю.

  14. Параметры функций со значениями по умолчанию. Перегрузка функций.

  15. Рекурсия. Шаблоны функций.

  16. Объектно-ориентированный подход. Абстракция данных. Классы.

  17. Контроль доступа к элементам класса. Функции-члены классов. Конструкторы и деструкторы. Инкапсуляция.

  18. Наследование.

  19. Полиморфизм и шаблоны классов.

Примерный перечень задач экзамена по теме «Программирование на C++» (II семестр):

  1. Пользователь вводит с клавиатуры натуральное число меньшее 10000. Программа проверяет корректность ввода, при необходимости сообщает об ошибке и требует повторного ввода. Для корректно введённого числа программа вычисляет и выводит на экран сумму цифр введённого числа.

  2. Вывести на экран m первых (a1, a2, …) элементов последовательности an=2+2n2, так, чтобы их сумма оказалась меньше 1000, а сумма m+1 первых элементов была бы уже больше или равна 1000.

  3. Пользователь вводит с клавиатуры натуральное число не большее 999, программа должна вывести на экран данное число, записанное римскими цифрами.

  4. Пользователь вводит с клавиатуры: начальную сумму, внесённую на депозит (вещественное положительное число), годовой процент (вещественное положительное число), срок депозита в годах (натуральное число). Проверяется корректность ввода данных. Программа должна вычислить по схеме сложных процентов и вывести на экран сумму, возвращаемую после окончания срока депозита.

  5. Создать программу-калькулятор, считывающую с консоли два операнда и знак арифметического оператора между ними и выводящую на экран вычисленный результат выражения. Реализовать работу со следующими операциями: сложение, умножение, вычитание, деление и возведение в натуральную степень (символ «^»).
    Пример ввода: 2.3+5
    Соответствующий вывод: 7.3
    Пример ввода: 3^3
    Соответствующий вывод: 27
    Пример ввода: 10%5
    Соответствующий вывод: Ошибка! Указана неизвестная операция
    Пример ввода: z+5
    Соответствующий вывод: Ошибка! Указан некорректный операнд

  6. Создать программу, которая будет последовательно предлагать пользователю десять случайных примеров, проверяющих знание таблицы умножения (каждый из сомножителей от 2 до 9 включительно), запрашивать ввод ответа с клавиатуры и проверять, какие примеры из предложенных решены правильно. Каждый пример выводится в формате: «5*8=». Пользователь вводит ответ с клавиатуры, после чего выводится следующий пример. Когда получены ответы на все 10 примеров, программа сообщает количество ошибок и номера примеров, в которых пользователь ошибся. Примеры не должны повторяться. Примеры, полученные перестановкой сомножителей, такие как «5*8=» и «8*5=», считать тождественными (т. е. если был предложен первый из них, то ни он сам, ни второй — повторно предлагаться не должны).

  7. Создать статические методы, вычисляющие факториал натурального числа, как рекурсивным, так и итерационным способами. Сравнить быстродействие этих методов, подсчитав, сколько умножений выполняется в первом и во втором случаях при вычислении факториалов 6, 7 и 8.

  8. Создать статические методы, сортирующие по возрастанию числовой массив, переданный через аргумент, алгоритмом выбора и пузырьковым алгоритмом. В реализации сортировки пузырьковым алгоритмом использовать критерий Айверсона, останавливающий внешний цикл, если на каком-то его шаге массив уже оказался отсортированным.

  9. Для введённой пользователем с клавиатуры строки программа должна определить, корректно ли расставлены скобки (круглые, фигурные, квадратные). «Перемешивание» скобок (пример: «{[}]») считается некорректным вариантом.

  10. Создать класс векторов n-мерного пространства в декартовой системе координат. Реализовать операции сложения и вычитания векторов, умножения вектора на скаляр, вычисления длины вектора, проверки коллинеарности двух векторов.

8. Учебно-методическое и информационное обеспечение дисциплины


а) основная литература:

  • Монахов В. Язык программирования Java и среда NetBeans — БХВ-Петербург, 2011 г. — 704 стр. — ISBN 978-5-9775-0671-7 — 1500 экз. (предыдущая версия книги доступна на http://ru.sun.com/research/materials/Monakhov_Java.jsp).

  • Хабибуллин И. Самоучитель Java — БХВ-Петербург, 2008 г. —768 стр. — ISBN 978-5-9775-0191-0 — 3000 экз.

  • Костин А. Н. Теоретические материалы и задачи по Java — http://kostin.ws/java/

  • Эккель Б. Философия Java (Thinking in Java) — Питер, 2009 г. — 640 стр. — ISBN 978-5-388-00003-3, 978-0-0131872486 — 2000 экз.

  • Шилдт Г. C++ для начинающих (C++: A Beginner's Guide) — Эком, 2007 г. — 640 стр. — ISBN 978-5-9900-9249-5, 0-07-219467-7 — 3000 экз.

  • Павловская Т. А., Щупак Ю. А. C++. Объектно-ориентированное программирование — Питер, 2008 г. — 272 стр. — ISBN 978-5-94723-842-6, 5-94723-842-X — 4500 экз.

  • Фридман А. Л. Язык программирования C++ — http://www.intuit.ru/department/pl/cpp/

б) дополнительная литература:

  • Арнолд К., Гослинг Д., Холмс Д. Язык программирования Java (The Java Programming Language) — Вильямс, 2001 г. — 624 стр. — ISBN 5-8459-0215-0, 0-201-70433-1 — 5000 экз.

  • Костин А. Н. Теоретические материалы и задачи по C++ — http://kostin.ws/cpp/

  • Липпман С., Лажойе Ж. Язык программирования C++. Вводный курс — Невский Диалект, ДМК Пресс, 2001 г. — 1104 стр. — ISBN 5-7940-0070-8, 5-94074-040-5, 0-201-82470-1 —5000 экз.

  • Вирт Н. Алгоритмы и структуры данных — Книга по Требованию, 2010 г. — 274 стр. — ISBN 978-5-94074-584-6

в) программное обеспечение и интернет-ресурсы:

  • Курс полностью базируется на открытом и свободном программном обеспечении (ОС GNU/Linux, GCC, JDK, NetBeans, Geany и др.).



Похожие:

Преподаватели: Костин А. Н., старший преподаватель кафедры тидм iconОбеспечение Преподаватели: Иванова Н. Ю., ст преподаватель кафедры тидм; Маняхина В. Г., доцент кафедры тидм. Структура и содержание дисциплины Общая трудоемкость дисциплины составляет 7 зачетных единиц (252 часа). Структура дисциплины № п/п
Преподаватели: Иванова Н. Ю., ст преподаватель кафедры тидм; Маняхина В. Г., доцент кафедры тидм
Преподаватели: Костин А. Н., старший преподаватель кафедры тидм iconОбеспечение Преподаватели : Иванова Н. Ю., ст преподаватель кафедры тидм; Маняхина В. Г., доцент кафедры тидм. Структура и содержание дисциплины Общая трудоемкость дисциплины составляет 4 зачетных единицы (144 часа). Структура дисциплины № п/п
Преподаватели : Иванова Н. Ю., ст преподаватель кафедры тидм; Маняхина В. Г., доцент кафедры тидм
Преподаватели: Костин А. Н., старший преподаватель кафедры тидм iconОбеспечение Преподаватели : Иванова Н. Ю., ст преподаватель кафедры тидм; Маняхина В. Г., доцент кафедры тидм. Структура и содержание дисциплины Общая трудоемкость дисциплины составляет 7 зачетных единиц (252 часа). Структура дисциплины № п/п
Преподаватели : Иванова Н. Ю., ст преподаватель кафедры тидм; Маняхина В. Г., доцент кафедры тидм
Преподаватели: Костин А. Н., старший преподаватель кафедры тидм iconКомпьютерные сети, Интернет и мультимедиа технологии
Преподаватель : Иванова Н. Ю., ст преподаватель кафедры тидм; Маняхина В. Г., доцент кафедры тидм
Преподаватели: Костин А. Н., старший преподаватель кафедры тидм iconДисциплина "Страхование"
Преподаватели: старший преподаватель, к э н. Ковалев Ю. С., старший преподаватель, к э н. Абашилов Х. Ш., доцент, к э н. Андросова...
Преподаватели: Костин А. Н., старший преподаватель кафедры тидм iconКурс 4 семестр Преподаватели: Соболева Марина Леонидовна, доцент кафедры теоретической информатики и дискретной математики Алфимова Анастасия Сергеевна, старший преподаватель кафедры теоретической информатики и дискретной математики
Алфимова Анастасия Сергеевна, старший преподаватель кафедры теоретической информатики и дискретной математики
Преподаватели: Костин А. Н., старший преподаватель кафедры тидм iconПрограмма государственного экзамена для студентов специальности 1- 26 02 03 «Маркетинг» Специализация: 1-26 02 03 20 «Маркетинг в электронной коммерции» Факультет экономики Кафедра менеджмента Форма получения высшего образования дневная, заочная
«Маркетинг» разработали: д э н., доцент кафедры менеджмента Енин Ю. И., д т н., профессор кафедры менеджмента Вишняков В. А., к т...
Преподаватели: Костин А. Н., старший преподаватель кафедры тидм iconМетодические указания и задания к выполнению контрольных работ для студентов инженерного факультета по специальностям 110301 и 110304
Авторы: доцент Зефиров И. В., старший преподаватель Шевкопляс Л. А., старший преподаватель Ножнин С. Р., старший преподаватель Бирюков...
Преподаватели: Костин А. Н., старший преподаватель кафедры тидм iconКурс 2 семестр Преподаватели: Соболева Марина Леонидовна, доцент кафедры теоретической информатики и дискретной математики, к п. н., доцент Алфимова Анастасия Сергеевна, старший преподаватель кафедры теоретической информатики и дискретной математики
Преподаватели: Соболева Марина Леонидовна, доцент кафедры теоретической информатики и дискретной математики, к п н., доцент
Преподаватели: Костин А. Н., старший преподаватель кафедры тидм iconМетодические указания и контрольные задания для студентов 1-2 курсов заочной формы обучения по специальности: «Экономика и управление на предприятиях химической промышленности»
Рецензенты: Старший преподаватель английского языка кафедры общенаучных дисциплин бф пгту е. Б. Кучина, Старший преподаватель английского...
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница