Компьютерные науки

Основы программирования для математиков

Программа по алгоритмизации и программированию на языке Си с опорой на математический аппарат. Рассматриваются архитектура ПК, ассемблер и реализация сложных структур данных.
Студентов 17226 Выпускников 1182 Для всех
690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Объем

36 час.
Длительность

30 дней
Нагрузка в неделю

9 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Рассматриваются понятия исполнителя, алгоритмического языка, типов данных и управляющих конструкций. Изучаются методы разработки циклов на основе инвариантов и теория индуктивных функций для вычислений на последовательностях.
Цели
  • Сформировать алгоритмическое мышление и понимание базовых концепций программирования.
  • Ознакомить с математическими методами построения корректных программных кодов.
Чему я научусь?
  • Разрабатывать алгоритмы с использованием базовых управляющих структур и типов данных.
  • Применять метод инвариантов для доказательства правильности и оптимизации циклов.

Авторы

Борисенко Владимир Витальевич
Борисенко Владимир Витальевич
Кандидат физико-математических наук, старший научный сотрудник лаборатории вычислительных методов при кафедре вычислительной математики механико-математического факультета МГУ.
Чему я научусь?
  • Разрабатывать алгоритмы с использованием базовых управляющих структур и типов данных.
  • Применять метод инвариантов для доказательства правильности и оптимизации циклов.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 Общее понятие алгоритма. Управляющие конструкции алгоритмического языка. Понятие переменной "Рассматривается общее понятие алгоритма и дается краткий обзор существующих алгоритмических языков. Вводится неформальный алгоритмический язык -... "Рассматривается общее понятие алгоритма и дается краткий обзор существующих алгоритмических языков. Вводится неформальный алгоритмический язык - псевдокод, максимально приближенный к естественному языку. Рассматриваются основные конструкции алгоритмического языка - алгоритм, ветвление, цикл ещё
Общее понятие алгоритма. Управляющие конструкции алгоритмического языка. Понятие переменной тест для курса Основы программирования для математиков 30 мин
2 Типы переменных. Целые и вещественные переменные, представление целых и вещественных чисел в компьютере Определяется понятие типа переменной как множества значений, которые она может принимать, и набора операций, которые можно... Определяется понятие типа переменной как множества значений, которые она может принимать, и набора операций, которые можно совершать со значениями. Рассматриваются наиболее важные базовые типы алгоритмического языка - целые и вещественные числа. Подчеркивается особенность представления целых чисел в компьютере как элементов кольца вычетов, рассматривается интерпретация элементов кольца вычетов как неотрицательных чисел или чисел со знаком. Приводится представление вещественных чисел в компьютере в плавающей форме, рассматриваются особенности арифметики плавающих чисел. ещё
Типы переменных. Целые и вещественные переменные, представление целых и вещественных чисел в компьютере тест для курса Основы программирования для математиков 30 мин
3 Символьные и логические переменные и выражения. Массивы и текстовые строки Рассматриваются символьные переменные и способы кодирования символов. Вводится логический тип и логические выражения, подчеркивается отличие логических... Рассматриваются символьные переменные и способы кодирования символов. Вводится логический тип и логические выражения, подчеркивается отличие логических выражений от арифметических: сокращенное вычисление результата. Определяется конструкция массива. Рассматриваются возможные способы представления текстовых строк. ещё
Символьные и логические переменные и выражения. Массивы и текстовые строки тест для курса Основы программирования для математиков 30 мин
4 Вычисление функций на последовательностях Вычисление функции на последовательности элементов встречается как фрагмент в большинстве реальных программ. Рассматривается общая схема вычисления... Вычисление функции на последовательности элементов встречается как фрагмент в большинстве реальных программ. Рассматривается общая схема вычисления функций на последовательностях, основанная на понятии индуктивной функции и индуктивного расширения. Применение общей схемы иллюстрируется на примерах - вычисление суммы и максимума последовательности, схема Горнера вычисления значения многочлена и его производной и т.п. ещё
Вычисление функций на последовательностях тест для курса Основы программирования для математиков 30 мин
5 Построение цикла с помощью инварианта "Рассматривается схема построения цикла ""пока"" с помощью инварианта, т.е. утверждения, которое сохраняется при каждом выполнении тела... "Рассматривается схема построения цикла ""пока"" с помощью инварианта, т.е. утверждения, которое сохраняется при каждом выполнении тела цикла. Применение этой схемы дает возможность сознательно строить алгоритм и доказывать правильность его работы по тексту, не прибегая к тестированию. Применение схемы иллюстрируется на примерах: алгоритм Евклида вычисления наибольшего общего делителя, алгоритм быстрого возведения в степень, расширенный алгоритм Евклида, приближенное вычисление логарифма без использования разложения в ряд." ещё
Построение цикла с помощью инварианта тест для курса Основы программирования для математиков 30 мин
6 Устройство компьютера. Оперативная память, процессор, регистры процессора. Аппаратный стек Рассматривается устройство компьютера, построенного по фон-Неймановской архитектуре. Приводятся основные составные части компьютера: процессор, оперативная память, шина,... Рассматривается устройство компьютера, построенного по фон-Неймановской архитектуре. Приводятся основные составные части компьютера: процессор, оперативная память, шина, внешние устройства. Рассматриваются общие принципы построения и работы процессора, указываются важнейшие регистры процессора и алгоритм его работы. Дается классификация CISC и RISC-процессоров. Рассматривается аппаратный стек и его использование в командах вызова подпрограмм и для размещения локальных переменных. ещё
Устройство компьютера. Оперативная память, процессор, регистры процессора. Аппаратный стек тест для курса Основы программирования для математиков 30 мин
7 Машинно-независимый Ассемблер RTL и Ассемблер Intel 80x86. Внешние устройства и прерывания. Виртуальная память и поддержка параллельных задач Рассматривается способ записи программ на языке RTL (Register Transfer Language), представляющем собой Ассемблер, не зависящий от... Рассматривается способ записи программ на языке RTL (Register Transfer Language), представляющем собой Ассемблер, не зависящий от команд конкретного процессора. Приводятся примеры записи программ на RTL и на Ассемблере процессора Intel 80386. Кратко рассматриваются более сложные принципы работы компьютера: взаимодействие с внешними устройствами, асинхронные и синхронные прерывания, использование виртуальной памяти для поддержки параллельных задач, процессы, нити и их синхронизация. ещё
Машинно-независимый Ассемблер RTL и Ассемблер Intel 80x86. Внешние устройства и прерывания. Виртуальная память и поддержка параллельных задач тест для курса Основы программирования для математиков 30 мин
8 Основы языка Си: структура Си-программы, базовые типы и конструирование новых типов, операции и выражения Лекция посвящена введению в язык Си. Объясняются общие принципы построения Си-программы: разбиение проекта на h- и... Лекция посвящена введению в язык Си. Объясняются общие принципы построения Си-программы: разбиение проекта на h- и c-файлы, т.е. разделение интерфейса и реализации, использование препроцессора. Приводятся базовые типы языка Си, конструкции массива и указателя, позволяющие строить новые типы, а также модификаторы типов. Рассматриваются всевозможные операции и выражения языка Си. ещё
Основы языка Си: структура Си-программы, базовые типы и конструирование новых типов, операции и выражения тест для курса Основы программирования для математиков 30 мин
9 Управляющие конструкции языка Си. Представление программ в виде функций. Работа с памятью. Структуры "Рассматриваются управляющие конструкции языка Си: ветвления ""if-else"" и ""if-else if"", циклы ""while"" и ""for"". Приводятся также... "Рассматриваются управляющие конструкции языка Си: ветвления ""if-else"" и ""if-else if"", циклы ""while"" и ""for"". Приводятся также конструкции, которых лучше избегать: ""switch"", ""do-while"", ""goto"". Рассматривается представление программы в виде набора функций, прототипы функций, методы передачи входных и выходных параметров. Перечисляются различные виды памяти: статическая, стековая, динамическая (куча) и способы работы с памятью в Си. Вводится составной тип данных ""структура"". Материал иллюстрируется многочисленными примерами программ: решение квадратного уравнения, вычисление квадратного корня, вычисление НОД двух чисел и расширенный алгоритм Евклида, печать N первых простых чисел, рекурсивный обход дерева и др." ещё
Управляющие конструкции языка Си. Представление программ в виде функций. Работа с памятью. Структуры тест для курса Основы программирования для математиков 30 мин
10 Технология программирования на Си: представление матриц, работа с файлами и с текстами "Приводятся правильные и неправильные способы реализации матриц и многомерных массивов на языке Си. Работа с матрицами... "Приводятся правильные и неправильные способы реализации матриц и многомерных массивов на языке Си. Работа с матрицами иллюстрируется на примере приведения матрицы к ступенчатому виду методом Гаусса. Рассматриваются методы работы с файлами, использующие функции ввода-вывода из стандартной библиотеки ANSI. Приводятся способы работы с символами и текстовыми строками с помощью функций стандартной библиотеки. Материал иллюстрируется примерами, включающими программу ""wc"" подсчета символов, слов и строк в файле и программу ""Записная книжка"", которая позволяет находить телефон человека по его имени, а также сохранять и модифицировать содержимое книжки." ещё
Технология программирования на Си: представление матриц, работа с файлами и с текстами тест для курса Основы программирования для математиков 30 мин
11 Структуры данных: общее понятие, реализация. Простейшие структуры данных: очередь, стек. Использование стека и обратная польская запись "Дается общее понятие структуры данных как исполнителя, который организует работу с данными: хранение, добавление и удаление,... "Дается общее понятие структуры данных как исполнителя, который организует работу с данными: хранение, добавление и удаление, поиск и т.п. Рассматриваются реализации одних структур на базе других, в частности, реализации на базе массива. Приводятся наиболее важные из простейших структур данных: очередь и стек, а также их непрерывные реализации на базе массива. Даются многочисленные примеры использования стека в программировании. Рассматривается обратная польская запись формулы (знак операции после аргументов) и способ ее вычисления на стековой машине. В качестве примера использования обратной польской записи рассматривается графический язык PostScript. Материал иллюстрируется проектом ""Cтековый калькулятор"", реализованным на языке Си." ещё
Структуры данных: общее понятие, реализация. Простейшие структуры данных: очередь, стек. Использование стека и обратная польская запись тест для курса Основы программирования для математиков 30 мин
12 Ссылочные реализации структур данных. Списки и деревья. Реализации множества: с помощью бинарного поиска, на базе сбалансированных деревьев, хеширование "Рассматриваются ссылочные реализации структур данных, в которых элементы хранятся в произвольном порядке, при этом каждый элемент... "Рассматриваются ссылочные реализации структур данных, в которых элементы хранятся в произвольном порядке, при этом каждый элемент хранит ссылки на соседей. Ссылочные реализации позволяют избавиться от массовых операций при удалении или добавлении элементов в середине структуры. Приводятся типичные примеры структур, для которых применяются ссылочные реализации: одно- и двунаправленные списки, деревья. Рассматривается важнейшая структура данных: множество и нагруженное множество. Приводятся различные способы реализации множества: 1) непрерывная реализация с последовательным или с бинарным поиском ещё
Ссылочные реализации структур данных. Списки и деревья. Реализации множества: с помощью бинарного поиска, на базе сбалансированных деревьев, хеширование тест для курса Основы программирования для математиков 30 мин
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

Какой документ я получу?

Сертификат

Выдаётся автоматически после успешного завершения программы.

Удостоверение о повышении квалификации

Выдается при наличии среднего специального или высшего образования (необходимые документы).

Стоимость программы

690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.