(in Polish) Kurs komputerowy - Python 2
0800-KK-PYTH2
1. Iterators and generators, the itertools module, coprodecures, microthreads, non-blocking i/o operations
2. Fuctional programming, module functools, state remembering functions, function closures, callable classes
3. Decorators of functions and classes
4. Context managers
5. Asynchronous programming
6. Advanced issueas concerning classes:
- static methods and class methods
- pseudoprivate attributes
- methods __getattr__ / __getattribute__, dynamically generated attributes, pseudoprivacy emulation
- __slots__ - name accessibility control
- descriptors and properties
7. multipeocessing module - parallel programming, communication between processes, sinchronisation.
8. Nummerical problems in numpy / scipy
Total student workload
60 hours:
30 hours of classes
30 hours of own work and preparing for the final test
Learning outcomes - knowledge
1. Theory of iterators and coprocedures and their implementation by generators. Mechanisms of communication between a coprocedure and the main program.
2. Knowledge about models of concurrency: microthreads, threads, subprocesses and of non-blocking i/o operations.
3. Knowledge about syntax constructions of asynchronous programming
4. Deep knowledge of language structure: special methods of classes, inheritance mechanisms, theory of state-remembering functions, function closures and callable classes.
4. Mechanisms of controlling the access to attributes in classes, dynamicaly generated attributes, descriptors, class methods and static methods.
5. Sinchronisation of subprocesses in parallel nummerical calculations.
Realises effects: K_W03, K_W05, K_W07 for FT and K_W01, K_W10 for IS
Learning outcomes - skills
1. Is able to create and use iterators
2. Is able to create microthreads as coprocedures, communicate with coprocedures, use non-blocking i/o operations
3. Ability of advanced object programming and introspection.
4. Is able to write asynchronous programs
5. Is able to manage attributes in classes
6. Is able to parallelise computations by subprocesses and cinshronise subprocesses.
Realises effects: K_U06 for FT and K_U01, KU_09, KU_10, KU_13, KU_22 for IS
Learning outcomes - social competencies
None
Teaching methods
Computer lab - teaching issues being simultaneously programmed by students under supervision
Exploratory teaching methods
- laboratory
- practical
Prerequisites
Course Python 1, i.e.:
1. Build-in types
2. Non-sequential iterables (range, file, database cursor)
3. list comprehensions, functional programing tools (map, filter), anonymous functions
4. Classes, inheritance, method overriding, operator overloading
5. Multithreading programmes, locks, queues
6. Network programing on the socket level
7. Basics of nummerical computations using modules numpy, scipy, pyplot
Course coordinators
Assessment criteria
Final test
33% - 50% - grade: 3
50% - 67% - grade: 3+
67% - 83% - grade: 4
83% - 100% - grade: 4+
100% - grade: 5
In case of epidemy - grades based on passing projects concerning the topics of the course and prepared as tutorials - static html pages.
Bibliography
http://en.wikibooks.org/wiki/Python_Programming
https://docs.python.org/2/
https://docs.python.org/3/
Mark Lutz: Python
David Beazley, Brian K. Jones: Python Cookbook
Gniewomir Sarbicki: Python. Kurs dla nauczycieli i studentów
Additional information
Additional information (registration calendar, class conductors,
localization and schedules of classes), might be available in the USOSweb system: