Differences between revisions 1 and 27 (spanning 26 versions)
Revision 1 as of 2017-06-29 12:53:27
Size: 3470
Comment: first mockup
Revision 27 as of 2017-07-05 13:56:19
Size: 11852
Editor: FrBrGeorge
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 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]] (определяем, кому интересно)
Line 2: Line 15:
 - Орг: конспекты (c двух строрнон: Linux+Python), практика обязательна
 - FOSS: сообщество и ПО, Linux, Python
 - Linux: «цветочек»+
   ⇒ командная строка
   - команды
   - программа
   - интеграция
   - переменные
   - где лежат команды (пространство имён)
     - PATH
     - ls -l / chmod
 - Python:
   - командная строка
   - объекты, их типы
   - действия над объектами
   - неявная динамическая типизация
   - программа на Python
   - Сценарий Linux, shebang
   - Использование geany
   - преобразование типов, type() (в т. ч. type(a)(b)) и простейший ввод-вывод
   - связывание объектов именами, dir()
 - Практика:
   - примитивный сценарий на shell
   - вычисление формул
   - ручное развёртывание бинарного возведения в степень
   - *TODO*

== День 2 ==
 - Python
   - условные операторы и выражения
   - условное выражение a if b else c
   - базовый if, форматирование отступами
   - if / elif / else
   - примеры
   - пустой объект, примеры
   - ⇒ _любое_ выражение в условии
   - операции сравнения
   - алгебра логики, таблицы истинности
   - логические операции Python, их таблицы истинности
   - примеры
   - цикл while (простой вариант)
   - использование math
 - Практика
   - нер-во тр-ка
   - биквадратное уравнение с ненулевым a
   - условные формулы
   - таблица умножения на N
   - цикл по вводу
   - *TODO*

== День 3 ==
- Python
  - Последовательности (введение)
  - Хранимые (строки, кортежи, списки)
    - индексирование, в т. ч. отрицательное
    - секционирование всякое
  - Вычисляемые (range(), enumerate())
  - цикл прохода по последовательности for
  - Каноническая схема цикла
  - break, continue
  - поиск первого, else
  - вложенные циклы
  - ленивый ввод с помощью eval(input())
  - методы объектов, dir(объект) — введение
  - форматирование строк
- Практика
  - Таблица умножения
  - *TODO*!

== День 4 ==
- Python
  - Функции

== День 5 ==
- Python
  - объекты и методы
  - списки и их методы
   - a is b

== День 6 ==
- Python
  - строки
  - словари

== День 7 ==
- Python
  - Классы

== День 8 ==
- Python
  - Ещё классы и примеры

== День 9 ==
- Какой-нибудь фреймворк

