In Spring 2025, 49 students dropped CS 128 after the University of Illinois Urbana-Champaign's add/drop window closed. When we discuss course drops, it is common to reduce the conversation to a single number like this one, and that number often carries with it an implicit assumption that students who drop are students who are struggling. The reality, however, is more nuanced than what a single number can convey.

In this analysis we examine add/drop activity in CS 128 on a week-by-week basis, pairing each drop with the student's grade at the time they left the course. The results reveal a pattern that challenges the simple narrative: a significant share of students who dropped were earning passing grades, and many of them were earning A's.

We believe that understanding the grade distribution of students who drop is critical for making informed decisions about course design, support structures, and how we interpret retention data. Furthermore, this kind of analysis opens the door for more meaningful conversations about what a drop number actually represents.

Course Context

CS 128 (Introduction to Computer Science II) is a second-semester programming course taught in C++ at the University of Illinois Urbana-Champaign. The course covers software engineering fundamentals through object-oriented design, memory management, and data structures in C++. The full syllabus for the semester under evaluation can be found at cs128.org/2025a/syllabus-1310, and syllabi for other offerings of the course can be found at cs128.org/archives.

Student grades are determined by the following categories:

Category% Contribution
Machine Problems (MPs)50%
Quizzes25%
Graded Lessons20%
Recitation5%

Machine Problems (7 total across the semester) are longer programming assignments that students complete over approximately one to two weeks depending on the assignment. MPs account for half of the course grade and carry a zero-collaboration policy (i.e., they are treated like exams). Quizzes (7 total) are administered at the Computer-Based Testing Facility and are cumulative, covering all material from the first day of class through the day before the quiz window opens. Graded Lessons are the primary mechanism through which course content is disseminated; they include daily programming exercises that students complete as part of the course.

The course includes several built-in accommodations: 10 dropped graded lessons, 3 dropped recitation scores, 2 MP late-penalty waivers, and 1 dropped quiz score. These accommodations are designed to absorb the kinds of disruptions that arise during a semester without requiring students to request individual extensions. Furthermore, the course offers a quiz catch-up policy: if a student's score on Quiz N+1 exceeds their score on Quiz N, Quiz N is raised to the average of the two.

The grade scale for the course is as follows:

GradeMinimum Percentage
A93%
A−90%
B+87%
B83%
B−80%
C+77%
C73%
C−70%
D60%
FBelow 60%

Enrollment Overview

Before examining the drop data, it is important to establish the enrollment context for the course. The following table summarizes the enrollment trajectory across the semester, from the initial roster through the final count at the end of instruction.

Period Description Students
Week 1 Students enrolled at the start of the semester 917
Weeks 2 and 3 Additional students who enrolled during the add/drop window +19
Weeks 1 through 3 Students who dropped during the add/drop window −67
After Add/Drop Enrollment at the close of the add/drop window 869
Weeks 4 through 15 Students who dropped after the add/drop window −49
End of Semester Final enrollment at the end of instruction 820

At the close of the add/drop window, the 869 enrolled students comprised 396 majors (45.6%) and 473 non-majors (54.4%). By the end of the semester, 805 of the 820 students who completed the course (98.2%) earned a passing grade, and the overall class average was 93.9%.

