Skip to main content

Programming requires multiple steps, from understanding the problem, designing a solution, coding, testing and debugging it into a running and correct program. Moreover, this program should be easy to understand and consequently modify. Balancing all of these concerns is a challenge for novice programmers. In this course, we will learn to solve programming problems in a methodical and thoughtful manner using the Python language. We will do so by applying a specific model for programming problem solving and tackling real problems. The course requires a background in programming, at least one introductory course.

Please read this if you wonder whether you should take this course or not.


Instructors

  • Shlomi Hod - shlomi.hod <AT> uni-potsdam.de
  • Ilia Kurenkov - ilia.kurenkov <AT> uni-potsdam.de


Time and place

Campus 3 - Griebnitzsee (map)

  • Lecture - Mondays - 14:15-15:45 - House 1, Room 2.32 (3.01.2.32)
  • Lab - Wednesdays - 16:15-17:45 - House 4, Room 1.03 (3.04.1.03)
  • Office Hours - Wednesdays - 12:00-14:00, House 4, Room 2.01 (3.04.2.01)


Credit

6 ECTS


Announcements


Schedule

Week Date (Mo.) Topic Resources
1 Oct 15

Course Overview and Python Review

2 Oct 22

Introduction to Programming Problem Solving

3 Oct 29

Design and Data Representation

No Lab on Wednesday (31/10) - Reformation Day

4 Nov 05

Incremental Development, Test, Evaluation

5 Nov 12

Pipeline Design, String Manipulations, Evaluation

6 Nov 19

Reading Code, Debug

7 Nov 26

Recursion

8 Dec 03

Dynamic Programming, Studio

9 Dec 10

Midterm Exam

10 Dec 17

Review Midterm Exam Solutions

🎄 Dec 24

Christmas Break

☃️ Dec 31

Christmas Break

11 Jan 07

Solving Viterbi, more Recursion

12 Jan 14

Sudoku - End-to-end Problem Solving Walkthrough

13 Jan 21

Git

14 Jan 28

Solving Image Editor, Problem Solving Studio

15 Feb 04

Looking Back and What’s Next

University of Potsdam logo