Programming III is the third course in the programming fundamentals sequence, covering data structures, algorithms, and complexity analysis with an emphasis on professional code quality.
Project workloads varied significantly, ranging from one to over twenty hours per week depending on group dynamics. Exams were generally not considered super difficult, though some students noted that tests covered obscure topics mentioned only briefly in lecture.
What you’ll be able to do
Select and use standard development tools, including shells, source control and build systems.
Develop a program including making and describing high and low-level design decisions.
Apply, implement, and analyze sorting, tree and graph algorithms.
Select and apply common indexing data structures to represent sets and maps.
Design and categorize different types of tests and pick types based on the testing scenario.
Identify and solve problems by applying standard methods including graph algorithms, balanced trees, and sorting.
Read, analyze and review programs to summarize and evaluate their functionality, performance and maintainability.
“Used by” includes alternatives; linked courses may
have other requirements. This is a best-effort interpretation; check the
catalog requirements above.
Raw average: 3.25/5 from 8
quality ratings. The adjusted rating blends this with the UW review average
(3.66/5), weighted as 20
additional ratings. Smaller samples stay closer to that average. Each
captured review is counted once in the prior; this does not correct who
chooses to leave a review.
RMP profile ↗ · All captured review dates; profile matched by name.
Raw average: 3.15/5 from 73
quality ratings. The adjusted rating blends this with the UW review average
(3.66/5), weighted as 20
additional ratings. Smaller samples stay closer to that average. Each
captured review is counted once in the prior; this does not correct who
chooses to leave a review.
RMP profile ↗ · All captured review dates; profile matched by name.
Past student reviews · Florian Heimerl
Florian Heimerl delivered clear and helpful lectures, though students described the pacing as slow and the course structure as disorganized. While exams were generally not difficult, group projects were frequently criticized as poorly structured and uncoordinated.
Some students reported that TAs were unhelpful and that exams and projects contained numerous errors. Reviewers also noted that grading criteria changed without warning and that group project outcomes heavily depended on partner performance.
Recent recorded grades — Spring 2025: 3.30 GPA, 57.2% A/AB (n=327 letter grades); Fall 2025: 3.34 GPA, 63.1% A/AB (n=521 letter grades); Spring 2026: 3.42 GPA, 69.3% A/AB (n=475 letter grades). Includes jointly taught sections.
Historical instructors & teaching patterns
Past student reviews · Debra (Deb) Deppeler, Andrew Kuemmel, Meenakshi Syamkumar
The course split half its content on data structures and the other half on topics chosen by the instructor. Past students noted that programming assignments sometimes had criteria changed on the fly, which could be frustrating. A final group project required two weeks of planning followed by one week of coding. Students who struggled with concepts found the material easier to grasp under certain instructors and reported achieving high grades.
ANDREW KUEMMEL is recorded teaching in Fall 2018, Spring 2019, Fall 2019, Fall 2020. Recorded history may be incomplete and does not establish a future schedule.
ASHLEY SAMUELSON is recorded teaching in Fall 2025. Recorded history may be incomplete and does not establish a future schedule.
CONNOR BAILEY is recorded teaching in Fall 2023, Fall 2024, Spring 2026. Recorded history may be incomplete and does not establish a future schedule.
DANIEL FINER is recorded teaching in Fall 2021, Spring 2022, Fall 2022, Spring 2023. Recorded history may be incomplete and does not establish a future schedule.
DEBRA DEPPELER is recorded teaching in Spring 2018, Fall 2018, Spring 2019, Fall 2019, Spring 2020, Fall 2021. Recorded history may be incomplete and does not establish a future schedule.
FLORIAN HEIMERL is recorded teaching in Fall 2020, Fall 2021, Spring 2022, Fall 2022, Spring 2023, Fall 2023, Spring 2024, Fall 2024, Spring 2025, Fall 2025, Spring 2026. Recorded history may be incomplete and does not establish a future schedule.
GARY DAHL is recorded teaching in Fall 2020, Fall 2021, Spring 2022, Fall 2022, Spring 2023, Fall 2023, Spring 2024, Fall 2024, Spring 2025. Recorded history may be incomplete and does not establish a future schedule.
Recorded history may be incomplete and does not establish a future
schedule.
Calendar & sections
Spring 2027
Schedule loads here as you scroll.
Section
Mode
Enrolled / capacity
Waitlist
LEC 002
Classroom Instruction
0 / 200
0
LEC 001
Classroom Instruction
0 / 200
0
LEC 003
Classroom Instruction
0 / 125
0
Times are Central. Select a meeting for
details; export includes recorded dates for the selected sections. Enrollment reflects scan time.
Reviewers described the course as poorly structured, but found Florian Heimerl's lectures clear and helpful. The primary friction points stemmed from project design and class organization rather than the instructor's teaching style.
Recent recorded grades — Spring 2025: 3.29 GPA, 58.5% A/AB (n=670 letter grades); Fall 2025: 3.38 GPA, 65.6% A/AB (n=564 letter grades); Spring 2026: 3.42 GPA, 69.3% A/AB (n=475 letter grades).
difficulty & workload
Past student reviews · Florian Heimerl
Project workloads varied significantly, ranging from one to over twenty hours per week depending on group dynamics. Exams were generally not considered super difficult, though some students noted that tests covered obscure topics mentioned only briefly in lecture.
Past student reviews · Florian Heimerl
Group projects were cited as uncoordinated and frustrating, with some students feeling stuck if partners were unresponsive. While Florian Heimerl was accessible and clear, students reported that the class structure was disorganized and lectures felt scattered.
Object-oriented programming concepts including inheritance, polymorphism, anonymous inner classes, and lambda functions.
Industry standards for writing high-quality, maintainable code and professional development practices.
Skills
Apply, implement, and analyze sorting, tree, and graph algorithms; select indexing data structures for sets and maps.
Write, read, and review high-quality, maintainable code using industry standards and modern language features.
Use object-oriented concepts like inheritance, polymorphism, and lambda functions; perform performance analysis to optimize code.
Grades
Historical instructor
Spring 2027 · Projected
Before grades are released
3.003.00–3.623.62average GPA
Approximate 80% prediction interval
0.04.0
About this estimate
The course’s semester-average GPA, not an individual student’s grade.
The center uses 5
same-season terms, weighted toward
recent results.
The range uses the finite-sample 80th-percentile rank of absolute errors
from earlier same-season forecasts. Each forecast uses only records from
earlier terms. At least four forecasts are required; bounds are rounded
outward and limited to 0–4. This is an empirical estimate: changing
instructors or grading policies can reduce its coverage.
6 earlier forecasts · 0.16 GPA average error.
Grades over time
Through Spring 2027
More grade details Grade mix, volume & source data
Where this course fits relative to
Latest available grades · Spring 2026 · all course levels
3.423.42GPA
Higher than 2323% of other courses in this group.
Course GPAs · red marks this course’s range
475475letter grades
More recorded grades than 9797% of other courses in this group.
Typical course in this group: 66.066.0 letter grades.
About this comparison
1280 courses over the same term, each with at least 30 recorded
letter grades. Cross-listed courses count once. GPA is not a measure
of difficulty or teaching quality. The typical course is the median by
recorded grade count; tied values are not counted as lower. Grade
counts describe course scale, not unique students or typical section
size.
Descriptions compare GPA with this group’s average: at least 0.20
higher or lower; otherwise close to average. Section size uses median
recorded enrollment: small up to 30, mid-sized 31–99, large 100+.
Lectures and discussion/lab sections are described separately.
Sources & history
UW–Madison
Catalog & offerings
Descriptions, prerequisites, and recorded course offerings.
Catalog observation history
Observations at scan time; dates do not imply when a catalog change took effect.