Учебный план по изучению языка программирования высокого уровня C++
№ темы |
Название темы |
Теория (часов) |
Практика (часов) |
1 |
Введение в язык программирования C ++. Типы данных C ++. |
2 |
2 |
2 |
Выражения и операторы |
2 |
3 |
3 |
Управление выполнением программ |
2 |
3 |
4 |
Функции |
2 |
3 |
5 |
Указатели и ссылки |
2 |
3 |
6 |
Массивы |
1 |
3 |
7 |
Строки и операции с ними |
2 |
4 |
8 |
Структуры и объединения |
2 |
3 |
9 |
Функции ввода-вывода |
2 |
3 |
10 |
Перегрузка функции |
2 |
4 |
11 |
Перегрузка операторов |
2 |
3 |
12 |
Потоковый ввод-вывод |
1 |
3 |
13 |
Объектно-ориентированное программирование |
2 |
4 |
14 |
Шаблоны |
4 |
12 |
15 |
Директивы препроцессора |
1 |
2 |
16 |
Модификаторы |
1 |
2 |
17 |
Стандартный класс String |
2 |
3 |
18 |
Стандартная библиотека шаблонов (STL) |
2 |
2 |
|
34 |
62 |
Итого |
96 |
1) Введение в язык программирования C ++. Типы данных C ++.
Вводная лекция в язык программирования C ++.
Цель занятия: ознакомить слушателей с языком C ++. Выявить его преимущества относительно других языков, рассказать, в чём заключаются его сильные и слабые стороны. На этом же занятии показать структуру программы, на простейшем, классическом примере программы “ Hello World !”. Дать понятие переменных, типов данных, констант, перечислений. Научить преобразовывать данные из одного типа в другой.
2) Выражения и операторы.
Цель занятия: показать, как производятся различные арифметические операции на языке C ++. Дать понятие выражения. Глубоко раскрыть содержание операторов специфичных именно языку C ++, таких, как операторы инкремента и декремента, оператор sizeof , сделать акцент на поразрядные логические операции, операции сдвига влево и вправо, операции запятая. Напомнить об операции сравнения, которые практически аналогичны операторам в других языках с небольшими изменениями. Дать понятие приоритетам выполнения операции и порядку их выполнения.
3) Управление выполнением программ.
Цель занятия: аналогично другим языкам, управление в C ++ осуществляется при помощи операторов условного и безусловного перехода, оператором ветвления, операторами цикла. Напомнить слушателям о данных операторах и разобрать синтаксис их написания, который специфичен C ++. Помимо этого рассказать об операторах, которые встречаются только в C ++ и рассмотреть их синтаксис, это такие операторы, как условный оператор «? :» и оператор continue .
4) Функции.
Цель занятия: рассказать о функциях и их применении, в чём их специфика и зачем они нужны. Рассмотреть такие понятия, как область видимости и выяснить, в чём отличие глобальных от локальных переменных. Дать понятие операции разрешения области видимости (::). На данной лекции необходимо рассмотреть широкий круг вопросов, которые связаны с базовыми понятиями программирования вообще и C ++ в частности. К примеру, классы памяти, а также рекурсивные функции, математические функции и т.д.
5) Указатели и ссылки.
Цель занятия: дать понятие указателя, наиболее «скользком» и вызывающем затруднения у многих начинающих программистов на C ++. Объяснить сущность разыменовывания указателей, а также их арифметику. Сделать акцент на следующих моментах: указатели на указатели, указатели на функции. Объяснить, чем отличается ссылка от указателя и чем отличается передача параметров по ссылке от передачи параметров по значению.
6) Массивы.
Цель занятия: рассказать об одномерных и многомерных массивах и специфики в их объявлении. Дать определение инициализации массивов и показать, как происходит динамическое выделение массива. Рассказать о специфичных для языка C ++ функциях malloc , calloc , free и операторах new и delete . Объяснить как массивы могут передаваться в качестве параметров функции.
7) Строки и операции с ними.
Цель занятия: объяснить слушателям, что строки в C ++ это есть ни что иное как массив элементов типа char , т.е. где элементами являются буквы, причём заканчивается этот массив нуль - терминатором. Дать такие базовые моменты и понятия, как: определение длины строк, копирование и конкатенация строк, сравнение строк, преобразование строк, обращение строк, поиск символов, поиск подстрок, функции преобразования типа.
8) Структуры и объединения.
Цель занятия: рассказать, что такое структура и зачем она нужна, какие операции можно с ней производить и как передавать её в качестве параметра функции, какие преимущества и достоинства имеет применение в программировании массива структур. Также необходимо рассказать, чем отличаются объединения от структур и какие операции можно производить с объединениями. Дать понятие пользовательских типов данных.
9) Функции ввода-вывода.
Цель занятия: объяснить, как осуществляется потоковый ввод-вывод и какие существуют стандартные потоки, какие функции предоставляет язык C ++ для вывода символов и строк, как организуется файловый ввод и вывод. Рассказать о функции позиционирования, и в каких случаях необходимо её применение.
10) Перегрузка функции.
Цель занятия: ввести понятие перегрузки и выявить целесообразность её применения при написании программ. Особенно уделить внимание правильности использования перегрузки для того, чтобы не возникали ошибки, связанные с неоднозначностью. На данном занятии следует обратить особое внимание на примеры перегрузки функции, чтобы слушатели смогли понять и осмыслить этот специфический момент языка C ++.
11) Перегрузка операторов.
Цель занятия: на данном занятии необходимо рассмотреть широкий спектр вопросов, посвящённых перегрузке операторов:
- Понятие перегрузки операторов
- Перегрузка бинарных операторов
- Перегрузка операторов отношения и бинарных операторов
- Перегрузка оператора присваивания
- Перегрузка унарных операторов
- Перегрузка операторов инкремента и декремента
- Перегрузка оператора индексирования
- Перегрузка оператора вызова функции
- Перегрузка операторов new и delete
- Функции преобразования типа.
12) Потоковый ввод-вывод.
Логическое продолжение девятой лекции, но уже на более высоком уровне.
Цель занятия: объяснить, что такое предопределённые потоки, какие операции существуют для помещения и извлечения из потока, форматирование потока, файловый ввод-вывод с использованием потоков. Показать и объяснить на примерах часто используемые функции. А также пройти ряд других вопросов, касающихся перегрузки операторов извлечения и вставки, а также переадресации ввода-вывода.
13) Объектно-ориентированное программирование.
Цель занятия: необходимо рассмотреть широкий круг вопросов, связанных с объектно-ориентированным программированием, показать специфику такого программирования.
Основные вопросы, которые необходимо рассмотреть в течение этой лекции:
- Принципы объектно-ориентированного программирования
- Классы
- Конструкторы и деструкторы
- Список инициализации элементов
- Конструкторы по умолчанию и конструкторы копирования
- Встраиваемые (inline-) функции
- Статические члены класса
- Использование указателей на функции-члены класса
- Массивы объектов класса
- Дружественные функции и друзья класса
14) Шаблоны.
Цель занятия: объяснить, что является шаблоном и зачем они нужны, как происходит перегрузка шаблонов функций, какие существуют шаблоны функций сортировки. Здесь же пройти ряд вопросов, касающихся использования классов: шаблоны классов, конкретизация шаблона класса, специализация шаблонов класса, статические члены шаблонов класса. Также необходимо выявить недостатки шаблонов.
15) Директивы препроцессора.
Цель занятия: объяснить, что является директивами препроцессора, зачем они нужны, и как ими правильно пользоваться, в нужных ситуациях. Здесь же рассмотреть понятие макроса и что является предопределёнными макросами. Указать операции, применяемые в директивах препроцессора.
16) Модификаторы.
Цель занятия: объяснить, что является модификатором и рассказать о моделях памяти. Данная лекция довольно специфична языку C++.
17) Стандартный класс String.
Цель занятия: рассмотреть следующий круг вопросов:
- Конструкторы строк
- Изменение величины строки и её ёмкости
- Присваивание, добавление и обмен строк
- Доступ к символам строки
- Копирование строк и подстроки
- Сравнение строк
- Операции поиска
- Вставка символов в строку
- Замена и удаление символов из строки
- Операции ввода-вывода строк
18) Стандартная библиотека шаблонов (STL).
Цель занятия: рассмотреть назначение и состав библиотеки. Объяснить следующие понятия: контейнеры, последовательные контейнеры, векторы, списки, деки и операции с ними, их объявление и инициализация, стеки и их объявление и инициализация, очереди и их объявление и инициализация, ассоциативные контейнеры и универсальные алгоритмы.