Practicum: Advanced Python Programming
Python has become a ubiquitous language in practice and academia, and for good reason. It is easy for beginners to get started and at the same time offers immensely powerful capabilities for the most advanced use cases. In the Informatics study programs, students only get limited and basic exposure to Python.
This practicum fills this gap by teaching skilled programmers the advanced concepts and capabilities of Python. We expect basic knowledge of syntax and built in methods, but no further knowledge is required. To be able to follow the course, you need to have experience with object-oriented and functional programming.
The course is split into two phases. In the learning phase, weekly course meetings in a flipped classroom style and small exercises will teach the following concepts:
1. Programming constructs (e.g., object-oriented Python)
2. Packaging (e.g., poetry)
3. Code robustness (e.g., testing)
4. Desktop app development
5. Web development
6. Scientific Python
7. Machine Learning & Deep Learning
This is followed by a project phase, where students will be able to apply their learned skills in a larger-scale implementation project.
The practicum aims to teach skills in multiple areas:
- Software engineering
- Implementing Python programs of high quality
- Linting and testing Python code
- Developing advanced Python solutions for any type of problem
- Presenting in a flipped classroom
- Developing materials for course work
- Soft skills
- Communication skills
Rules for participation
- Plagiarism of any form (blatant copy-paste, summarizing someone else's ideas/results without reference etc.) will result in immediate expulsion from the course.
- All submissions are mandatory. Each submission must fulfill a certain level of quality. Submissions failing to fulfill this will be graded 5.0.
- Late submissions will invite penalties.
- Non-adherence to the submission guidelines will invite penalties.
- Participation and attendance in all course meetings is mandatory. Students must read the final submissions of their colleagues and participate in the discussions.