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

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

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

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

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

Аннотация

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

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

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

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

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

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

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

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

  • неблокирующий лабораторный практикум 1 модуль
    Лабораторная работа 1. Алгоритмы циклической структуры. Алгоритм «удаление путем сдвига». Алгоритмы поиска суммы, количества, среднего арифметического элементов массива. Лабораторная работа 2.Алгоритмы с досрочным выходом из цикла. Алгоритмы обработки целых чисел.
  • неблокирующий Лабораторный практикум 2 модуль
    Лабораторная работа 3.Использование функций. Лабораторная работа 4. Обработка символьных строк. Лабораторная работа 5.Программирование с использованием файлов
  • неблокирующий экзамен 2 модуль
  • неблокирующий семинар 1 модуль
  • неблокирующий Семинар 2 модуль
    Проверочные работы и ответы у доски
  • неблокирующий Лекции 1 модуль
    Проверочные работы или тесты на лекции
  • неблокирующий Лекции 2 модуль
    Письменная работа или тест на лекции
  • неблокирующий Контрольная работа 1
    Контрольная работа на компьютере в течение 80 минут
  • неблокирующий Лабораторный практикум 3 модуль
    1. Лабораторная работа 6. "Структуры. Файлы" 2. Лабораторная работа 7. Связанные списки. Динамические переменные" 3. Лабораторная работа 8. "Одномерные массивы. Двумерные массивы (с использованием указателей)"
  • неблокирующий Лабораторный практикум 4 модуль
    1. Лабораторная работа 9.Символьные строки. Подпрограммы" 2. Лабораторная работа 10. "Списки. Динамические переменные" 4. Лабораторная работа 11. "Рекурсия"
  • неблокирующий Семинар 4 модуль
  • неблокирующий Семинар 3 модуль
    Проверочная работа
  • неблокирующий Лекция 3 модуль
    Проверочная работа или тест на лекции
  • неблокирующий Лекции 4 модуль
    Проверочная работа или тест
  • неблокирующий Контрольная работа 3
    Решение задач на компьютере. 80 минут
  • неблокирующий Контрольная работа 4
    Контрольная работа. Решение задач на компьютере. 80 минут
  • неблокирующий Экзамен 4 модуль
    Тест в аудитории
Промежуточная аттестация

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

  • 2022/2023 учебный год 2 модуль
    0.28 * лабораторный практикум 1 модуль + 0.04 * Семинар 2 модуль + 0.08 * семинар 1 модуль + 0.04 * Лекции 2 модуль + 0.2 * Лабораторный практикум 2 модуль + 0.04 * Лекции 1 модуль + 0.12 * Контрольная работа 1 + 0.2 * экзамен 2 модуль
  • 2022/2023 учебный год 4 модуль
    0.12 * Контрольная работа 3 + 0.04 * Семинар 4 модуль + 0.04 * Лекции 4 модуль + 0.2 * Экзамен 4 модуль + 0.12 * Контрольная работа 4 + 0.04 * Семинар 3 модуль + 0.04 * Лекция 3 модуль + 0.2 * Лабораторный практикум 4 модуль + 0.2 * Лабораторный практикум 3 модуль
Список литературы

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

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

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

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

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