Различия между версиями 1 и 24 (по 23 версиям)
Версия 1 от 2017-06-29 12:53:27
Размер: 3470
Редактор: ArsenyMaslennikov
Комментарий: first mockup
Версия 24 от 2017-07-05 07:29:57
Размер: 10162
Редактор: ArsenyMaslennikov
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 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
Строка 29: Строка 60:
== День 2 ==
 - Python
   - условные операторы и выражения
   - условное выражение a if b else c
   - базовый if, форматирование отступами
   - if / elif / else
   - примеры
   - пустой объект, примеры
   - ⇒ _любое_ выражение в условии
   - операции сравнения
   - алгебра логики, таблицы истинности
   - логические операции Python, их таблицы истинности
   - примеры
   - цикл while (простой вариант)
   - использование math
 - Практика
   - нер-во тр-ка
   - биквадратное уравнение с ненулевым a
   - условные формулы
   - таблица умножения на N
   - цикл по вводу
   - *TODO*
== День 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}
   * таблица умножения в виде матрицы ''по столбцам'' (без форматирования)
Строка 52: Строка 121:
== День 3 == == День 3 (5 июля) ==
  * Последовательности (введение)
   * Хранимые (строки, кортежи, списки)
    * индексирование, в т. ч. отрицательное
    * операции поэлементного сравнения
     * операция `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"`


-----
''TODO'' Здесь пока не разобрано
Строка 54: Строка 165:
  - Последовательности (введение)
  - Хранимые (строки, кортежи, списки)
    - индексирование, в т. ч. отрицательное
    - секционирование всякое
  - Вычисляемые (range(), enumerate())
  - цикл прохода по последовательности for
  - Каноническая схема цикла
  - break, continue
  - поиск первого, else
  - вложенные циклы
  - ленивый ввод с помощью eval(input())
  - методы объектов, dir(объект) — введение
  - форматирование строк
- Практика
  - Таблица умножения
  - *TODO*!
Строка 71: Строка 166:
== День 4 ==  . - Функции, пространства имён, duck typing, распаковка/запаковка параметров, рекурсия

Строка 73: Строка 170:
  - Функции  - методы объектов, dir(объект) — введение
 - методы списков
Строка 75: Строка 173:
== День 5 ==
Строка 77: Строка 174:
  - объекты и методы
  - списки и их методы
   - a is b
 - строки и их методы
 - форматирование строк
Строка 81: Строка 177:
== День 6 ==
Строка 83: Строка 178:
  - строки
  - словари
Строка 86: Строка 179:
== День 7 ==  . - словари
 * globals(), locals(), распаковка/запаковка именованных параметров
Строка 88: Строка 183:
  - Классы  * Генераторы, конструкторы генераторов
Строка 90: Строка 185:
== День 8 ==
Строка 92: Строка 186:
  - Ещё классы и примеры  * Модули как пространства имён
 . - Классы, …, перегрузка операций
Строка 94: Строка 189:
== День 9 ==
- Какой-нибудь фреймворк
- Python
Строка 97: Строка 191:
== День 10 ==
- Использование этого фреймворка
 . - Ещё классы, объектное планирование и ООП

- 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 остальные
  • Конструктор списка
  • {*}

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

  • {i}

    • 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

Python/Summer2017 (последним исправлял пользователь FrBrGeorge 2021-04-27 20:23:39)