• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Computer Practice in Foundations of Algorithmization and Programming Techniques

2016/2017
Academic Year
RUS
Instruction in Russian
3
ECTS credits
Delivered at:
Department of Information Technologies in Business (Faculty of Computer Science, Economics, and Social Sciences)
Course type:
Compulsory course
When:
1 year, 1, 2 module

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

Аннотация

Настоящая программа учебной дисциплины устанавливает требования к образовательным результатам и результатам обучения студента и определяет содержание и виды учебных занятий и отчетности. Программа предназначена для преподавателей, ведущих дисциплину «Компьютерный практикум по основам алгоритмизации и методам программирования», учебных ассистентов и студентов направления подготовки 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 (самостоятельная работа)
    Отчет по самостоятельной работе студента по дисциплине «Компьютерный практикум по основам алгоритмизации и методам программирования» предоставляется в виде документа, содержащего описание всех пунктов выполнения задания. Отчет оформляется в соответствии с Правилами написания и оформления курсовых работ студентов образовательной программы бакалавриата «Программная инженерия» по направлению подготовки 09.03.04 Программная инженерия. Срок выполнения задания и предоставления отчета определяется преподавателем, ведущим лекции.
  • неблокирующий Письменная контрольная работа
  • неблокирующий Экзамен
Промежуточная аттестация

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

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

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

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

  • Алгоритмизация и программирование : Учебное пособие / С.А. Канцедал. - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2013. - 352 с.: ил.; 60x90 1/16. - (Профессиональное образование). (переплет) ISBN 978-5-8199-0355-1 - Режим доступа: http://znanium.com/catalog/product/391351
  • Введение в программирование на языке Visual C#: Учебное пособие / Гуриков С.Р. - М.:Форум, НИЦ ИНФРА-М, 2013. - 448 с.: 70x100 1/16. - (Высшее образование: Бакалавриат) (Переплёт 7БЦ) ISBN 978-5-91134-738-3 - Режим доступа: http://znanium.com/catalog/product/404441

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

  • Численные методы и программирование: Учебное пособие / В.Д. Колдаев; Под ред. Л.Г. Гагариной. - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2014. - 336 с.: ил.; 60x90 1/16. - (Профессиональное образование). (переплет) ISBN 978-5-8199-0333-9 - Режим доступа: http://znanium.com/catalog/product/452274