== День 10 ==
- Использование этого фреймворка
 * Знакомство, определение уровня знаний и глубины изложения (утро)
 * Орг: конспекты (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 (4 июля) ==
 * 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, их таблицы истинности
   * примеры
  * {*}
   * ввести три числа, проверить неравенство треугольника (с помощью `or`)
  * {i}
   * квадратное уравнение с ненулевым '''a'''
   * [[http://narhoz-chita.ru/zadachnik/Glava02/index02.htm|условные формулы №57]]
  * цикл while
   * каноническая схема цикла: инициализация, проверка условия, тело, изменение
   * пример: цикл по вводу
  * {*}
   * подсчёт произведения (ввод до 0)
   * сумма N элементов арифметической прогрессии (циклом)
   * факториал
   * '''TODO'''
  * {i}
   * с какого элемента сумма арифметической прогрессии превысит N?
   * таблица умножения на N (в столбик)
   * подсчёт среднего (ввод до 0)
   * '''TODO'''
 * Python
  * Циклы (более сложные случаи)
   * условия внутри циклов, break, continue
   * поиск первого, else
   * вложенные циклы
  * {*}
   * Сумма только положительных (ввод до 0)
   * одновременный подсчёт суммы и произведения положительных чисел (используется continue для отрицательных)
   * ввести ненулевые числа, проверить, есть ли среди них отрицательные
    * без else (с break)
    * с else
   * большая таблица умножения в столбик
  * {i}
   * таблица умножения в виде матрицы ''по столбцам'' (без форматирования)

== День 3 (5 июля) ==
  * Последовательности (введение)
   * Хранимые (строки, кортежи, списки)
    * индексирование, в т. ч. отрицательное
    * операции поэлементного сравнения
     * операция `is` на примере списков
    * операции `+` и `*`
    * секционирование
     * обычное
     * с шагом
     * умолчания
  * {*}
   * какая последовательность больше и почему?
   * начальный, средний и конечный элемент
   * элементы, стоящие на 1,4,7, и т. д. местах (NB off by 1)
  * {i}
   * сначала элементы, стоящие на нечётных местах, затем — на чётных, задом наперёд
  * цикл прохода по последовательности for
   * break, '''continue''', else
  * {*}
   * выбор максимума
   * поиск 0
   * '''TODO'''
  * Вычисляемые (range(), enumerate())
   * типичный for
  * {*}
   * переписать на for кое-какие примеры с while
  * {i}
   * переписать на for остальные
   * ввести последовательность чисел, вывести ''второй максимум'', то есть элемент, больше которого в последоватнльности только одно значение, например, для 1,1,2,2,7,7,3,3,5,5 сторой максимум — это 5
  * Конструктор списка
  * {*}
   * '''TODO''' различных свойств
  * {i}
   * '''TODO''' различных свойств
  * Конструктор генератора, работа генератора, цикл for и генераторы
  * Как работает множественное связывание
   * распаковка последовательностей при связывании
   * в цикле for (последовательность последовательностей)
   * `a,b,*c,d = "Qwertyuiop"`
 * {i}
  * Вывести все стороны и площади треугольников, стороны которых — однозначные положительные целые числа (не надо использовать конструктор, это жесть!)
   * использовать формулу Горона
   * не забыть, что 1 2 3, 1 3 2 и прочие перестановки — один и тот же треугольник, выводить один раз1
  * вывести таблицу умножения от 1 до 12:
'''
1*1 = 1 2*1 = 2 3*1 = 3
1*2 = 2 2*2 = 4 3*2 = 6
...
4*1 = 1
...
'''
  * Ввести строку, вывести, сколько в ней гласных (подсказка `c in "aeoiu"` :) ), методами не пользоваться
  * Ввести список запрещённых слов в формате "слово1","слово2",..., затем вводить строки до тех пор пока последняя не окажется пустой (это так же, как ввод до 0). Вывести, сколько строк содержали запрещённые слова

-----
''TODO'' Здесь пока не разобрано

- Python

 . - Функции, пространства имён, duck typing, распаковка/запаковка параметров, рекурсия


- Python
 - методы объектов, dir(объект) — введение
 - методы списков

- Python
 - строки и их методы
 - форматирование строк

- Python

 . - словари
 * globals(), locals(), распаковка/запаковка именованных параметров

- Python
 * Генераторы, конструкторы генераторов

- Python
 * Модули как пространства имён
 . - Классы, …, перегрузка операций

- Python

 . - Ещё классы, объектное планирование и ООП

- Python / OS

 . - модули os, sys; написание кроссплаформенных приложений

- Python / OS

 . - модуль subprocess

Примерный распорядок дня

  • 10:00-10:30 — повторение и ответы на вопросы
  • 10:30-14:00 — лекции+семинары
  • 14:00-14:30 — обед
  • 14:30-16:00 — практика

Тематический план

Предполагается последовательно проходить этот план, расставляя пометки, сколько удалось сделать за день.

  • {*} — лабораторные работы / семинары (воспроизведение доски или тривиальные упражнения)

  • {i} — практические задания

Рекомендации по самостоятельному изучению

  • Д/З: установить 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 (4 июля)

  • Python
    • понятие о модулях, from math import *

    • {i}

      • ручное развёртывание бинарного возведения в степень (например, как получить 321?)

      • вычисление формул

    • условные операторы и выражения
      • логический тип, операции сравнения
      • условное выражение a if b else c
      • базовый if
      • форматирование отступами
      • if / elif* / else
    • {*}

      • ввести два числа, вывести наибольшее
        • условным выражением
        • условным оператором
      • ввести два числа, вывести, больше, меньше или равно первое второму
      • ввести три числа, проверить неравенство треугольника (вложенный if)
    • {i}

      • ввести три числа, найти наибольшее (вложенный if)
        • условным выражением
        • условным оператором
    • алгебра логики
      • пустой объект, примеры
      • любое выражение в условии

      • таблицы истинности
      • логические операции Python, их таблицы истинности
      • примеры
    • {*}

      • ввести три числа, проверить неравенство треугольника (с помощью or)

    • {i}

    • цикл while
      • каноническая схема цикла: инициализация, проверка условия, тело, изменение
      • пример: цикл по вводу
    • {*}

      • подсчёт произведения (ввод до 0)
      • сумма N элементов арифметической прогрессии (циклом)
      • факториал
      • TODO

    • {i}

      • с какого элемента сумма арифметической прогрессии превысит N?
      • таблица умножения на N (в столбик)
      • подсчёт среднего (ввод до 0)
      • TODO

  • Python
    • Циклы (более сложные случаи)
      • условия внутри циклов, break, continue
      • поиск первого, else
      • вложенные циклы
    • {*}

      • Сумма только положительных (ввод до 0)
      • одновременный подсчёт суммы и произведения положительных чисел (используется continue для отрицательных)
      • ввести ненулевые числа, проверить, есть ли среди них отрицательные
        • без else (с break)
        • с else
      • большая таблица умножения в столбик
    • {i}

      • таблица умножения в виде матрицы по столбцам (без форматирования)

День 3 (5 июля)

  • Последовательности (введение)
    • Хранимые (строки, кортежи, списки)
      • индексирование, в т. ч. отрицательное
      • операции поэлементного сравнения
        • операция is на примере списков

      • операции + и *

      • секционирование
        • обычное
        • с шагом
        • умолчания
  • {*}

    • какая последовательность больше и почему?
    • начальный, средний и конечный элемент
    • элементы, стоящие на 1,4,7, и т. д. местах (NB off by 1)
  • {i}

    • сначала элементы, стоящие на нечётных местах, затем — на чётных, задом наперёд
  • цикл прохода по последовательности for
    • break, continue, else

  • {*}

    • выбор максимума
    • поиск 0
    • TODO

  • Вычисляемые (range(), enumerate())
    • типичный for
  • {*}

    • переписать на for кое-какие примеры с while
  • {i}

    • переписать на for остальные
    • ввести последовательность чисел, вывести второй максимум, то есть элемент, больше которого в последоватнльности только одно значение, например, для 1,1,2,2,7,7,3,3,5,5 сторой максимум — это 5

  • Конструктор списка
  • {*}

    • TODO различных свойств

  • {i}

    • TODO различных свойств

  • Конструктор генератора, работа генератора, цикл for и генераторы
  • Как работает множественное связывание
    • распаковка последовательностей при связывании
    • в цикле for (последовательность последовательностей)
    • a,b,*c,d = "Qwertyuiop"

  • {i}

    • Вывести все стороны и площади треугольников, стороны которых — однозначные положительные целые числа (не надо использовать конструктор, это жесть!)
      • использовать формулу Горона
      • не забыть, что 1 2 3, 1 3 2 и прочие перестановки — один и тот же треугольник, выводить один раз1
    • вывести таблицу умножения от 1 до 12:

1*1 = 1 2*1 = 2 3*1 = 3 1*2 = 2 2*2 = 4 3*2 = 6 ... 4*1 = 1 ...

  • Ввести строку, вывести, сколько в ней гласных (подсказка c in "aeoiu" :) ), методами не пользоваться

  • Ввести список запрещённых слов в формате "слово1","слово2",..., затем вводить строки до тех пор пока последняя не окажется пустой (это так же, как ввод до 0). Вывести, сколько строк содержали запрещённые слова


TODO Здесь пока не разобрано

- Python

  • - Функции, пространства имён, duck typing, распаковка/запаковка параметров, рекурсия

- Python

  • - методы объектов, dir(объект) — введение - методы списков

- Python

  • - строки и их методы - форматирование строк

- Python

  • - словари
  • globals(), locals(), распаковка/запаковка именованных параметров

- Python

  • Генераторы, конструкторы генераторов

- Python

  • Модули как пространства имён
  • - Классы, …, перегрузка операций

- Python

  • - Ещё классы, объектное планирование и ООП

- Python / OS

  • - модули os, sys; написание кроссплаформенных приложений

- Python / OS

  • - модуль subprocess

Python/Summer2017 (last edited 2021-04-27 20:23:39 by FrBrGeorge)