Основы алгоритмизации и программирования
Код курса: DEV-023
Продолжительность:
5 дней (40 часов)
Программа курса
- Вводная часть
- Программное и аппаратное обеспечение. Языки программирования: уровень и тип языка программирования, характеристики. Краткий обзор парадигм программирования: процедурные языки, объектно-ориентированные языки.
- Этапы разработки программного обеспечения. Жизненный цикл программного продукта.
- Характеристики разрабатываемой программы.
- Основные принципы обработки команд программы исполнителем (компьютером).
- Организация ЭВМ. Принципы построения ЭВМ, машина Фон Неймана.
- Понятие Данные
- Понятие данные, информация. Свойства информации.
- Представление данных разного типа в компьютере: целочисленные данные и числа с плавающей точкой, строки фиксированной и переменной длины, символы, логические значения, даты.
- Различные варианты кодировки символов.
- Сравнение данных разных типов. Системы счисления.
- Общие понятия и конкретные системы: десятичная, двоичная, шестнадцатеричная, восьмеричная. Правила перевода числа из одной системы в другую.
- Устройство памяти. Адресация. Понятие переменная.
- Объявление (декларация) и инициализация переменных. Правила именования.
- Понятие Программа
- Понятие программа, алгоритм, исполнитель.
- Типы программного обеспечения: системное, прикладное, инструментальное (средства разработчика).
- Трехуровневая модель программного продукта.
- Свойства алгоритмов. Формы представления алгоритмов: естественный язык, блок-схема, формальный язык. Составление блок-схем алгоритмов.
- Иерархическая организация программы, модульность. Область видимости и время жизни. Секции программного модуля.
- Понятия транслятор, компилятор, интерпретатор. Статическая и динамическая компиляция.
- Понятие Интерфейс
- Варианты интерфейсов: UI, GUI и др. Важность правильной разработки интерфейса.
- Различные методы построения диалога с пользователем.
- Язык программирования. Переменные
- Состав и структура языка программирования. Понятия алфавита, синтаксиса и семантики.
- Комментарии.
- Переменные. Определение имени переменной. Объявление переменной. Инициализация переменной по умолчанию и из кода.
- Область видимости и время жизни переменных. Затенение имен.
- Оператор присваивания.
- Типы переменных. Преобразование типов явное и неявное. Операции с переменными.
- Константы.
- Указатель или ссылка на переменную.
- Язык программирования. Операторы
- Понятие оператора. Запись операторов. Многострочные операторы, понятие блока.
- Оператор условия. Составления условия: сравнение числовых значений, дат, строковых и логических значения. Составление сложных условий: использование логических операций OR, AND, XOR, NOT. Приоритет операций. Вложенные операторы. Оптимизация условий.
- Оператор выбора. Оптимизация оператора выбора.
- Оператор цикла: циклы с предусловием, с постусловием, с параметром. Цикл для обхода элементов группы. Понятия: тело цикла, условие цикла, счетчик, итерация. Использование счетчика цикла. Оператор досрочного выхода из цикла.
- Процедуры и функции
- Декомпозиция задачи на подзадачи. Программирование сверху вниз и снизу вверх. Парадигма черного ящика. Входные и выходные данные подпрограммы.
- Понятия подпрограмма, процедура, функция. Процедуры стандартные, пользовательские, обработки событий. Описание, объявление, вызов процедуры.
- Библиотеки функций. Вызов процедуры и функции.
- Аргументы формальные и фактические. Тип аргумента. Передача аргументов по значению и по ссылке. Значение, возвращаемой функцией.
- Способы взаимодействия различных фрагментов программы. Структурная декомпозиция.
- Способы организации данных
- Роль организации данных в программе.
- Понятие массива. Массивы одномерные и многомерные. Понятие индекса и элемента массива. Подсчет объема памяти занимаемой массивом. Типовые задачи с массивами: доступ к элементу, обход элементов, инициализация элементов.
- Представление текстовой информации. Понятие строка. Различные способы организации строковых данных. Работа с отдельными символами. Наиболее употребительные функции для работы со строками.
- Пользовательский тип данных (структура). Объявление и использование пользовательского типа. Совместное использование пользовательских типов данных и массивов.Применение списков и файлов.
- Однонаправленный, двунаправленный, кольцевой списки. Организация стеков различных типов.
- Решение общих алгоритмических задач.
- Поиск элемента в массиве: линейный, двоичный и интерполяционные алгоритмы. Поиск наибольшего и наименьшего элемента в массиве. Различные способы сортировки элементов массива: метод прямого выбора, метод вставки, пузырьковая сортировка. Оценка сложности алгоритма и сравнение алгоритмов.
- Алгоритмы работы со строками. Разбиение и объединение строк, поиск и извлечение подстроки, удаление подстроки, синтаксический анализ текста.
- Рекурсивные и итерационные алгоритмы. Рекурсивные математические функции на примере вычисления факториала.
- Объектно-ориентированное программирование
- Преимущества применения объектно-ориентированного подхода в программировании. Понятия класс, объект, свойство, метод, событие. Основные характерные черты объектно-ориентированного подхода (обзорно): инкапсуляция, наследование, полиморфизм.
- Практические работы
Практика 1
- Знакомство со средой программирования.
- Знакомство со средой программирования MS Visual Studio. Основные типы файлов. Понятие решения, проекта, модуля. Создание нового проекта, присвоение имен. Основные операции в проекте, навигация.
- Основные необходимые понятия для начала работы с объектами и классами.
- Проектирование пользовательского графического интерфейса. Работа в Form Designer.
- Написание кода. Создание обработчиков событий, реагирование на действия пользователя.
- Решение простейших алгоритмических задач:
- ввод, вывод данных,
- использование подпрограмм,
- проверка правильности ввода, реагирование на ошибки,
- обмен значений двух переменных,
- определение четности числа.
- Компиляция проекта. Подготовка и запуск исполняемого файла.
- Работа со справочной системой.
Практика 2
- Работа с массивом
- Создание проекта, добавление, удаление, переименование модулей.
- Проектирование приложения, двухуровневая модель. Реализация независимости пользовательского интерфефса от логики.
- Реализация подпрограмм для работы с массивом: добавление элемента, удаление, очистка массива, выбор элемента, сортировка элементов. Контроль входных данных.
- Разработка пользовательской формы. Проектирование интерфейса. Организация ввода и вывода данных, реакция на ошибки.
Практика 3
- Работа со строками
- Решение следующих задач:
- переворот строки,
- отображение кодов символов,
- получение случайного слова,
- подсчет и вывод отдельных слов в строке.
- Реализация рекурсивного алгоритма
- Реализация рекурсивного алгоритма на примере факториала.
Расписание
Время проведения курса пока не определено, отправьте нам заявку, пожалуйста.
Возможно, мы предложим пройти курс в дистанционном режиме или организуем выездной курс, если у Вас группа.