Differences between revisions 13 and 14
Revision 13 as of 2017-07-02 15:10:20
Size: 7204
Editor: FrBrGeorge
Comment:
Revision 14 as of 2017-07-02 17:26:54
Size: 9477
Editor: FrBrGeorge
Comment:
Deletions are marked like this. Additions are marked like this.
Line 50: Line 50:
   * online python tutor: демонстрация связывания
Line 71: Line 72:
   * ввести два числа, вывести, больше, меньше или равно     * условным выражением
    * условным оператором
* ввести два числа, вывести, больше, меньше или равно первое второму
Line 75: Line 78:
    * условным выражением
    * условным оператором
Line 86: Line 91:
  * цикл while (простой вариант)   * цикл while
Line 96: Line 101:
   * таблица умножения на N    * таблица умножения на N (в столбик)
Line 99: Line 104:
 * Python
  * Циклы (более сложные случаи)
   * условия внутри циклов, break, continue
   * поиск первого, else
   * вложенные циклы
  * {*}
   * одновременный подсчёт суммы и произведения положительных чисел (используется 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
  * {*}
   * переписать на for остальные
  * Конструктор списка
  * {*}
   * '''TODO''' различных свойств
  * {i}
   * '''TODO''' различных свойств
  * Как работает множественное связывание
   * распаковка последовательностей при связывании
   * в цикле for (последовательность последовательностей)
   * `a,b,*c,d = "Qwertyuiop"`

Line 101: Line 158:

- Python

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

- Практика

 . - Таблица умножения - *TODO*!
Line 117: Line 164:
 - методы объектов, dir(объект) — введение
 - методы списков
Line 118: Line 167:
 . - объекты и методы - списки и их методы
  . - a is b
- Python
 - строки и их методы
 - форматирование строк
Line 123: Line 173:
 . - строки - словари  . - словари

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

Примерный распорядок дня (TODO: когда обед?)

  • 10:00-10:30 — повторение и ответы на вопросы
  • 10:30-14:30 — лекции+семинары
  • 14:30-15:00 — обед
  • 15:00-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()
      • понятие о модулях, from math import *

      • help()
    • {*}

      • вычисление формул
      • поэтапное вычисление формул с использованием имён
      • online python tutor: демонстрация связывания
    • {i}

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

  • Сценарии
    • Текстовый редактор vs IDE
    • Linux, shebang
    • программа на Python
    • {*}

      • Использование geany
      • примитивный сценарий на shell
      • сделать сценарий исполняемым и переместить в каталог $HOME/bin/

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

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

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

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

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

    • {i}

      • биквадратное уравнение с ненулевым a

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

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

    • {i}

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

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

      • одновременный подсчёт суммы и произведения положительных чисел (используется 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
    • {*}

      • переписать на for остальные
    • Конструктор списка
    • {*}

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

    • {i}

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

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


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

- Python

  • - Функции

- Python

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

- Python

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

- Python

  • - словари

- Python

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

- Python

  • - Классы

- Python

  • - Ещё классы и примеры

- Python / OS

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

- Python / OS

  • - модуль subprocess

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