• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2020/2021

Алгоритмизация и программирование

Статус: Курс обязательный (Информатика и вычислительная техника)
Направление: 09.03.01. Информатика и вычислительная техника
Когда читается: 1-й курс, 1-4 модуль
Формат изучения: с онлайн-курсом
Язык: русский
Кредиты: 12
Контактные часы: 140

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

Аннотация

Курс «Алгоритмизация и программирование» предназначен для студентов бакалавриата по направлениям «Информатика и вычислительная техника». Курс направлен на изучение, освоение и умение применять в рамках своей специализации технологии структурного программирования, изучение базовых элементов языков Паскаль и C/C++,а также стандартных алгоритмов обработки различных структур данных. В курсе рассматриваются такие темы как: Основы алгоритмизации. Основные алгоритмические конструкции. Язык Pascal. Циклы и примеры их использования. Алгоритмы обработки одномерных массивов. Алгоритмы обработки матриц. Алгоритмы с досрочным выходом из цикла. Процедуры и функции. Символьный тип данных. Строковый тип данных. Файлы. Тип «множество». Динамические структуры в языке Pascal. Основные сведения о языке C. Конструкции языка C. Использование указателей при обработке массивов и матриц. Функции в языке C. Распределение памяти. Классы памяти. Символьный и строковый тип данных. Структуры. Файлы. Динамическое распределение памяти. Списки. Бинарные деревья. Предложена тематика лабораторных и контрольных работ, лекций, семинарских занятий. Все материалы доступны студентам в форме презентаций.
Цель освоения дисциплины

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

  • Освоение технологии структурного программирования;
  • Изучение базовых элементов языков Паскаль и C/C++;
  • Изучение стандартных алгоритмов обработки различных структур данных;
  • Изучение приёмов разработки алгоритмов для обработки различных структур данных.
Планируемые результаты обучения

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

  • Знает основные способы записи алгоритмов. Умеет записать постановку задачи
  • Знает базовые конструкции (структуры) и базовые операции псевдокода.
  • Знает типы циклов и умеет правильно записать их на псевдокоде .Может выбрать тип цикла, который подходит для решения данной задачи. Может составить итерационный алгоритм и закодировать его.
  • Умеет использовать алгоритмы сортировки, удаления, вставки элементов , поиска минимума или максимума , формирования нового массива для решения задач обработки одномерного массива.
  • умеет осуществлять ввод и вывод матриц, а также использовать алгоритмы, изученные в теме 4 для обработки матриц.
  • Умеет использовать алгоритмы с досрочным выходом из цикла для обработки массивов и матриц.
  • Знает структуру простой программы на языке С. Знает основные типы данных, базовые операции (арифметические, логические и операции присваивания). Умеет кодировать арифметические выражения на языке С.
  • Знает кодирование всех алгоритмических конструкций на языке С.
  • Умеет использовать стандартные функции ввода и вывода данных
  • Знает понятие и назначение типа "указатель". Умеет использовать указатели при решении задач обработки массивов и матриц.
  • Знает характеристики классов памяти и основные отличия между ними.
  • Знает понятие функции. Умеет передавать параметры по значению и по адресу. Умеет использовать указатель на указатель.
  • Умеет использовать стандартные функции для обработки символьных строк при решении задач. Умеет использовать алгоритмы обработки символьных сток при решении задач. Умеет использовать указатели для обработки символьных строк.
  • Знает понятия структуры и файлового типа. Умеет применять стандартные алгоритмы для решения задач обработки файлов и структур.
  • Знает основные типы связанных списков. Умеет формировать и обрабатывать линейные однонаправленные списки - стек и очередь, т.е применяет стандартные алгоритмы для работы с этим типом данных.
  • Знает основные сведения о языке С++.
  • Знает основные приемы и особенности потокового ввода и вывода данных
  • Знает основные приемы работы со структурами и файлами в языке С++
Содержание учебной дисциплины

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

  • Введение. Основы алгоритмизации.
  • Основные алгоритмические конструкции.
  • Циклы и примеры их использования
  • Алгоритмы обработки одномерных массивов
  • Алгоритмы обработки матриц
  • Алгоритмы с досрочным выходом из цикла.
  • Основные сведения о языке C.
  • Конструкции языка C.
  • Форматный ввод и вывод данных.
  • Использование указателей при обработке массивов и матриц
  • Функции в языке C.
  • Распределение памяти. Классы памяти.
  • Символьный и строковый тип данных. Алгоритмы обработки строк
  • Структуры. Файлы в языке С.
  • Основные сведения о языке C++
  • Динамическое распределение памяти. Динамические структуры.
  • Потоковый ввод и вывод данных.
  • Структуры. Файлы в языке С++.
