Practicum: Advanced Python Programming

Type Bachelor and Master Practicum
Semester Summer Semester 2022
Language English
TUMonline Link
Contact

Valentin Zieglmeier (write to zieglmev+pyp@in.tum.de)
Simon Speth

Important dates

Description

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.

Objectives

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
  • Teaching
    • Presenting in a flipped classroom
    • Developing materials for course work
  • Soft skills
    • Communication skills
    • Teamwork
    • Organization
    • Responsibility

Rules for participation

  1. Plagiarism of any form (blatant copy-paste, summarizing someone else's ideas/results without reference etc.) will result in immediate expulsion from the course.
  2. All submissions are mandatory. Each submission must fulfill a certain level of quality. Submissions failing to fulfill this will be graded 5.0.
  3. Late submissions will invite penalties.
  4. Non-adherence to the submission guidelines will invite penalties.
  5. Participation and attendance in all course meetings is mandatory. Students must read the final submissions of their colleagues and participate in the discussions.