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

За дополнительной информацией обращаться:

Ведущий специалист Ордынская Марина Юрьевна, ауд. 607-7., тел. +375 17 397-82-95, +375 29 639-65-63,
e-mail: ordinskaya@bsuir.by

ведущий специалист Крищенович Вероника Анатольевна, ауд. 607-7., тел. +375 17 397-82-95, +375 29 390-88-95,
e-mail: krish@bsuir.by

Заместитель декана Гарбуз Виталий Борисович, ауд. 402-8., тел. +375 29 686-61-14,
e-mail: garbuz@bsuir.by

Запись осуществляется через электронную форму. Обучение начинаются по мере формирования групп.
 

Стоимость

550

Продолжительность

60 часов

О программе

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

Записаться на курс

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

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