Lecture 1. Language basics (part 1)
Interpreter and its interactive mode. Dynamic typing, basic data types: numbers, str, list. Basic statements, print statement. Code blocks, basic compound statements: if, while, for. Basic built-in functions. User-defined functions.
Lecture 2. Language basics (part 2)
Expressions, statements priority. Files. Type dict, hashing. Modules, import statement, sys module.
Lecture 3. Object-oriented programming
Classes and objects. User-defined classes, methods, class members. Class constructor. Operator overloading. Objects in Python.
Lecture 4. Errors handling
Exceptions, generating and handling. User-defined exceptions. Resources management, context managers.
Lecture 5. Code decoration and testing
Documentation. Pydoc utility. Unit-testing. Module unittest. Testing utilities. Pylint, pyflakes utilities. Debugging utilities. User-defined modules. Namespaces. Modules execution.
Lecture 6. Strings
Built-in strings functions. Strings formatting. Module string. Class unicode, unicode functions. Encodings, Unicode, files and source code encoding.
Lecture 7. Data model
Memory model, garbage collector. By-reference and by-value storage. Mutable and immutable types. Module copy.
Lecture 8. Functional programming
List comprehensions, function map etc., lambda-functions, lists and dictionaries unpacking. Functions arguments management. Generators and "lazy" execution. Flow control exceptions. Module itertools.
Lecture 9. Libraries overview (part 1)
Command line arguments libraries. System libraries. Standard mathematical libraries. Regular expressions and module re.
Lecture 10. Libraries overview (part 2)
HTML/XML libraries. Mathematical libraries: SciPy etc. Tkinter library.
Lecture 11. Parallel computations in Python
Multithread programs and GIL. Multiprocess programs.
Lecture 12. Advanced objects and classes
Access modifiers. Inheritance, names resolution. Metaclasses. Object 'type'. Decorators.