Programming in Python

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.