The 67 drops that occurred during the first three weeks of the semester (i.e., the university's add/drop window) are excluded from the grade analysis that follows. While these drops largely reflect routine schedule adjustments, it is worth noting that two quizzes were administered during this window (Quiz 1 in Week 1 and Quiz 2 in Week 3). These early assessments may have provided students with a concrete data point about whether the course was a good fit, accelerating a decision that might otherwise have been made later in the semester. Given that this is a standard administrative period, we do not consider these drops to be meaningful for understanding student attrition.

This means that our analysis focuses on the 49 students who dropped the course after the add/drop window closed, during Weeks 4 through 15 (February 10 through May 7).

Scope and Methodology

For each student who dropped during the analysis period, we used the most recent weekly grade report preceding their drop to determine their letter grade and course percentage at the time they left the course. Students who dropped and later re-added the course (i.e., those who ended the semester still enrolled) are not counted as drops. Students marked "No Grade" had no graded work whatsoever in the system; they were enrolled in the course but did not interact with it. Spring break (March 16 through 22) is excluded from the weekly numbering.

We define "majors" as students enrolled in Computer Science, CS+X, Mathematics and Computer Science, or Statistics and Computer Science. All other students are classified as "non-majors."

At a Glance

49 Drops After the Add/Drop Window
22 Were Earning an A or B (44.9% of All Drops)
47 Were Non-Majors (95.9% of All Drops)

Drops Over the Semester

Drop activity was not uniformly distributed across the semester. The highest concentration of drops occurred during Weeks 7 and 8, when students encountered classes, the call stack and its implications for automatic memory management, and dynamic memory allocation. These topics are traditionally challenging in an introductory C++ course, and the increase in drops during this period is consistent with that expectation. It is important to note, however, that the number of drops alone does not tell us whether these students were struggling with the material, as we will see in the grade breakdown that follows.

Who Is Dropping? The Grade Breakdown

This is where the single-number narrative breaks down. In several weeks, the majority of students who dropped were earning A's. These are not students who were failing the course; they were students making a deliberate choice to leave a course they were succeeding in, and their grade data does not suggest that academic difficulty was the driving factor.

When we examine the overall grade distribution of all 49 post-window drops, we find that 22 students (44.9%) were earning an A or B at the time they dropped. Of the 15 students who dropped with an A or A−, course percentages ranged from the low 90s to 100%. An additional 5 students were earning a C, bringing the total number of passing students who dropped to 27 (55.1%).

Meanwhile, only 17 students who dropped were earning an F, and 3 were earning a D. The 2 students labeled "No Grade" did not interact with the course (i.e., they had no graded work in the system); because these students had no grades to evaluate, they are excluded from the passing and failing counts above. This means that the number of students who dropped because they were clearly struggling academically (i.e., D and F combined) accounts for 20 of the 49 drops, which is fewer than the 22 students who dropped while earning an A or B.

The question becomes: if a substantial portion of students who drop are performing well in the course, what does the drop number actually measure? We believe these data suggest that the drop count conflates at least two distinct populations of students: those who are struggling academically and those who appear to be leaving for other reasons.

Among those "other reasons," one likely contributor is the competitive nature of transferring into CS+X majors: many students believe they must earn an A in this course to be admitted, and a student who concludes mid-semester that an A is out of reach may choose to drop and retake the course later rather than accept a lower grade. We do not have data on how many of the students who dropped were seeking to transfer, but the pattern is consistent with this explanation.

Treating the drop number as a single indicator of course difficulty or student success misrepresents what is actually happening.

Majors vs. Non-Majors

We further examined whether the students who dropped were majors (i.e., Computer Science, CS+X, Mathematics and Computer Science, or Statistics and Computer Science) or non-majors. The results are striking: of the 49 students who dropped after the add/drop window, only 2 were majors. The remaining 47 (95.9%) were non-majors.

The 2 majors who dropped had mixed grades, with one earning a passing grade and one not. This means that for CS 128, nearly all post-drop-window attrition came from students who were not considered a major. Given that non-majors may be taking the course to explore computing or to fulfill a requirement, it is not surprising that this population is more likely to re-evaluate their enrollment as the semester progresses and the material becomes more demanding.

Enrollment Trajectory

The following chart shows how cumulative enrollment changed over the full semester, including the add/drop window. The vertical dashed line marks the close of the add/drop period.

Week-by-Week Detail

The table below maps each week to the topics covered, assessments given, the number of drops, and the grade breakdown of those drops. Topics listed are inferred from the course schedule and represent the primary theme for that week.

Week Topic Assessments Drops Grade Breakdown
Week 4
2/10/25
File I/O, Debugging, and Build Systems MP Hawaiian Words Due, MP DNA Forensics Released 5 B: 1, C: 1, F: 2, No Grade: 1
Week 5
2/17/25
Version Control, Error Handling, and Testing Quiz 3 8 A: 4, B: 1, D: 1, F: 2
Week 6
2/24/25
Pointers, Arrays, and Introduction to Classes MP DNA Forensics Due, MP Mountain Paths Released 6 A: 5, F: 1
Week 7
3/3/25
Classes and Operator Overloading Quiz 4 10 A: 3, B: 2, D: 1, F: 4
Week 8
3/10/25
The Stack and Dynamic Memory Allocation MP Mountain Paths Due, MP Seam Carving Released 12 A: 3, B: 3, C: 2, F: 4
Week 9
3/24/25
Memory Management and RAII Quiz 5 6 C: 1, F: 4, No Grade: 1
Week 10
3/31/25
Copy Semantics and Linked Lists MP Seam Carving Due, MP DNA Splicing Released 0 None
Week 11
4/7/25
Templates and Introduction to Trees Quiz 6 0 None
Week 12
4/14/25
Binary Search Trees MP DNA Splicing Due, MP Naive Database Released 2 C: 1, D: 1
Week 13
4/21/25
Graphs and Graph Representations Quiz 7 0 None
Week 14
4/28/25
Inheritance and Polymorphism MP Naive Database Due 0 None
Week 15
5/5/25
Iterators, Move Semantics, and Smart Pointers 0 None

Final Grade Distribution

To complement the drop analysis, we also examined the final grade distribution for the 820 students who completed the course. This provides additional context for understanding the overall trajectory of the class and whether the students who remained were, on the whole, succeeding.

Of the 820 students who finished the course, 805 (98.2%) earned a passing grade (C− or above), and 87.4% earned an A or A−. The number of students who finished with a D or F was 15 (1.8% of the final roster). The class average was 93.9%.

Majors averaged 95.2% with a 99.0% pass rate, while non-majors averaged 92.6% with a 97.4% pass rate. Both populations performed well overall, though the chart above illustrates that non-majors accounted for a somewhat larger share of the lower grades.

These figures reinforce the central finding of this analysis: the students who dropped were not, on the whole, a population that was struggling. The course maintained a high pass rate among those who stayed, and a substantial share of the students who left were performing at a level consistent with the students who remained.

DFQ Rate

The DFQ rate represents the percentage of students in a course who receive a grade of D or F, or who dropped the course beyond the add/drop period (Q), relative to the total enrollment after the add/drop window. Some institutions use this metric to measure course difficulty and student success, particularly in departmental evaluations.

For CS 128 in Spring 2025, the overall DFQ rate is 7.4%. When we disaggregate this metric by major status, the difference is substantial: the DFQ rate for majors is 1.5%, while the DFQ rate for non-majors is 12.3%. This disparity reinforces the earlier finding that the vast majority of post-drop-window attrition came from non-major students. Furthermore, as we have demonstrated throughout this analysis, the overall DFQ rate conflates meaningfully different student populations. Of the 49 students who dropped, 22 (44.9%) were earning an A or B at the time they left: 21 non-majors and 1 major. As a lower bound, if we exclude these students whose grades do not suggest academic difficulty, the overall DFQ rate falls from 7.4% to 4.8% (excluding all 22 A/B drops), and the non-major DFQ rate falls from 12.3% to 7.8% (excluding the 21 non-major A/B drops). The actual rates of academically driven attrition likely fall somewhere between these figures and their unadjusted counterparts.

Conclusion

Nearly half of the students who dropped CS 128 after the add/drop window were earning an A or B at the time they left.

The raw drop count for a course is a poor proxy for how well students are performing or how effectively the course is being taught. In CS 128, more students dropped while earning an A or B (22) than dropped while earning a D or F (20), and 95.9% of all post-drop-window attrition came from non-majors. We believe that any meaningful discussion of course drops must account for who is dropping and how they were performing at the time, rather than treating the drop number as a monolithic measure of course health.

We expect that this kind of disaggregated analysis will open the door for more informed conversations about student retention, course design, and how instructors and departments evaluate the success of their courses.