Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

isklonin/msai-python

Open more actions menu
 
 

Repository files navigation

msai-python

Annotation ⭐

This course focuses on the fundamentals of software engineering. Proper design is an important part of any project. This course covers the basics of the Python programming language, basic concepts and language constructs. Along with this, this course provides tools for using Python programming language in complex projects. You will gain insight into the correct design of the code, maintaining the codebase and integrating your applications with others.

Included themes 📜

Pre-course 🎒

  • CLI / git
  • Introduction, Zen Python
  • Installation python 3
  • Code-writing tools
    • Ipython Notebook
    • IDE Pycharm
    • Interactive mode
  • Virtual environment + conda + pip list / pip freeze / Requirements management
  • Troubleshooting

Python Basics 🎓

  • Numbers, Strings, Lists, Dicts
  • Data Model: objects, values and types
  • Flow control statements: if, for, while
  • Python Data structures
  • PEP8, Style guides
  • Complex conditions
  • Functions: Declaration, Signature, Call by assignment, Call Stack, Closures, Recursions
  • Functional programming elements
  • Modules: imports, module search path, standard modules, dir()
  • Packages: init.py, all, dotted imports
  • Scopes and Namespaces
  • Classes: Declaration, Inheritance, attributes, instances, instance variables, private section
  • Iterators, Generators, Generator Expressions, Context Managers, Decorators
  • Exceptions: Built-In Exceptions, handling exception, raise exception, custom exceptions
  • Standard Library, inspect
  • Logging
  • Multi-threading: Process Pool, Thread Pool, threading module, multiprocessing

Complex themes 🔎

  • Compilation and interpretation strategies (AOT, JIT)
  • How to speed up the python code: numba, cython, joblib, dask, c++ extensions
  • Data Science toolbox overview
  • Garbage collector
  • Metaclasses
  • OOP, functional programming
  • Design Patterns
  • Testing
  • CI, CD, automatization

Literature 📚

  • Fluent Python by Luciano Ramalho O'Reilly Media, Inc. 2015
  • Learn Python 3 the Hard Way Zed A. Shaw Addison-Wesley, 2016
  • Effective Python: 59 Ways to Write Better Python Brett Slatkin Addison-Wesley, 2015
  • Test-Driven Development with Python Harry Percival, 2nd edition O'Reilly Media, Inc.
  • Clean Architecture: A Craftsman's Guide to Software Structure and Design: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series) Paperback – Illustrated, 17 Sept. 2017
  • Design Patterns: Elements of Reusable Object-Oriented Software 1st Edition, Kindle Edition by Gamma Erich, Helm Richard, Johnson Ralph, Vlissides John
  • Intermediate Python Obi Ike-Nwosu 1st Edition., 2016
  • Mark Lutz. Learning Python, 5th Edition. O'Reilly Media, Inc., 2013

About

Python course at MIPT

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 71.4%
  • Python 24.8%
  • Makefile 3.8%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.