Язык Python
Летняя школа для учителей информатики
Георгий Курячий frbrgeorge@gmail.com
Вопросы, заданные слушателями
- Непонятные вопросы
Будет ли практика?
Сравните, пожалуйста, Python с другими языками программирования (Pascal, Си с разновидностями)
Оптимальный перечень ресурсов для изучения Python учителем, ранее с ним не работавшим?
Хотелось бы попасть к вам на курсы для учителей по теме «Решение олимпиадных задач и задач ЕГЭ, разработка проектов»
- Общие вопросы
Расскажите коротко о Python
По-моему, лучше самого Гвидо ни кто не скажет (имеется русский перевод)
- Интерпретируемый: и командная строка, и прямое исполнение
Кроссплатформенный: есть везде, даже в броузере
Высокоуровневый: прозрачная работа с памятью; таблицы, словари, итераторы, …; современная объектная модель
- Тем не менее содержит чрезвычайно простой в освоении базис
Понятный и читаемый: минимум синтаксического шума, ёмкость кода, достаточно «сахара», [самодокументируемый
Не без остроумных особенностей: синтаксическое форматирование, утиная типизация, объекты как основа
- Актуальный:
Больше двух сотен модулей «из коробки» (при этом мегабайтов на 50 с документацией)
Больше 80 тысяч модулей на портале PyPI, 87541 на 2016-08-30
- Свободная лицензия
В том числе на все модули с PyPI
- Представьте, пожалуйста, три аргумента: почему Python
- Для меня: простой, мощный, свободный
- Для школы: доступный, многоуровневый, актуальный
Основные особенности Python, достоинства и недостатки
- Недостатки:
- В полном объёме не для обычного школьника (см. далее замечание об ООП)
- Научиться создавать работающие программы существенно легче, чем научиться программировать
- Промышленное программирование требует серьёзных знаний и самодисциплины
- Не похож на ваш любимый ЯП, если ваш любимый ЯП — не Python
Слишком удобный, после него дети не хотят учить Си
- Недостатки:
- Методика
Нужно ли изучать Python как первый язык в школе и почему
- Коротко: пологая кривая научения, высокая читаемость, быстрый конечный результат
Есть ли смысл изучать python в гуманитарной школе (информатика раз в неделю), или кумира достаточно
- Если гуманитарий вообще будет программировать, то именно на Python
- Если не будет, это вопрос к психологам/методистам?
- Пропедевтика изучения Python
- Начальный уровень: общая компьютерная грамотность
- Уровень «уверенного программирования»: твёрдое представление о компьютере, как об исполнителе, знание алгебры логики и математики, знакомство с основными алгоритмами
- «Продвинутый» уровень: представление о целях и задачах различных языков программирования, представление об эффективности алгоритмов, представление о реализации алгоритмов и структур данных, лежащих в основе Python
Кому и в каком объёме «показано» изучение Python
Кратко: всем и в любом
- Более серьёзно: см. пропедевтику — зависит от цели
Какие есть нормальные учебники для преподавания курса «программирование на Python»
Введение в программирование на Python на opentechschool.github.io
Вообще зависит от аудитории. Для меня идеальным был Tutirial лично от Гвидо
(менее удачный, потому что «всё в кучу») Программирование аркадных игр и обучение информатике
(по-моему, плохой учебник) “Укус Питона”
- Какие рекомендуете уч. пособия: литература или сайты
Tutirial лично от Гвидо (есть несколько устаревший русский перевод)
Online python tutor с исполнением простого сценария и графом объектов
Problem Solving with Algorithms and Data Structures using Python (есть русский перевод)
- Мотивация учеников на изучение именно Python
- Быстрый результат, черепаха, повседневность, актуальность
- Как начать обучать школьников Python, с какого класса
- Синтаксис и использование «калькулятора» — как только понадобится
- «Черпаха» и простые приёмы программирования — когда они там по программе
- Серьёзные алгоритмы и программирование — с момента формирования абстрактного мышления (9-10 классы, иногда не все успевают)
ООП — школьникам не надо (личное мнение): слишком много надо написать, чтобы объектное планирование стало эффективным
Тем не менее вообще систему классов на Python объяснять проще, чем где бы то ни было
- В чём особенности методики преподавания Python
- Командная строка («калькулятор») как опора
- Быстрый результат как мотивация (+множество готовых к применению модулей)
- Упор на алгоритмы решения задач с помощью имеющихся структур данных
- Возможность «докопаться до сути» как мотивация «продвинутых» (в том числе самодокументация)
- Элементы школьного курса Python
(плачет)
- Любая школьная программа подойдёт, в Python всё есть
- Кроме того, в Python есть много для школьного курса «Информатика» (алгебра логики, побайтовые операции, системы счисления, кодирование и т. д.)
- Технические вопросы
- Какую среду лучше использовать
- Есть ли возможность программировать мобильные приложения
- (не глядя в гугол) есть
(глядя в гугол) есть
(по личному опыту) https://kivy.org/
- Как начать web-программирования на Python
- Как писать оконные приложения на Python?
В состав Python входит TkInter
вот, например, учебник на русском
а вот курс Создание GUI на Python с помощью библиотеки Tkinter. Программирование для начинающих
- как переносить на другие ПК, где нет интерпретатора Python
поставить интерпретатор Python, он же свободный
можно даже свой модуль собрать, это это просто (тогда он по зависимостям вынет их !PyPI все остальные модули, которых нет в базовой установке Phthon)
Py2exe/usr/lib64/python3.5/tkinter/colorchooser.py
Олимпиадные задачи / Задачи повышенной сложности
- Вопрос производительности
- Вопрос использования библиотек
- Олимпиада как праздник интеллекта vs олимпиада как спорт vs олимпиада как способ поступить в ВУЗ
- Графические возможности языка Python
Черепаха (русские учебники на oentechschool, на сайте Школы179)
В качестве примера запустите python -m turtledemo
Черепаха написана на TkInter. Это библиотека оконных примитивов, и в ней есть примитив «Холст» (Canvas). Им тоже можно пользоваться (причём можно изменять уже нарисовааные объекты)
Для математических задач (например, графиков) — matplotlib
- иное
- Обработка массивов
- что такое «массивы» и зачем их обрабатывать?
списки Python (на самом деле они таблицы)
Собственно массивы, если их надо передавать каким-то программам и/или хранить в файлах
вкусный эффективно работающий массив из проекта NumPy, с котором можно делать разные штуки
- Считывание числовых данных из файлов
- Что такое «числовые данные» и когда в жизни приходится их считывать из файлов?
- Побайтовое чтение (на выходе bytearray) — обычный read() из файла, открытого как "b"
- Всевозможные format-specific модули
- Как организовать форму в среде Python (кнопки и другие объекты)
- Вам нужен
PAGE и TkInter (видимо, проще всего в установке: я просто скачал, распаковал, запустил)
- Мощное и страшное, типа Komodo, WindIDE и т. п.
В частности, для Visual Studio
- Вам нужен