Spring 2027

Programming II

Programming II covers Object-Oriented Programming, introducing array-based and linked data structures like lists, stacks, and queues to solve complex problems.

offering recorded3 credits
Recorded instructors · Spring 2027 Jim Williams3.1/5

Summary

1 / 6

Past student reviews · Jim Williams

Students reported a large amount of busy work, some of which was challenging and time-consuming. Exams were inconsistent in difficulty, with multiple-choice and programming components varying in ease.

What you’ll be able to do

  • List and describe common operations for List, Stack, Queue, Priority Queue, Tree.

  • Analyze the time-complexity and compare the Big-Oh O(n) worse case complexity of different ADT implementations, and the complexity for any data structures and algorithms used to implement those operations.

  • Identify and properly test all boundary conditions for comprehensive testing of their programs.

  • Interpret and create a variety of diagrams: Call Stack trace; Stack, Queue, and Tree Data Structures; Recursive call (list or tree), control flow charts, class diagrams, object diagrams, and use-case diagrams.

  • Implement Object-Oriented (multi-class) standalone programs that manage a variety of data storage and retrieval operations (Program development skills and experience).

  • Evaluate models and arguments using quantitative information.

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

Satisfied QR-A and (COMP SCI 200, 220, 310, 301, or placement into COMP SCI 300) or (E C E/​COMP SCI 252 and E C E 203); graduate/professional standing; declared in Capstone Certificate in COMP SCI. Not open to students with credit for COMP SCI 367.

COMPSCI 300 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

Professors

Spring 2027
Adjusted rating
RMP difficulty
captured reviews
About this rating

Raw average: 2.98/5 from 155 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.

For this course: 3.8/5 raw quality · 3.3/5 difficulty · 6 reviews

RMP profile ↗ · All captured review dates; profile matched by name.

Past student reviews · Jim Williams

Professor Williams taught an organized course with helpful lectures, though students reported significant busy work. Assessment experiences varied; some found tests inconsistent in difficulty or covering unworked material, while others appreciated the consistent schedule and resources.

Students disagreed on Jim Williams' teaching style. One found lectures slow and boring, relying on projects for learning. Another called the lectures highly informational and valued TopHat discussions, noting the exam count exceeded expectations.

Historical instructors & teaching patterns

Past student reviews · Meenakshi Syamkumar, Laura Legault

Meenakshi Syamkumar and Laura Legault both taught CS300 with high praise. Syamkumar designed thoughtful exams and projects, though some students found the projects too easy. Legault’s lectures were fun and well-paced, with grades split between three tests, weekly projects, and quizzes. Both instructors were accessible and clear, making the course manageable for students with varying programming experience.

ALEXANDER BROOKS is recorded teaching in Spring 2018, Fall 2018. Recorded history may be incomplete and does not establish a future schedule.

BLERINA GKOTSE is recorded teaching in Fall 2024. Recorded history may be incomplete and does not establish a future schedule.

GARY DAHL is recorded teaching in Fall 2017, Spring 2018, Fall 2018, Spring 2019, Fall 2019, Spring 2020. Recorded history may be incomplete and does not establish a future schedule.

JEFF NYHOFF is recorded teaching in Fall 2022. Recorded history may be incomplete and does not establish a future schedule.

LAURA LEGAULT is recorded teaching in Spring 2020, 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.

MARK MANSI is recorded teaching in Fall 2023. Recorded history may be incomplete and does not establish a future schedule.

MOUNA AYARI BEN HADJ KACEM is recorded teaching in Spring 2018, Fall 2018, Spring 2019, Fall 2019, Spring 2020, Fall 2020, Fall 2021, Spring 2022, Fall 2022, Spring 2023, Fall 2023, Spring 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 001Classroom Instruction0 / 2750
LEC 002Classroom Instruction0 / 2750

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 · Jim Williams

The course was described as extremely organized with a consistent schedule and helpful lectures. Students found the TopHat participation format engaging for discussing answers with peers.

Recent recorded grades — Spring 2025: 3.00 GPA, 40.1% A/AB (n=593 letter grades); Fall 2025: 3.37 GPA, 62.9% A/AB (n=556 letter grades); Spring 2026: 3.17 GPA, 48.3% A/AB (n=478 letter grades).

difficulty & workload

Past student reviews · Jim Williams

Students reported a large amount of busy work, some of which was challenging and time-consuming. Exams were inconsistent in difficulty, with multiple-choice and programming components varying in ease.

Past student reviews · Jim Williams

Opinions on lectures varied; one student found them slow and boring, relying on projects for learning, while another found them the most informational in their first year.

Topics

  • Object-oriented design and interfaces
  • Abstract data types including trees and heaps
  • Searching and sorting algorithms
  • File I/O, exception handling, and CLI arguments

Skills

  • Object-Oriented Programming with classes and objects
  • Array-based and linked data structures implementation
  • Complexity analysis and recursion
  • Generic interfaces and test method design

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.

7 earlier forecasts · 0.23 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 300 · Spring 2027

Programming II

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:024795",
    "course_id": "COMPSCI 300",
    "course_uid": "course_28c3390ba944d49fd17f7c72",
    "term_id": "1274",
    "source_course_id": "024795",
    "source_subject_id": "266",
    "title": "Programming II",
    "credits_min": 3,
    "credits_max": 3,
    "typically_offered": "Fall, Spring, Summer"
  }
]
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": "d47feb65bfc66555c66df8385f9b2aeaa93a0579df28be6fee1835a50319ad28",
  "requirements_status": "needs_review",
  "dataset_revision": "fc1811fa52e581ea57a35c0cf3343f8740a8ffbf",
  "observed_at": "2026-10-14 17:50:09.728220+00:00"
}