• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Компьютерный практикум по основам алгоритмизации и методам программирования

2020/2021
Учебный год
RUS
Обучение ведется на русском языке
6
Кредиты
Статус:
Курс обязательный
Когда читается:
2-й курс, 3 модуль

Программа дисциплины

Аннотация

Настоящая программа учебной дисциплины устанавливает требования к образовательным результатам и результатам обучения студента и определяет содержание и виды учебных занятий и отчетности. Программа предназначена для преподавателей, ведущих дисциплину «Компьютерный практикум по основам алгоритмизации и методам программирования», учебных ассистентов и студентов направления подготовки 09.03.04 Программная инженерия, обучающихся по образовательной программе «Программная инженерия».
Цель освоения дисциплины

Цель освоения дисциплины

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

Планируемые результаты обучения

  • Студент способен перевести число (целое и вещественное) из одной системы счисления в другую. Студент способен подобрать адекватный тип для представления данных в памяти компьютера.
  • Студент способен дать определение понятия алгоритма и его свойств, построить блох-схему для указанного алгоритма. Студент способен написать программу для машины Тьюринга для простой задачи Студент способен применить представленный алгорифм для конкретной входной строки Студент способен оценить сложность представленного на ЯВУ алгоритма Студент способен интерпретировать БНФ
  • Студент способен использовать IDE Microsoft Visual Studio для разработки программ Студент способен использовать средства отладки IDE Microsoft Visual Studio Студент знаком с основными приемами улучшения программного кода
  • Студент применяет циклические конструкции при разработке программ Студент применяет одномерные и многомерные массивы при разработке программ Студент применяет строки при разработке программ Студент применяет рекурсию при разработке программ
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Раздел 1. Кодирование информации и представление данных в памяти компьютера
    Тема 1. Понятие системы счисления, связь между системами счисления Понятие системы счисления. Алгоритмы перевода чисел из одной системы счисления в другую. Связь между системами счисления. Примеры. Тема 2. Понятие типа данных и представление данных в памяти компьютера Понятие типа данных, характеристики и примеры типов. Стандартные типы данных и их аппаратная поддержка. Двоичная система – основа представления данных в памяти компьютера. Представление данных в памяти компьютера и особенности машинной арифметики. Форматы представления чисел. Представление целых чисел в форме с фиксированной точкой, знаковые и беззнаковые числа. Представление вещественных чисел.
  • Раздел 2. Основы алгоритмизации и программирования
    Тема 3. Алгоритмы и способы их записи Интуитивное понятие алгоритма. Свойства алгоритмов. Понятие об исполнителе алгоритма. Уточнение понятия алгоритма. Примеры. Текстовое и графическое представления алгоритма. Понятие псевдокода, примеры записи алгоритмов на псевдокоде. Представление алгоритмов с помощью блок-схем. Правила описания блок-схем. Принципы структурного программирования и использование структурограмм для описания алгоритмов. Примеры. Тема 4. Машины Тьюринга Алгоритм как преобразование слов из заданного алфавита. Машина Тьюринга. Формат команды и программа машины Тьюринга. Способы записи программы: таблицы, диаграммы. Примеры. Композиция машин Тьюринга. Примеры. Тезис Тьюринга и его обоснование. Тема 5. Нормальные алгорифмы Маркова Нормальные алгоритмы Маркова. Формулы подстановки и схемы. Выполнение алгорифма. Примеры. Принцип нормализации и его обоснование. Тема 6. Сложность алгоритма и классы сложности задач Понятие вычислительной сложности (по времени и памяти) алгоритма и его применение для анализа алгоритмов. Основные методы и приёмы анализа сложности. Сложность алгоритмов с ветвлениями, циклами. Сложность рекурсивных алгоритмов. Оптимизация алгоритмов. Сложность задач. Задачи полиномиальной и экспоненциальной сложности (труднорешаемые задачи). Сводимость и другие классы сложности. Примеры. Тема 7. Формальные грамматики и определения языка программирования, способы описания языков Понятие формальной грамматики. Грамматики как способ определения синтаксиса языков программирования. Способы описания синтаксиса языков программирования: металингвистические формулы и диаграммы Вирта. Примеры.
  • Раздел 3. Работа в Microsoft Visual Studio .NET
    Тема 8. Интегрированная среда разработки Microsoft Visual Studio Многофайловая организация программы (модуль, проект, решение, пространства имен, сборка). Виды проектов. Создание нового проекта. Основные части визуальной среды разработки Visual Studio .NET. Окно проводника решения (Solution Explorer). Файлы проекта. Свойства проекта. Конфигурация проектов. Редактор кода. Иерархическая структура программного кода. Контекстный поиск и замена. IntelliSense (выпадающий список-подсказка). Окно Object Browser. Окно Server Explorer. Перемещение и изменение размеров окон инструментов. Тема 9. Отладка программ Microsoft Visual Studio Использование режима останова. Диагностические сообщения в окне вывода. Панель инструментов Debug. Окна отладки. Утверждения в управляемом коде. IntelliTrace. Удаленная отладка. Тема 10. Рефакторинг программного кода Рефакторинг для извлечения метода. Переименовать рефакторинг. Рефакторинг для инкапсуляции поля. Рефакторинг для извлечения интерфейса. Рефакторинг для удаления параметров. Рефакторинг для упорядочения параметров. Фрагменты кода (#region и др.).
  • Раздел 4. Алгоритмизация и программирование
    Тема 11. Алгоритмы с циклами Обработка числовых последовательностей. Поиск элемента в массиве. Определение максимального и минимального значений. Рекуррентные соотношения. Вложенные циклы. Тема 12. Одномерные и многомерные массивы Инициализация массива и вывод его на экран. Обработка элементов массива. Расчет суммы или количества элементов массива, удовлетворяющих некоторому условию. Поиск максимума и минимума. Изменение исходного массива. Копирование и фильтрация массивов. Тема 13. Строки символов Работа с символами строки. Обработка строк с использованием оператора цикла с параметром. Обработка строк с использованием операторов цикла с условием. Изменение исходных строковых величин. Обработка цифр в строке. Тема 14. Рекурсивные алгоритмы Понятие рекурсии. Рекурсивные функции и рекурсивные алгоритмы. Рекурсивная реализация алгоритмов. Анализ механизма рекурсивного вызова. Дерево рекурсивных вызовов. Примеры рекурсивных алгоритмов.
Элементы контроля

Элементы контроля

  • неблокирующий Письменная контрольная работа
  • неблокирующий Домашнее задание №1
  • неблокирующий Домашнее задание №2
  • неблокирующий Домашнее задание №3 (самостоятельная работа)
  • неблокирующий Экзамен
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (3 модуль)
    0.1 * Домашнее задание №1 + 0.1 * Домашнее задание №2 + 0.1 * Домашнее задание №3 (самостоятельная работа) + 0.3 * Письменная контрольная работа + 0.4 * Экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • Подбельский В. В. - ПРОГРАММИРОВАНИЕ. БАЗОВЫЙ КУРС С#. Учебник для бакалавриата и специалитета - М.:Издательство Юрайт - 2019 - 369с. - ISBN: 978-5-534-10616-9 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/programmirovanie-bazovyy-kurs-s-439068
  • Трофимов В. В., Павловская Т. А. ; Под ред. Трофимова В.В. - АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ. Учебник для академического бакалавриата - М.:Издательство Юрайт - 2019 - 137с. - ISBN: 978-5-534-07834-3 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/algoritmizaciya-i-programmirovanie-423824

Рекомендуемая дополнительная литература

  • Зыков С. В. - ПРОГРАММИРОВАНИЕ. Учебник и практикум для академического бакалавриата - М.:Издательство Юрайт - 2019 - 320с. - ISBN: 978-5-534-02444-9 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/programmirovanie-433432