Spring 2027

Programming III

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.

offering recorded3 credits
Recorded instructors · Spring 2027 Shayne Wadle3.5/5Florian Heimerl3.3/5

Summary

1 / 6

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.

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.

Source: UW Guide

Grade history

↗
average GPA
letter grades
A
AB
B
BC
C
D
F

All recorded terms · compare terms & instructors

Prerequisites

Course map

COMP SCI 300, graduate/professional standing, or declared in the Capstone Certificate in Computer Sciences for Professionals

    • COMPSCI 300
    • graduate/professional standing
    • declared in the Capstone Certificate in Computer Sciences for Professionals
    take one
COMPSCI 400 used by

“Used by” includes alternatives; linked courses may have other requirements. This is a best-effort interpretation; check the catalog requirements above.

Prerequisite text tree
  • Any of
    • COMPSCI 300
    • graduate/professional standing
    • declared in the Capstone Certificate in Computer Sciences for Professionals

Professors

Spring 2027
Adjusted rating
RMP difficulty
captured reviews
About this rating

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.

No course-specific feedback yet.

Adjusted rating
RMP difficulty
captured reviews
About this rating

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.

SectionModeEnrolled / capacityWaitlist
LEC 002Classroom Instruction0 / 2000
LEC 001Classroom Instruction0 / 2000
LEC 003Classroom Instruction0 / 1250

Times are Central. Select a meeting for details; export includes recorded dates for the selected sections. Enrollment reflects scan time.

Meeting source records

Student experience

the class

Past student reviews · Florian Heimerl

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.

Topics

  • Balanced search trees, graphs, graph traversal, hash tables, sets, and complexity analysis.
  • 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

– average GPA

Approximate 80% prediction interval

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

GPA

Higher than % of other courses in this group.

Course GPAs · red marks this course’s range

letter grades

More recorded grades than % of other courses in this group.

Typical course in this group: 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.

Selected offering source records
COMPSCI 400 · Spring 2027

Programming III

Recorded 2026-10-14
Raw records
[
  {
    "run_id": "20261014T203208-0851c9a1",
    "semester": "1274",
    "observed_at": "2026-10-14 17:50:09.728220+00:00",
    "offering_id": "1274:266:024798",
    "course_id": "COMPSCI 400",
    "course_uid": "course_583cd0f265d9f29704ca13ea",
    "term_id": "1274",
    "source_course_id": "024798",
    "source_subject_id": "266",
    "title": "Programming III",
    "credits_min": 3,
    "credits_max": 3,
    "typically_offered": "Fall, Spring"
  }
]
Rate My Professors

Student reviews

Original comments behind the course and instructor summaries.

Read original reviews
Madgrades

Grade history

Recorded grade distributions by term, section, and instructor.

Explore recorded grades
Model outputs & technical records
Qwen/Qwen3.8-27B
LLM outputs across runs
Full model traces
Model & dataset provenance
{
  "model": "Qwen/Qwen3.8-27B",
  "model_revision": "1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0",
  "task_version": "17",
  "output_id": "2e1b44f1a48ee914ef2a7eb11a8609a3d453a006db807b47c804c9807e9b32fe",
  "requirements_status": "valid",
  "dataset_revision": "fc1811fa52e581ea57a35c0cf3343f8740a8ffbf",
  "observed_at": "2026-10-14 17:50:09.728220+00:00"
}