3470
Комментарий: first mockup
|
10050
|
Удаления помечены так. | Добавления помечены так. |
Строка 1: | Строка 1: |
Примерный распорядок дня * 10:00-10:30 — повторение и ответы на вопросы * 10:30-14:00 — лекции+семинары * 14:00-14:30 — обед * 14:30-16:00 — практика == Тематический план == Предполагается последовательно проходить этот план, расставляя пометки, сколько удалось сделать за день. * {*} — лабораторные работы / семинары (воспроизведение доски или тривиальные упражнения) * {i} — практические задания Рекомендации по самостоятельному изучению * Д/З: установить [[http://python.org|Python]] и [[http://geany.org|Geany]] (можно другие IDE) дома, если есть цель научиться чему-то ненулевому * Д/З: Щёлкать [[py3tut:|tutorial]] (определяем, кому интересно) |
|
Строка 2: | Строка 15: |
- Орг: конспекты (c двух строрнон: Linux+Python), практика обязательна - FOSS: сообщество и ПО, Linux, Python - Linux: «цветочек»+ ⇒ командная строка - команды - программа - интеграция - переменные - где лежат команды (пространство имён) - PATH - ls -l / chmod - Python: - командная строка - объекты, их типы - действия над объектами - неявная динамическая типизация - программа на Python - Сценарий Linux, shebang - Использование geany - преобразование типов, type() (в т. ч. type(a)(b)) и простейший ввод-вывод - связывание объектов именами, dir() - Практика: - примитивный сценарий на shell - вычисление формул - ручное развёртывание бинарного возведения в степень - *TODO* |
* Знакомство, определение уровня знаний и глубины изложения (утро) * Орг: конспекты (c двух сторон: Linux+Python), практика обязательна * FOSS: сообщество и ПО, Linux, Python * Linux и командная строка: * «цветочек»+ * Ядро, программный интерфейс * Утилиты, командный интерфейс * ФС, пространство имён, файловые объекты * ⇒ командная строка (введение) * КС как диалог * shell: интерпретатор командной строки, ЯП, оболочка надо другими программами * договорённости о командной строке (ключи) * переменные, где лежат команды (пространство имён), PATH * Примеры команд: - ls, cp, rm, mv, mkdir, echo, перенаправление В/В * имена файлов, ln, ls -i * Встроенная помощь man * {*} * посмотреть содержимое корня * посмотреть все файлы в текущем каталоге * посмотреть документацию к известным командам * создать файл, переименовать * создать каталог, скопировать туда файл, удалить каталог * Python * Командная строка * объекты, их типы * действия над объектами * неявная динамическая типизация * преобразование типов, type() (в т. ч. type(a)(b)) и простейший ввод-вывод * пространства имён, связывание объектов именами, dir() * множественное связывание, id() * help() * {*} * вычисление формул * поэтапное вычисление формул с использованием имён * online python tutor: демонстрация связывания * Сценарии * Текстовый редактор vs IDE * Linux, shebang * программа на Python * {*} * Использование geany * примитивный сценарий на shell * сделать сценарий исполняемым и переместить в каталог `$HOME/bin/` * примитивный сценарий на Python == День 2 == * Python * понятие о модулях, `from math import *` * {i} * ручное развёртывание бинарного возведения в степень (например, как получить 3^21^?) * [[http://narhoz-chita.ru/zadachnik/Glava01/index01.htm|вычисление формул]] * условные операторы и выражения * логический тип, операции сравнения * условное выражение a if b else c * базовый if * форматирование отступами * if / elif* / else * {*} * ввести два числа, вывести наибольшее * условным выражением * условным оператором * ввести два числа, вывести, больше, меньше или равно первое второму * ввести три числа, проверить неравенство треугольника (вложенный if) * {i} * ввести три числа, найти наибольшее (вложенный if) * условным выражением * условным оператором * алгебра логики * пустой объект, примеры * ⇒ ''любое'' выражение в условии * таблицы истинности * логические операции Python, их таблицы истинности * примеры * {*} * ввести три числа, проверить неравенство треугольника (с помощью `and`) * {i} * биквадратное уравнение с ненулевым '''a''' * условные формулы * цикл while * каноническая схема цикла: инициализация, проверка условия, тело, изменение * пример: цикл по вводу * {*} * подсчёт произведения (ввод до 0) * сумма N элементов арифметической прогрессии (циклом) * факториал * '''TODO''' * {i} * с какого элемента сумма арифметической прогрессии превысит N? * таблица умножения на N (в столбик) * подсчёт среднего (ввод до 0) * '''TODO''' * Python * Циклы (более сложные случаи) * условия внутри циклов, break, continue * поиск первого, else * вложенные циклы * {*} * Сумма только положительных (ввод до 0) * одновременный подсчёт суммы и произведения положительных чисел (используется continue для отрицательных) * ввести ненулевые числа, проверить, есть ли среди них отрицательные * без else (с break) * с else * большая таблица умножения в столбик * {i} * таблица умножения в виде матрицы ''по столбцам'' (без форматирования) * Последовательности (введение) * Хранимые (строки, кортежи, списки) * индексирование, в т. ч. отрицательное * операции поэлементного сравнения * операция `is` на примере списков * операции `+` и `*` * секционирование * обычное * с шагом * умолчания * {*} * какая последовательность больше и почему? * начальный, средний и конечный элемент * элементы, стоящие на 1,4,7, и т. д. местах (NB off by 1) * {i} * сначала элементы, стоящие на нечётных местах, затем — на чётных, задом наперёд * цикл прохода по последовательности for * break, continue, else * {*} * выбор максимума * поиск 0 * '''TODO''' * Вычисляемые (range(), enumerate()) * типичный for * {*} * переписать на for кое-какие примеры с while * {i} * переписать на for остальные * Конструктор списка * {*} * '''TODO''' различных свойств * {i} * '''TODO''' различных свойств * Как работает множественное связывание * распаковка последовательностей при связывании * в цикле for (последовательность последовательностей) * `a,b,*c,d = "Qwertyuiop"` |
Строка 29: | Строка 157: |
== День 2 == - Python - условные операторы и выражения - условное выражение a if b else c - базовый if, форматирование отступами - if / elif / else - примеры - пустой объект, примеры - ⇒ _любое_ выражение в условии - операции сравнения - алгебра логики, таблицы истинности - логические операции Python, их таблицы истинности - примеры - цикл while (простой вариант) - использование math - Практика - нер-во тр-ка - биквадратное уравнение с ненулевым a - условные формулы - таблица умножения на N - цикл по вводу - *TODO* |
|
Строка 52: | Строка 158: |
== День 3 == | ----- ''TODO'' Здесь пока не разобрано |
Строка 54: | Строка 162: |
- Последовательности (введение) - Хранимые (строки, кортежи, списки) - индексирование, в т. ч. отрицательное - секционирование всякое - Вычисляемые (range(), enumerate()) - цикл прохода по последовательности for - Каноническая схема цикла - break, continue - поиск первого, else - вложенные циклы - ленивый ввод с помощью eval(input()) - методы объектов, dir(объект) — введение - форматирование строк - Практика - Таблица умножения - *TODO*! |
|
Строка 71: | Строка 163: |
== День 4 == | . - Функции, пространства имён, duck typing, распаковка/запаковка параметров, рекурсия |
Строка 73: | Строка 167: |
- Функции | - методы объектов, dir(объект) — введение - методы списков |
Строка 75: | Строка 170: |
== День 5 == | |
Строка 77: | Строка 171: |
- объекты и методы - списки и их методы - a is b |
- строки и их методы - форматирование строк |
Строка 81: | Строка 174: |
== День 6 == | |
Строка 83: | Строка 175: |
- строки - словари |
|
Строка 86: | Строка 176: |
== День 7 == | . - словари * globals(), locals(), распаковка/запаковка именованных параметров |
Строка 88: | Строка 180: |
- Классы | * Генераторы, конструкторы генераторов |
Строка 90: | Строка 182: |
== День 8 == | |
Строка 92: | Строка 183: |
- Ещё классы и примеры | * Модули как пространства имён . - Классы, …, перегрузка операций |
Строка 94: | Строка 186: |
== День 9 == - Какой-нибудь фреймворк |
- Python |
Строка 97: | Строка 188: |
== День 10 == - Использование этого фреймворка |
. - Ещё классы, объектное планирование и ООП - Python / OS . - модули os, sys; написание кроссплаформенных приложений - Python / OS . - модуль subprocess |
Примерный распорядок дня
- 10:00-10:30 — повторение и ответы на вопросы
- 10:30-14:00 — лекции+семинары
- 14:00-14:30 — обед
- 14:30-16:00 — практика
Тематический план
Предполагается последовательно проходить этот план, расставляя пометки, сколько удалось сделать за день.
— лабораторные работы / семинары (воспроизведение доски или тривиальные упражнения)
— практические задания
Рекомендации по самостоятельному изучению
Д/З: установить Python и Geany (можно другие IDE) дома, если есть цель научиться чему-то ненулевому
Д/З: Щёлкать tutorial (определяем, кому интересно)
День 1
- Знакомство, определение уровня знаний и глубины изложения (утро)
- Орг: конспекты (c двух сторон: Linux+Python), практика обязательна
- FOSS: сообщество и ПО, Linux, Python
- Linux и командная строка:
- «цветочек»+
- Ядро, программный интерфейс
- Утилиты, командный интерфейс
- ФС, пространство имён, файловые объекты
- ⇒ командная строка (введение)
- КС как диалог
- shell: интерпретатор командной строки, ЯП, оболочка надо другими программами
- договорённости о командной строке (ключи)
- переменные, где лежат команды (пространство имён), PATH
- Примеры команд: - ls, cp, rm, mv, mkdir, echo, перенаправление В/В
- имена файлов, ln, ls -i
- Встроенная помощь man
- посмотреть содержимое корня
- посмотреть все файлы в текущем каталоге
- посмотреть документацию к известным командам
- создать файл, переименовать
- создать каталог, скопировать туда файл, удалить каталог
- «цветочек»+
- Python
- Командная строка
- объекты, их типы
- действия над объектами
- неявная динамическая типизация
- преобразование типов, type() (в т. ч. type(a)(b)) и простейший ввод-вывод
- пространства имён, связывание объектов именами, dir()
- множественное связывание, id()
- help()
- вычисление формул
- поэтапное вычисление формул с использованием имён
- online python tutor: демонстрация связывания
- Командная строка
- Сценарии
- Текстовый редактор vs IDE
- Linux, shebang
- программа на Python
- Использование geany
- примитивный сценарий на shell
сделать сценарий исполняемым и переместить в каталог $HOME/bin/
- примитивный сценарий на Python
День 2
- Python
понятие о модулях, from math import *
ручное развёртывание бинарного возведения в степень (например, как получить 321?)
- условные операторы и выражения
- логический тип, операции сравнения
- условное выражение a if b else c
- базовый if
- форматирование отступами
- if / elif* / else
- ввести два числа, вывести наибольшее
- условным выражением
- условным оператором
- ввести два числа, вывести, больше, меньше или равно первое второму
- ввести три числа, проверить неравенство треугольника (вложенный if)
- ввести два числа, вывести наибольшее
- ввести три числа, найти наибольшее (вложенный if)
- условным выражением
- условным оператором
- ввести три числа, найти наибольшее (вложенный if)
- алгебра логики
- пустой объект, примеры
⇒ любое выражение в условии
- таблицы истинности
- логические операции Python, их таблицы истинности
- примеры
ввести три числа, проверить неравенство треугольника (с помощью and)
биквадратное уравнение с ненулевым a
- условные формулы
- цикл while
- каноническая схема цикла: инициализация, проверка условия, тело, изменение
- пример: цикл по вводу
- подсчёт произведения (ввод до 0)
- сумма N элементов арифметической прогрессии (циклом)
- факториал
TODO
- с какого элемента сумма арифметической прогрессии превысит N?
- таблица умножения на N (в столбик)
- подсчёт среднего (ввод до 0)
TODO
- Python
- Циклы (более сложные случаи)
- условия внутри циклов, break, continue
- поиск первого, else
- вложенные циклы
- Сумма только положительных (ввод до 0)
- одновременный подсчёт суммы и произведения положительных чисел (используется continue для отрицательных)
- ввести ненулевые числа, проверить, есть ли среди них отрицательные
- без else (с break)
- с else
- большая таблица умножения в столбик
таблица умножения в виде матрицы по столбцам (без форматирования)
- Последовательности (введение)
- Хранимые (строки, кортежи, списки)
- индексирование, в т. ч. отрицательное
- операции поэлементного сравнения
операция is на примере списков
операции + и *
- секционирование
- обычное
- с шагом
- умолчания
- Хранимые (строки, кортежи, списки)
- какая последовательность больше и почему?
- начальный, средний и конечный элемент
- элементы, стоящие на 1,4,7, и т. д. местах (NB off by 1)
- сначала элементы, стоящие на нечётных местах, затем — на чётных, задом наперёд
- цикл прохода по последовательности for
- break, continue, else
- выбор максимума
- поиск 0
TODO
- Вычисляемые (range(), enumerate())
- типичный for
- переписать на for кое-какие примеры с while
- переписать на for остальные
- Конструктор списка
TODO различных свойств
TODO различных свойств
- Как работает множественное связывание
- распаковка последовательностей при связывании
- в цикле for (последовательность последовательностей)
a,b,*c,d = "Qwertyuiop"
- Циклы (более сложные случаи)
TODO Здесь пока не разобрано
- Python
- - Функции, пространства имён, duck typing, распаковка/запаковка параметров, рекурсия
- Python
- - методы объектов, dir(объект) — введение - методы списков
- Python
- - строки и их методы - форматирование строк
- Python
- - словари
- globals(), locals(), распаковка/запаковка именованных параметров
- Python
- Генераторы, конструкторы генераторов
- Python
- Модули как пространства имён
- - Классы, …, перегрузка операций
- Python
- - Ещё классы, объектное планирование и ООП
- Python / OS
- - модули os, sys; написание кроссплаформенных приложений
- Python / OS
- - модуль subprocess