Advanced Programming 2401-CS-22-AP-s2
This is an advanced programming course which aim is to deepen understanding of Python programming language. Students will learn useful programming concepts and popular third-party libraries to tackle scientific problems and other tasks. Course will (1) enable students to write their own script/programs to perform various tasks from statistical analysis, data visualization, data processing, file management and web scraping and (2) increase students understanding of how Python works behind the scenes.
Gained knowledge, skills, and social competences will be demonstrated by students delivering and presenting final projects.
List of topics:
1. Data types, variables and memory
2. Flow control, basic iteration, comprehension
3. Iterators and Generators
4. First-class functions, Closures
5. Decorators
6. Modules and Packages
7. Object oriented programming – introduction
8. Object oriented programming – getters and setters
9. Object oriented programming – polymorphism and magic methods
10. Object oriented programming – single inheritance
11. Python standard library: modules sys, os, random and itertools
12. Data analysis – pandas
13. Data analysis – numpy (1)
14. Data analysis – numpy (2)
15. Data analysis – visualisation in matplotlib
Total student workload
Learning outcomes - knowledge
Learning outcomes - skills
Learning outcomes - social competencies
Teaching methods
Expository teaching methods
- informative (conventional) lecture
- description
Exploratory teaching methods
- brainstorming
- laboratory
- project work
- presentation of a paper
Type of course
Prerequisites
Course coordinators
Term 2022/23L: | Term 2024/25Z: | Term 2023/24Z: |
Assessment criteria
Assessment methods:
- tutorial: project – U1, U2, U3
- lecture: written tests composed of theoretical and practical part - W1, W2, W3, W4
- activity – K1, K2, K3, K4
Assessment criteria:
- tutorial:
i) project not meeting agreed-upon assumptions or no project: fail
ii) project meeting agreed-upon assumptions: very good
- lecture: weighted grade: theoretical part (50%) + practical part (50%). Grading (combined both theoretical and practical part):
fail – less than 50%
satisfactory – 51%-60%
satisfactory plus- 61%-70%
good - 71%-80%
good plus- 81%-90%
very good - 91%-100%
Additional information
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: