6321
Комментарий:
|
6829
|
Удаления помечены так. | Добавления помечены так. |
Строка 3: | Строка 3: |
Концепция: всё равно все сдавали ЕГЭ по информатике и кое-как понимают, что такое ЯП. Поэтому можно рассказать именно про Python'''3''' (а не как про Паскаль), но только в объёме, необходимом для объяснения алгоритмов. | == Аннотация === |
Строка 5: | Строка 5: |
Примерный план (без МТ/НАМ в начале и собственно алгоритмов в конце), вчерне разбитый по темам, но по часам не промеренный пока. | /!\ TODO |
Строка 7: | Строка 7: |
== Концепция == * Цели курса: - Заложить основы алгоритмического мышления - Дать эффективный язык описания алгоритмов и структур данных - Дать универсальный инструмент программирования * Задачи курса: - Познакомить с основами теории алгоритмов - Привить представление об ЭВМ как алгоритмическом исполнителе команд, и о языке программирования как о формализации таких команд - Развить навыки составления алгоритмов и отлаживания программ на языке Python3 - Познакомить с алгоритмами и структурами данных, используемыми при решении типовых задач == Лекции == 1. (введение) Интуитивное понятие алгоритма. Свойства алгоритмов. 1. (введение) Пример исполнителя (программируемый калькулятор): данные, команды, последовательное, условное и циклическое выполнение. 1. (введение) Алгоритм как преобразование слов из заданного алфавита. Машина Тьюринга. Нормальные алгоритмы Маркова. Тезис Тьюринга и принцип нормализации, их обоснование. 1. (введение) Алгоритмически неразрешимые проблемы. Неразрешимость проблем самоприменимости, останова и эквивалентности алгоритмов. |
|
Строка 14: | Строка 30: |
1. (пространства имён) Пространство имён объекта: поля и методы объекта. Методы последовательностей, строк и словарей. | |
Строка 18: | Строка 35: |
1. (пространства имён) Поля и методы объекта. Методы последовательностей, строк и словарей. | |
Строка 25: | Строка 41: |
1. (введение) Интуитивное понятие алгоритма. Свойства алгоритмов. 1. (введение) Пример исполнителя (программируемый калькулятор): данные, команды, последовательное, условное и циклическое выполнение. 1. (введение) Алгоритм как преобразование слов из заданного алфавита. Машина Тьюринга. Нормальные алгоритмы Маркова. Тезис Тьюринга и принцип нормализации, их обоснование. 1. (введение) Алгоритмически неразрешимые проблемы. Неразрешимость проблем самоприменимости, останова и эквивалентности алгоритмов. |
|
Строка 34: | Строка 46: |
1. (алгоритмы) Моделирование списков. Двунаправленные и циклические списки.Моделирование графов. Деревья. | 1. (алгоритмы) Моделирование списков. Двунаправленные и циклические списки. Моделирование графов. Деревья. |
Алгоритмы и алгоритмические языки: альтернативная версия
== Аннотация ===
TODO
Концепция
- Цели курса:
- - Заложить основы алгоритмического мышления - Дать эффективный язык описания алгоритмов и структур данных - Дать универсальный инструмент программирования
- Задачи курса:
- - Познакомить с основами теории алгоритмов - Привить представление об ЭВМ как алгоритмическом исполнителе команд, и о языке программирования как о формализации таких команд - Развить навыки составления алгоритмов и отлаживания программ на языке Python3 - Познакомить с алгоритмами и структурами данных, используемыми при решении типовых задач
Лекции
- (введение) Интуитивное понятие алгоритма. Свойства алгоритмов.
- (введение) Пример исполнителя (программируемый калькулятор): данные, команды, последовательное, условное и циклическое выполнение.
- (введение) Алгоритм как преобразование слов из заданного алфавита. Машина Тьюринга. Нормальные алгоритмы Маркова. Тезис Тьюринга и принцип нормализации, их обоснование.
- (введение) Алгоритмически неразрешимые проблемы. Неразрешимость проблем самоприменимости, останова и эквивалентности алгоритмов.
- (введение) ИКС и неформальное использование питона как калькулятора.
- (типы данных) Константы-конструкторы объектов. Операции над объектами. Интерпретация выражения: конструирование и удаление объектов.
- (типы данных) Последовательности. Доступ к элементу и секционирование. Множественный оператор именования, распаковка последовательностей.
- (пространство имён) Ссылки на объекты: имена; ссылки из составных объектов. Счётчик ссылок. Идентификаторы объектов и их сравнение.
- (операторы) Условный оператор. Блок операторов. Оператор цикла с условием. Каноническая схема цикла. Вложенные операторы.
- (операторы) Старшинство операций. Логические операции. Нулевой объект типа.
- (пространство имён) Функции: задание и оператор вызова. Локальное пространство имён. Позиционные и именованные параметры. Рекурсия.
- (пространства имён) Пространство имён объекта: поля и методы объекта. Методы последовательностей, строк и словарей.
- (алгоритмы) Хеширование. Хеш-функция, её назначение и свойства.
- (типы данных) Хешируемые объекты. Словари. Косвенная передача параметров функции. Функции с произвольным количеством и именами параметров.
- (операторы) Цикл с итерируемым объектом. Циклические конструкторы объектов.
- (типы данных) Генераторы: выражения-генераторы, повторно входимые функции (функции-генераторы). Работа цикла с итерируемым объектом.
- (пространства имён) Модуль как контейнер имён. Стандартные модули.
- (пространства имён) Класс как конструктор пространства имён. Экземпляр класса: динамические поля и поля класса. Методы. Вызов метода.
- (пространства имён) Спецметоды. Реализация операций над объектами путём задания спецметодов.
TODO: что ещё должно быть: Начало: Ещё:
- (алгоритмические языки) Оформление исходного кода: комментарии, строки документации, договорённости об именовании. Модернизация языка (PEP-ы).
- (алгоритмы) Понятие вычислительной сложности алгоритмов в худшем случае и в среднем. Поиск и бинарный поиск в упорядоченных последовательностях.
- (типы данных) Множества, байтовые массивы. Константные (хешируемые) варианты. Операции над множествами.
- (алгоритмы) Эффективность операций над структурами данных. Индексация в последовательностях и индексация в массивах. Эффективность интераторов в последовательностях.
- (алгоритмы) Моделирование списков. Двунаправленные и циклические списки. Моделирование графов. Деревья.
- (алгоритмы) Двоичные (бинарные) деревья. Обход дерева с использованием стека, очереди и рекурсии. Деревья поиска (сравнений), алгоритмы поиска, вставки и удаления элементов.
- …