Основы алгоритмизации и программирования — SynergyCom

Основы алгоритмизации и программирования

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

Практика 1

  • Знакомство со средой программирования.
  • Знакомство со средой программирования MS Visual Studio. Основные типы файлов. Понятие решения, проекта, модуля. Создание нового проекта, присвоение имен. Основные операции в проекте, навигация.
  • Основные необходимые понятия для начала работы с объектами и классами.
  • Проектирование пользовательского графического интерфейса. Работа в Form Designer.
  • Написание кода. Создание обработчиков событий, реагирование на действия пользователя.
  • Решение простейших алгоритмических задач:
  • ввод, вывод данных,
  • использование подпрограмм,
  • проверка правильности ввода, реагирование на ошибки,
  • обмен значений двух переменных,
  • определение четности числа.
  •  Компиляция проекта. Подготовка и запуск исполняемого файла.
  •  Работа со справочной системой.

Практика 2

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

Практика 3

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

Курс не запланирован.

Вы можете подать заявку на открытие курса:

Каталог услуг

Поиск по сайту