课程概况
Курс «Алгоритмизация вычислений» будет вам интересен и просто необходим, если вы хотели бы изучить программирование с нуля и выйти на хороший базовый уровень, научиться составлять, понимать и анализировать алгоритмы.
В результате изучения курса вы сможете:
• записывать математическую постановку задачи;
• применять стандартные алгоритмы для решения задач;
• оценивать оптимальность алгоритмов и выбирать алгоритм, дающий лучшее решение задачи;
• проверять правильность алгоритма методом трассировки;
• кодировать алгоритмы с использованием технологии структурного программирования;
• отлаживать и тестировать программы.
Изучение данной дисциплины базируется на знании студентами основ математики, информатики и основ алгоритмизации в пределах программы средней школы, умении применять математический аппарат при выборе метода решения задачи.
Для освоения учебной дисциплины, студенты должны владеть школьными знаниями, получаемыми в процессе изучения указанных выше курсов.
Этот курс лежит в основе всего программирования. Можно сказать, что это фундамент, на котором будет строиться все дальнейшее обучение программированию. Мы будем решать задачи, постепенно переходя от простых к более сложным. В конечном итоге вы научитесь решать задачи обработки динамических списков, т.е. работать на хорошем базовом уровне.
Появились технические трудности? Обращайтесь на адрес: coursera@hse.ru
课程大纲
Основы алгоритмизации
Здравствуйте, уважаемые слушатели! На первой неделе курса мы рассмотрим различные подходы к составлению алгоритмов программ. Затем осознанно выберем систематический метод для решения задач, рассматриваемых в курсе. Также мы сравним различные способы записи алгоритмов. Кроме того, мы изучим классификацию команд, которые используются в алгоритмическом языке. По итогам недели предусмотрен тест для оценки полученных знаний. Желаем вам успехов в освоении материала!
Основные алгоритмические конструкции. Язык Pascal
На второй неделе мы продолжаем изучение алгоритмических конструкций и знакомимся с различными вариантами условной и циклической конструкции. Затем мы переходим к изучению языка Паскаль и рассматриваем описание различных объектов, а также ввод и вывод данных. После этого мы изучаем операции в языке Паскаль, а затем рассматриваем в качестве примера использования изученного материала программу для решения квадратного уравнения.
Циклы и примеры их использования
На третей неделе мы продолжаем изучение кодирования алгоритмических конструкций на языке Паскаль. Изучаем кодирование различных циклов, затем рассматриваем примеры использования циклов для решения задач. Основной задачей этой недели является выполнение первого задания на взаимное оценивание: "решение задачи по составлению итерационного алгоритма". Также мы знакомимся с понятием массива и начинаем изучение алгоритмов обработки одномерных массивов: вычисляем минимум и максимум.
Алгоритмы обработки одномерных массивов
На четвертой неделе мы изучаем несколько алгоритмов обработки одномерных массивов: вычисление суммы среднего арифметического, формирование новых массивов, алгоритмы удаления и вставки. Для всех изученных алгоритмов имеются готовые программы, которые приведены в разделе "материалы для самостоятельного изучения". Кроме того мы знакомимся с организацией надежного ввода данных.
Алгоритмы сортировки. Обработка матриц
Пятая неделя посвящена изучению алгоритмов сортировки массив. Рассматриваются метод "установки" и метод "пузырька". Затем изучаются алгоритмы обработки матриц (двумерных массивов).
Алгоритмы с досрочным выходом из цикла
Шестая неделя посвящена изучению алгоритмов с досрочным выходом из цикла. Досрочный выход подразумевает использование циклов с предусловием и с постусловием. Эти циклы могут завершаться раньше, чем будут просмотрены все элементы массива. Рассматриваются алгоритмы проверки присутствия, отсутствия и повторения.
Процедуры и функции
Изучаем подпрограммы - процедуры и функции, одно из наиболее важных понятий в программировании. Рассматриваем различные типы параметров и их свойства.
Решение задач с использованием процедур и функций
Восьмая неделя посвящена решению задач с использованием процедур и функций. Вы знакомитесь с понятием рекурсии. Также рассматривается пример разработки программы с использованием нисходящего проектирования.
Символьный тип данных. Строковый тип данных. Записи
Девятая неделя посвящена изучению процедур и функций для обработки символьных строк. Рассматривается решение нескольких задач обработки символьных строк. Также изучается тип "запись".
Файлы. Тип «множество»
На десятой неделе вы изучаете стандартные процедуры и функции для работы с файлами, рассматривается несколько задач с использованием файла для хранения исходных данных и результатов. Также рассматривается тип "множество".
Статические и динамические переменные. Указатели. Связанные списки
На этой неделе изучается понятие "указатель". Рассматриваются основные типы связанных списков. Изучаются процедуры формирования стека и очереди и вывода списка на экран.
Статические и динамические переменные. Указатели. Связанные списки
На заключительной неделе рассматривается решение задач обработки связанных списков. К связанным спискам применяются алгоритмы сортировки, вставки, удаления и реверса списка.