Элементы контроля

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

  • неблокирующий Лабораторная работа 1
    Решение задачи на компьютере с последующей защитой отчета. При несвоевременной защите отчета баллы за работу снижаются.
  • неблокирующий Контрольная работа 1
    Письменная работа 80 минут
  • неблокирующий Семинар 3
  • неблокирующий Семинары 1
  • неблокирующий Лекции 1
  • блокирует часть оценки/расчета Экзамен 1
  • блокирует часть оценки/расчета Экзамен 2
    Экзамен проводится в письменной форме (компьютерный тест) с использованием асинхронного прокторинга. Экзамен проводится на платформе https://moodle.org/, прокторинг на платформе Экзамус (https://hse.student.examus.net). К экзамену необходимо подключиться за 15 минут до начала. На платформе Экзамус доступно тестирование системы. Компьютер студента должен удовлетворять требованиям: (https://elearning.hse.ru/data/2020/05/07/1544135594/Технические%20требования%20к%20ПК%20студента.pdf) Для участия в экзамене студент обязан: заранее зайти на платформу прокторинга, провести тест системы, включить камеру и микрофон, подтвердить личность. Во время экзамена студентам запрещено: общаться (в социальных сетях, с людьми в комнате), использовать телефон, списывать. Во время экзамена студентам разрешено: пользоваться чистыми листами бумаги, ручкой. Кратковременным нарушением связи во время экзамена считае тся прерывание связи до 2 минут. Долговременным нарушением связи во время экзамена считается прерывание связи 2 минуты и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи аналогична процедуре сдачи. Преподаватель вправе освободить от сдачи экзамена студентов. Особо отличившихся при изучении Дисциплины и набравших накопленную оценку по Дисциплине выше 7 баллов, с выставлением им оценки «отлично» (8, 9, 10 баллов), преподаватель может выставить автоматы. Преподаватель объявляет список таких студентов не позднее, чем за два дня до экзамена. Для объявления оценок могут быть использованы электронные каналы передачи информации, регулярно используемые в процессе обучения.
  • неблокирующий Coursera
  • неблокирующий Лабораторная работа 2
  • неблокирующий Лекции 2
  • неблокирующий Семинары 2
  • неблокирующий Лекции 3
  • неблокирующий Лабораторная работа 3
  • неблокирующий Лабораторная работа 4
  • неблокирующий Лабораторная работа 5
  • неблокирующий Лабораторная работа 6
  • неблокирующий Лабораторная работа 7
  • неблокирующий Лабораторная работа 8
  • неблокирующий Лабораторная работа 9
  • неблокирующий Лабораторная работа 10
  • неблокирующий Лабораторная работа 11
  • неблокирующий Контрольная работа 2
  • неблокирующий Контрольная работа 3
  • неблокирующий Лекции 4
  • неблокирующий Семинар 4
Промежуточная аттестация

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

  • Промежуточная аттестация (2 модуль)
    0.04 * Coursera + 0.12 * Контрольная работа 1 + 0.06 * Лабораторная работа 1 + 0.04 * Лабораторная работа 2 + 0.2 * Лекции 1 + 0.08 * Лекции 2 + 0.04 * Лекции 3 + 0.04 * Семинар 3 + 0.02 * Семинары 1 + 0.08 * Семинары 2 + 0.2 * Экзамен 1 + 0.08 * Экзамен 2
  • Промежуточная аттестация (4 модуль)
    0.068 * Coursera + 0.2 * Контрольная работа 1 + 0.04 * Лабораторная работа 1 + 0.04 * Лабораторная работа 2 + 0.04 * Лабораторная работа 3 + 0.06 * Лекции 1 + 0.12 * Лекции 2 + 0.04 * Лекции 3 + 0.04 * Семинар 3 + 0.06 * Семинары 1 + 0.12 * Семинары 2 + 0.08 * Экзамен 1 + 0.092 * Экзамен 2
Список литературы

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

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

  • Ресурсно - эффективные компьютерные алгоритмы. Разработка и анализ : учеб. пособие для вузов, Ульянов, М. В., 2008

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

  • Искусство программирования. Т.1: Основные алгоритмы, Кнут, Д. Э., 2011
  • Искусство программирования. Т.2: Получисленные алгоритмы, Кнут, Д. Э., 2012
  • Искусство программирования. Т.3: Сортировка и поиск, Кнут, Д. Э., 2012