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

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

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

Преподаватели

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

Аннотация

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

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

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

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

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

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

  • Введение. Основы алгоритмизации.
  • Основные алгоритмические конструкции. Язык Pascal.
  • Циклы и примеры их использования
  • Алгоритмы обработки одномерных массивов
  • Алгоритмы обработки матриц
  • Алгоритмы с досрочным выходом из цикла.
  • Процедуры и функции.
  • Символьный тип данных. Строковый тип данных.
  • Файлы. Тип «множество».
  • Динамические структуры в языке Pascal.
  • Основные сведения о языке 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.2 * Coursera + 0.12 * Контрольная работа 1 + 0.06 * Лабораторная работа 1 + 0.08 * Лабораторная работа 2 + 0.08 * Лабораторная работа 3 + 0.08 * Лабораторная работа 4 + 0.04 * Лабораторная работа 5 + 0.02 * Лекции 1 + 0.04 * Лекции 2 + 0.04 * Семинары 1 + 0.04 * Семинары 2 + 0.2 * Экзамен 1
  • Промежуточная аттестация (4 модуль)
    0.12 * Контрольная работа 2 + 0.12 * Контрольная работа 3 + 0.068 * Лабораторная работа 10 + 0.04 * Лабораторная работа 11 + 0.06 * Лабораторная работа 6 + 0.06 * Лабораторная работа 7 + 0.08 * Лабораторная работа 8 + 0.092 * Лабораторная работа 9 + 0.04 * Лекции 3 + 0.04 * Лекции 4 + 0.04 * Семинар 3 + 0.04 * Семинар 4 + 0.2 * Экзамен 2
Список литературы

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

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

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

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

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