Курсы
Алгоритмы и структуры данных
Содержание курса
Тема 1.1. Программирование структур. Способы представления структур данных. Массивы. Списки. Множества. Стеки. Очереди. Классы памяти и организация программ. Локализация объектов. Глобальные объекты. Динамическая память. Внешние объекты. Деревья. Определение дерева. Корень, узлы. Trie-деревья. Прохождение деревьев.
Тема 1.2. Алгоритмы сортировки. Внутренние сортировки. Сортировка в массивах. Обобщение известных методов сортировки вставками, обменом, выбором. Сортировка элементов массива методом подсчета. Анализ алгоритмов сортировок массивов. Быстрая сортировка. Бинарная пирамидальная сортировка. Анализ эффективности алгоритмов. Внешние сортировки. Простое слияние. Естественное слияние. Улучшенные методы сортировки: многофазная и каскадная сортировки.
Быстрый поиск: бинарный и последовательный поиски в массивах. Дихотомия.
Тема 1.3. Графы. Задачи поиска. Графы. Понятие графа. Представление графа в памяти компьютера. Поиск в графе. Поиск в ширину. Поиск в глубину. Деревья. Нахождение каркаса минимального веса. Задача Прима-Краскала. Поиск кратчайшего пути на графе. Алгоритм Дейкстры. Методы поиска на графах. Определение остовных деревьев.
Раздел 2. Алгоритмы обработки данных
Тема 2.1. Перебор с возвратом. Общая схема. Пример задачи о расстановке ферзей. Динамическое программирование. Примеры задач (треугольник, степень числа). Метод ветвей и границ.
Метод решета.
Тема 2.2. Важные алгоритмы. Жадные алгоритмы. В-деревья. Хеширование. Теория сложности алгоритмов: NP-полные и NP-трудные задачи.
Результаты освоения курса
Выпускник знает:
способы программирования нелинейных структур данных и их представление в памяти компьютера;
постановку и алгоритмы задач поиска и сортировки в массивах, поиска на графах (Прима-Краскала, Дейкстры и т.д.);
теоретические основы и приемы программирования перебора с возвратом;
Умеет:
при решении конкретной задачи профессионально грамотно сформулировать задачу программирования, составить и оценить алгоритм решения, реализовать его в данной языковой среде, выполнить необходимое тестирование или верификацию построенной программы
Владеет и (или) имеет опыт деятельности:
навыками: практического программирования конкретных задач из различных предметных областей в определенной языковой среде
Веб-дизайн
Цель курса
Целью курса является изучение базовых принципов создания сайтов с помощью языка HTML.
Результаты освоения курса
Задачи учебного курса:
Освоение слушателями навыков и приемов работы в среде HTML.
получение практической подготовки в области использования вычислительной техники и программного обеспечения для решения прикладных задач.
В результате освоения учебного курса слушатели должны знать:
основные концепции и принципы дизайна сайтов и веб-программирования
технологии проектирования сайтов
критерии выбора средств и систем для веб-программирования
В результате освоения учебного курса слушатели должны уметь:
Выбирать средства реализации требований к программному обеспечению
Вырабатывать варианты реализации программного обеспечения
Проводить оценку и обоснование рекомендуемых решений
В результате освоения учебного курса слушатели должны владеть:
практическими навыками проектирования веб-дизайна и разработки веб-сайтов
Компьютерные сети
Цель курса
Целью курса является изучение базовых технологий и протоколов применяемых в современных информационно-вычислительных сетях, принципов их построения и администрирования. Рассматриваются основы передачи данных и модели сетевого взаимодействия.
Курс направлен на обеспечения знания теоретических и практических основ в области организации и функционировании компьютерных сетей.
Результаты освоения курса
В результате освоения курса слушатели будут:
- знать базовые сетевые технологии;
- понимать основы передачи данных;
- понимать механизмы передачи сигналов в различных физических средах;
- понимать механизмы и модели сетевого взаимодействия;
- понимать принципы и необходимость сетевой адресации;
- понимать топологию и принципы проектирования вычислительной сети;
- знать и правильно ориентироваться в протоколах уровней ISO/OSI;
- знать современные технологии и тенденции развития информационно-вычислительных сетей.
Основы информационной безопасности в сети Интернет
Цель курса
Рассматриваются наиболее широко используемые протоколы сетевой безопасности прикладного, сетевого и канального уровней. Рассмотрены вопросы обеспечения безопасности при подключении корпоративной сети к Интернету. Основное внимание уделяется классификации межсетевых экранов (firewall’ов), систем обнаружения проникновений, а также обеспечению безопасности сервисов DNS и веб-серверов.
В результате освоения курса слушатели будут:
Знать:
Основные технологии защиты информации в интернет.
- Протоколы безопасности на уровне IP.
- Протоколы канального уровня.
- Классификация межсетевых экранов и определение политики межсетевого экрана.
- Системы обнаружения проникновения (Intrusion Detection Systems – IDS).
- Принципы безопасного развертывания сервисов DNS.
- Обеспечения безопасности веб-серверов.
Уметь:
Создавать VPN с использованием протоколов IPSec, L2TP, PPTP, GRE и с использованием различных способов аутентификации.
Владеть:
Технологиями защиты информации в интернет.
Основы программирования
Цель курса
В курсе рассматриваются вопросы применения объектно-ориентированных языков программирования для построения различных типов приложений, изучаются библиотеки классов, поддерживаемые различными системами программирования.
Курс направлен на формирование у студентов компетенций, необходимых для эффективного решения различных задач по разработке и созданию программных продуктов, включающие в себя:
- применение современных сред разработки программных проектов;
- создание различных типов приложений на языках программирования C++, C#, Object Pascal и Java, с применением библиотек классов.
Результаты освоения курса
В результате освоения курса слушатели будут:
знать:
- технологию создания консольных и диалоговых приложений на языке программирования С++ с применением библиотек классов MFC и .NET Framework;
- технологию создания приложений на языке программирования Object Pascal с применением библиотеки классов VCL;
- технологию создания приложений на языке программирования Java с применением библиотеки классов JDK;
- технологию создания приложений на языке программирования Java с применением библиотеки классов .NET Framework.
уметь:
- создавать на языках программирования C++, C#, Object Pascal и Java консольные и диалоговые приложения;
- создавать приложения с SDI и MDI интерфейсом;
- разрабатывать WPF приложения, использующие технологию разделения представления и кода;
- применять событийную модель управления;
- использовать различные элементы управления;
- создавать собственные компоненты интерфейса пользователя.
владеть:
- технологиями проектирования и разработки различных типов приложений с применением разных систем программирования.
Построение приложений баз данных на языке Java
В курсе рассматриваются вопросы разработки приложений с использованием различных баз данных на основе применения библиотеки JDK.
Курс направлен на формирование у студентов компетенций, необходимых для эффективного решения различных задач по проектированию и созданию приложений баз данных, включающие в себя:
- применение различных механизмов обработки информации из баз данных;
- использование различных типов наборов данных;
- построение клиентских и серверных приложений баз данных, использование JNDI источников данных.
Результаты освоения курса:
Предполагается, что, прослушавший курс «Построение приложений баз данных на языке Java», должен:
- знать основные механизмы подключения к различным бзам данных, принципы работы с серверными и клиентскими курсорами;
- уметь создавать и обрабатывать наборы данных;
- владеть навыками построения приложений баз данных.
Программирование на языке C++
1. Основы языка программирования С++
Среда разработки Visual Studio. Базовые типы данных. Константы. Операции над базовыми типами. Оператор if/else. Условное выражение. Оператор switch. Операторы циклов for, while, do/while. Операторы break и continue. Одномерные и многомерные массивы. Строки.
2. Адресная арифметика и функции.
Указатели. Операции над указателями. Операторы адресации и разыменования. Ссылки. Указатели и массивы. Массивы указателей. Динамические массивы. Функция. Функции и массивы.Прототип функции. Способы передачи параметров. Значения по умолчанию. Рекурсия. Аргументы командной строки. Указатели на функции. Перегрузка функций. Шаблоны функций.
3. Классы
Спецификаторы доступа к членам класса; объявление, спецификации, реализация класса; объявление объекта, доступ к членам объектов. Конструкторы и деструкторы класса. Конструктор копирования. Указатель this. Статические и константные данные и методы класса. Друзья класса.
4. Перегрузка операций и шаблоны
Операторные функции. Перегрузка арифметических, логических операций. Перегрузка операций индексации, вызова функции, ввода/вывода. Шаблоны. Программирование простейших шаблонов функций. Понятие шаблона как средства параметризации алгоритмов. Шаблоны функций. Наследование. Полиморфизм. Динамическое связывание. Использование класса string библиотеки STL
Программирование на языке Python
Система заданий разработана по технологии поэтапного формирования умственных действий с адаптацией к психологическим особенностям личности учащихся.
Для достижения основной цели курса необходимо поставить и решить несколько задач.
Задачи учебного курса:
освоение слушателями навыков и приемов работы в среде PyCharm.
получение практической подготовки в области использования вычислительной техники и инструментального программного обеспечения для решения прикладных задач с использованием языка программирования Python и различного программного обеспечения.
Результаты освоения курса
В результате освоения учебного курса слушатели должны знать:
основные приемы работы в среде PyCharm;
синтаксис и семантику операторов, принципы построения программ для языка программирования Python;
способы описания и использования основных структур данных: структура, массив, файл в языке программирования Python;
В результате освоения учебного курса слушатели должны уметь:
выполнять практические операции по созданию программ и проектов в среде PyCharm;
создавать логически и синтаксически правильные программы на языке Python по заданному алгоритму;
использовать в программах массивы как базовую структуру данных для решения прикладных задач;
использовать в программах файлы в качестве источника и приемника данных;
применять базовые алгоритмы сортировки и поиска при решении конкретных задач;
выполнять операции обработки структурированных данных.
В результате освоения учебного курса слушатели должны владеть:
практическими навыками постановки задачи, разработки алгоритма ее решения и использования прикладных систем программирования для реализации алгоритмов на языке программирования Python.
Теория вероятностей и математическая статистика
Тема 1.1. Понятие вероятности. Элементы комбинаторики. Принципы комбинаторики. Основные формулы: перестановки, размещения, сочетания. Испытание. Пространство элементарных событий. Событие. Операции над событиями. Понятие вероятности. Статистическое и классическое определение вероятности.
Тема 1.2. Элементарные теоремы. Теоремы сложения. Условная вероятность. Теоремы умножения. Формула полной вероятности. Формула Байеса. Повторные независимые испытания. Формула Бернулли. Локальная и интегральная теоремы Муавра – Лапласа.
Тема 1.3. Случайные величины. Случайная величина. Дискретная и непрерывная случайная величина. Способы задания. Функция распределения. Числовые характеристики случайных величин: математическое ожидание и дисперсия. Законы распределения случайных величин. Нормальный закон. Закон больших чисел. Центральная предельная теорема. Марковские цепи.
Тема 2.1. Обработка статистических данных. Генеральная совокупность и выборка. Вариационный ряд. Выборочное среднее, мода, медиана, размах. Виды выборки. Требования к выборке. Точечная оценка параметров. Доверительные интервалы.
Тема 2.2. Задачи математической статистики. Корреляционная зависимость. Линейная корреляция. Уравнения регрессии. Коэффициент корреляции. Статистическая проверка гипотез.
Результаты освоения курса
Выпускник знает:
основные теоретико-вероятностные и статистические модели;
Умеет:
решать типовые задачи на применение изученных моделей для описания взаимодействия объектов;
Владеет:
навыками практического использования математического аппарата теории вероятности и статистики для утверждения и контроля методов и способов взаимодействия программного средства со своим окружением.