# Примерная программа

## Раздел 1. Введение в программирование

### Тема 1.1. Языки программирования

1. Развитие языков программирования. 
2. Обзор языков программирования. Области применения языков программирования. Стандарты языков программирования. Среда проектирования. Компиляторы и интерпретаторы. 
3. Жизненный цикл программы. 
Программа. Программный продукт и его характеристики. 
4. Основные этапы решения задач на компьютере.

### Тема 1.2. Типы данных

1. Типы данных. Простые типы данных. Производные типы данных. Структурированные типы данных.

## Раздел 2.

### Тема 2.1. Операторы языка программирования

1. Операции и выражения. Правила формирования и вычисления выражений. Структура программы. Ввод и вывод данных. Оператор присваивания.  Составной оператор.
2. Условный оператор. Оператор выбора.
3. Цикл с постусловием. Цикл с предусловием. Цикл с параметром. Вложенные циклы.
4. Массивы. Двумерные массивы. Строки. Стандартные процедуры и функции для работы со строками.
5. Структурированный тип данных – множество. Операции над множествами. 
6. Комбинированный тип данных – запись. Файлы последовательного доступа. Файлы прямого доступа

## Раздел 3.

### Тема 3.1. Процедуры и функции

1. Общие сведения о подпрограммах. Определение и вызов подпрограмм. Область видимости и время жизни переменной. Механизм передачи параметров. Организация функций.
2. Рекурсия. Программирование рекурсивных алгоритмов.

### Тема 3.2. Структуризация в программировании

1. Основы структурного программирования. Методы структурного программирования.

### Тема 3.3. Модульное программирование

1. Модульное программирование. Понятие модуля. Структура модуля. Компиляция и компоновка программы.
2. Стандартные модули.

## Раздел 4 Основные конструкции языков программирования

### Тема 4.1 Указатели.

1. Указатели. Описание указателей. Основные понятия и применение динамически распределяемой памяти.  Создание и удаление динамических переменных.
2. Структуры данных на основе указателей.
3. Задача о стеке.

## Раздел 5

### Тема 5.1 Основные принципы объектно-ориентированного 
программирования (ООП)

1. История развития ООП. Базовые понятия ООП: объект, его свойства и методы, класс, интерфейс.
2. Основные принципы ООП: инкапсуляция, наследование, полиморфизм.
3. Классы объектов. Компоненты и их свойства.
4. Событийно-управляемая модель программирования.  Компонентно-ориентированный подход.

### Тема 5.2 Интегрированная среда разработчика.

1. Требования к аппаратным и программным средствам интегрированной среды разработчика.
2. Интерфейс среды разработчика: характеристика, основные окна, инструменты, объекты. Форма и размещение на ней управляющих элементов.
3. Панель компонентов и их свойства. Окно кода проекта.
4. Состав и характеристика проекта. Выполнение проекта. Настройка среды и параметров проекта.
5. Панель компонентов и их свойства. Окно кода проекта. Состав и характеристика проекта. Выполнение проекта. Настройка среды и параметров проекта.
6. Настройка среды и параметров проекта.

### Тема 5.3. Визуальное событийно-управляемое программирование

1. Основные компоненты (элементы управления) интегрированной среды разработки, их состав и назначение.
2. Дополнительные элементы управления. Свойства компонентов. Виды свойств. Синтаксис определения свойств. Назначения свойств и их влияние на результат. Управление объектом через свойства.
3. События компонентов (элементов управления), их сущность и назначение. Создание процедур на основе событий.

### Тема 5.4 Разработка оконного приложения

1. Разработка функционального интерфейса приложения. Создание интерфейса приложения.
2. Разработка функциональной схемы работы приложения.
3. Разработка игрового приложения.

### Тема 5.5 Этапы разработки приложений

1. Разработка приложения.
2. Проектирование объектно-ориентированного приложения.
3. Создание интерфейса пользователя.
4. Тестирование, отладка приложения.

### Тема 5.6 Иерархия классов.

1. Классы ООП: виды, назначение, свойства, методы, события.
2. Перегрузка методов.
3. Тестирование и отладка приложения.
4. Решение задач

## Примерная тематика практических занятий и лабораторных работ:

Знакомство со средой программирования.
Составление программ линейной структуры.
Составление программ разветвляющейся структуры. 
Составление программ циклической структуры
Обработка одномерных массивов.
Обработка двумерных массивов.
Работа со строками.
Работа с данными типа множество.
Файлы последовательного доступа.
Типизированные файлы.
Нетипизированные файлы.
Организация процедур. 
Организация функций. 
Применение рекурсивных функций.
Программирование модуля.
Создание библиотеки подпрограмм.
Использование указателей для организации связанных списков.
Изучение интегрированной среды разработчика.
Создание проекта с использованием компонентов для работы с текстом.
Создание проекта с использованием компонентов ввода и отображения чисел, дат и времени.
События компонентов (элементов управления), их сущность и назначение. 
Создание процедур на основе событий.
Создание проекта с использованием кнопочных компонентов.
Создание проекта с использованием компонентов стандартных диалогов и системы меню.
Разработка функциональной схемы работы приложения.
Разработка оконного приложения с несколькими формами.
Разработка игрового приложения.
Создание процедур обработки событий. Компиляция и запуск приложения.
Разработка интерфейса приложения.
Тестирование, отладка приложения.  
Классы ООП: виды,  назначение, свойства, методы, события.
Объявления класса.
Создание наследованного класса.
Программирование приложений.
Перегрузка методов.
