julija777 / practical_python

Курс для школьников Силаэдра по приложениям языка Python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

practical_python

Курс для школьников Силаэдра по приложениям языка Python


Предварительные требования

Перед освоением этого курса школьник должен знать и уметь следующее.

Окружающая среда. Уметь запускать код на Python с помощью командной строки (и, возможно, из IDE). Понимать древовидную структуру файлов и папок. Уметь создавать заданную структуру директорий. Уметь пользоваться менеджером пакетов pip (pip install lib, чтение сообщений об ошибках).

Базовые знания языка программирования. Уметь работать с переменными. Знать, какие типы данных представлены в языке и при каких операциях одни типы превращаются в другие и по каким правилам. Уметь работать со строками: явное задание строк, срезы, неизменяемость строк. Уметь работать с массивами (lists): доступ по индексу, вставка, удаление, (*) list comprehension. Уметь писать циклы вида for element in container и вида for i in range(len(container)). Уметь работать с функциями: создавать функции и вызывать их, принимать и возвращать от нуля до нескольких аргументов.

Усиленные знания языка программирования. Уметь работать со словарями. Понимать, что такое deep copy и shallow copy, уметь привести пример кода, который приводит к неожиданным с точки зрения не владеющего знаниями о копировании результатам. Знать на базовом уровне, что такое сложность алгоритма. Знать сложности операций с изученными структурами данных (массивом, словарем). Понимать, чем отличаются вызов функции от присваивания функции в переменную (в чём разница написания имени функции со скобками и без).

ООП. Владеть концепцией класса и объекта класса. Понимать, что такое методы класса. Уметь создавать классы с заданными полями. Понимать, для чего нужно ключевое слово self. Иметь представление о наследовании.

Отладка кода. Уметь использовать отладочную печать, иметь навык самостоятельного решения проблем с кодом: поиска как минимум конкретной строки, на которой произошла ошибка, умение сформулировать, что именно не так.

Культура написания кода. Уметь писать docstring и понимать, зачем они нужны. Знать о PEP-8. Уметь проверять свой код на соответствие заданным style-guides и исправлять код соотвественно. Осознавать важность написания хорошего кода.


Использовалось явно (урок такой тематики):

  • Графы: GraphViz, networkx (урок был про networkx, но интерфейс GraphViz очень похож, и в целом сильной разницы нет)
  • Работа с картами: geoplotlib (на дататоне, надо переделать в полноценный урок)
  • Графики и данные: matplotlib
  • Простые алгоритмы машинного обучения: kNN
  • Flask
  • Работа с изображениями (модель RGB, работа с картинкой как с массивом)
  • Основы работы с текстами: токенизация, работа со словарем токенов, ...
  • wikipedia

Использовалось неявно (как подзадание к каким-то урокам):

  • Системы контроля версий: Git(Hub)
  • Парсинг веб-сайтов: Beautiful Soup
  • Работа с csv
  • multithreading

Ещё не использовалось:

  • Сохранение классов: pickle
  • Перевод: Google Translate API

Будет использовано в будущем:

  • Динамическая графика: PyGame
  • telebot, VK API
  • TkInter / Qt
  • Сеть: sockets, server-clients
  • map/reduce
  • Простые алгоритмы машинного обучения: деревья, регрессия,
  • Django
  • Работа с аудио (librosa?)
  • Работа с видео
  • Тех
  • Работа с байт-кодом (?)
  • Подключение кода на С++
  • multithreading
  • Написание своей библиотеки для чего угодно
  • numpy

Полезное: https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks https://leetcode.com/problemset/all/

Случайные идеи

  • Сделать диаграмму Вороного по точкам

Для бота в мессенджере:

  • Отправляем названия понравившейся картины в музее, бот изредка присылает похожую картину.

About

Курс для школьников Силаэдра по приложениям языка Python

License:MIT License


Languages

Language:Jupyter Notebook 99.3%Language:Python 0.7%