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.
- 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
- 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
- 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
- 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