Large Computer Science Class Sizes Make Students and UMN CSE at Risk

06 May 2019


College students across the nation have the opportunity to study anything that they put their minds and efforts to. According to the U.S. Student Loan Debt Statistics for 2019, more than seventy percent of students are taking out student loans to pay for college expenses and tuition1. Even so, while college tuition continues to rise each year, class sizes are also increasing every year. Students in large-sized classes often have difficulty and are not able to learn the concepts and content as in depth and thoroughly as those who have opportunities to take classes with smaller sizes. Students, especially those who are pursuing majors in the computer science field, have to be dedicated to work diligently to understand the aspects and perspective of class materials, especially in larger classes. Even so, learning is more productive and effective for those who are in smaller classes where they can comprehend, learn, and interact more meaningfully with professors and teaching assistants.

When computer science lectures and labs have too many students, the dropout rates for the class, within two months, is beyond the normal rate compared to almost all other classes at the University; this is a sign that the Department of Computer Science needs to change the current situation in order to help students succeed. Reducing class sizes and increasing the number of labs as well as available teaching assistants is essential to ensuring the success of students in computer science.

Please refer to TABLE 1, which is attached along with this proposal: one can find that the number of students in each lecture ranges from 102 to 324; each lab from 26 to 44; and the dropout rate per class is from 7% to 41%2. The dropout rate for the past few semesters is also showing a continued, gradual increase over time. Moreover, the current semester’s dropout rate is one of the highest percentages to date, compared to other semesters; yet, the semester is not over, and there is a possibility that many students will drop out on the very last day if they do not have a significant understanding of the class material. On the other hand, there are seven classes that have significantly smaller enrollment, and the drop-out rates are negative for these classes. Negative drop-out rates describe a situation where there are more students who remain in the same lecture and lab than the total available seats throughout the entire semester. The highlighted part, shown in TABLE 1, contains the negative dropout rates that are seen in smaller class sizes. For instance, during the spring of 2017 for one of the CSCI 1133 classes, there were 102 seats available in the lecture and 26 in the lab. At the end of the semester, 107 students completed the course with no dropouts. This occurrence is similar to a case that happened during the spring of 2016 and spring of 2018, with only 108 and 145 students in lecture, and 26 and 34 students in labs respectively. These statistics prove that smaller lectures and labs really do help students learn better and succeed. Students in these classes have the opportunities and attention needed to learn, with smaller teacher-to-student ratios.

Although the University has increased the number of lectures and labs through the past 3 years (TABLE 1), there is still not a sufficient number of classes due to the fact that this is a required, introductory class for Computer Science students entering the University of Minnesota. Under this proposal, I, as one of the computer science advisors at the College of Science and Engineering (CSE), would like to address the problems that students face in larger class sizes, and how they affect CSE and the University as a whole. I will also compare other schools’ class sizes in conjunction with their rankings. Furthermore, I will be discussing the recommended actions to help solve this concern so that students can be successful, thus significantly reducing the drop-out rates for these classes, which in turn helps both the students and the University of Minnesota.

Problem Statement

The introductory computer science classes at the University of Minnesota’s - Twin Cities campus, such as CSCI 1113 and 1133, have more than 200 students in each lecture. Each student must attend one of the laboratories each week to demonstrate the understanding of class materials, and each laboratory section has approximately 36 students.

During the spring 2017 semester, more than four out of ten students dropped one of the CSCI 1113 courses. The students in the large-sized, introductory courses are constantly at risk of dropping out of their majors prematurely when they do not understand what is being taught in large lectures. The problem is evident within the freshmen population who are new to the University setting, who are trying to figure out their potential majors, and/or who have not written in a programming language before. This trend continues to repeat semester-after-semester, and critically reflects the ranking system which compares how our University compares to other institutions throughout the nation and around the world.

Large class sizes, at the University, are oftentimes very chaotic when many students are trying to ask questions related to their assignments, labs, quizzes, and exams in a short time frame with limited instructors. For instance, students often ask questions for clarification during lectures. With very large class sizes, questioning can take up to half of the lecture. As a consequence, professors do not have enough time to keep up with the syllabus materials, so they often have to rush through their notes and slides to make sure all of the material is covered by the end of the lecture. Consequently, students are frequently either not given adequate time for questions, or they do not obtain a thorough understanding of the materials needed for assignments and exams. Students may also feel as if they are ignored in lectures, since the topics are covered quickly and the professors can only answer so many questions.

Frequently these students feel isolated and frustrated because they don’t understand the material thoroughly enough to be able to catch up with only one or two questions.

While lectures may feel a bit chaotic at times, each lab with 36 students is even more disorderly. Often, there are only two to three undergraduate teaching assistants (TAs) assigned to each lab. The lack of teaching assistants hinders many students’ abilities to learn as deeply as they could. Lab components are designed to challenge and help students engage with the new materials that are taught each week in lecture, especially for those who are struggling in the class. If many students have questions, there are often not enough TAs to answer everyone’s questions before the lab ends, which is not conducive to a successful learning environment. Due to the fact that each lab is about two hours long and most labs have over thirty-six students, each student only has about four minutes to ask their teaching assistants any questions. This is obviously not enough time because explaining computer science problems and code is often quite complicated and time-consuming. Sometimes typing the code alone takes four minutes, let alone trying to explain the mechanics behind the program. On some occasions, all of the TAs are needed to help one specific student if they encounter a bug that even the TAs have not encountered, which in turn, causes long lines to form while other students wait to get help.

If students did not have time for their questions during lectures and labs, they often needed to go to the TAs’ or professors’ office hours to ask additional questions, since there may not have been time in class for detailed questioning. Even though office hours are held by numerous TAs every day of the week, this is still not enough time for such large classes, especially when a large number of students need additional assistance for the same concept at the same time. Some students may also be unable to come to office hours due to class conflicts, work schedules, commutes, or even may be too scared to ask questions individually. If a student already feels as though they’re too far behind in the class, they might not want to approach a member of the teaching staff and ask questions for fear of embarrassment. When students are forced to use office hours, rather than class time for questions, they don’t have the opportunity to reflect and learn from their peer’s questions and feedback. This problem often results in unnecessary repetitiveness because students don’t get to hear the answer to common questions all at once in the lecture. Whereas in a smaller class, there would be time to address a student’s questions as a group, which would solve this problem and provide opportunities for students and instructors to make connections and interact one-on-one.

When comparing the University of Minnesota’s - Twin Cities computer science program to others in the United States, the program ranks 29th. Carnegie Mellon University is the leading computer science program in the nation3. The statistics show that approximately 65% of classes at Carnegie Mellon University (CMU) have 20 students or fewer, and 22.2% with 20-49 students. The statistics indicate that the majority of the classes are being offered with smaller class sizes compared to our University; this allows CMU students to develop a better understanding of the material, which greatly increases the graduation rate compared to UMN.

If the Department of Computer Science continues to follow its existing standards, students will eventually have less understanding on the overall concepts, drop out of the course or college, pursue another major, or transfer to a smaller class-size institution. The problem is a source of great loss for both students and the University. The University always strives to have everyone’s voices heard, yet students don’t have the chance to participate in learning and receive feedback. The lack of feedback and the lack of smaller class sizes make learning more difficult for students, and, this in turn, makes the dropout rate for classes at the University higher than they should be, degrading the University’s prestigious status.


The first suggestion is capping the class sizes at 100 students per lecture. Instead of one giant lecture class, provide students the opportunity for multiple lectures, giving students more options for availability. Adding more lectures will allow more students to take the class and also have individualized attention. In introductory programming or computer science courses, there should always be a cap on the number of students so that there can be plenty of individual, interactive support. Programming takes practice and more practice; therefore, if students aren’t given the support they need to practice and learn at a consistent pace, the likelihood of failure grows substantially.

The second suggestion is to increase the number of teaching assistants that are available and the times that they’re available for office hours. At the current moment, there are only about eight teaching assistants for about 200 students, but there should be at least one teaching assistant for every fifteen-to-twenty students. With more teaching assistants, there will be more time during labs for interaction, as well as more times that students can visit a staff member in person to get proper help with programming concepts. Computer science is a class where attention to detail is extremely important; if students don’t have a proper support system and access to in-person help, they can fall behind quickly. Even one lapse in understanding of a simple programming concept can ripple and cause a student to fall so far behind they fail at all the following materials. Therefore, if students have more help available to them, they will choose to continue the class, even if they are having difficulty because they have the assurance of support rather than having to drop the class for fear of failure.

Thirdly, the number of students in a lab should also be capped at 20 students in order to maximize the time that each student or pair of partners has to interact with their teaching assistant. Some computer science labs have over thirty-five students and only two to three teaching assistants, making it extremely difficult for students to get the help they need in the lab. Labs in computer science are often tailored to be difficult and challenging. The exercises given are meant to be more difficult than even exam questions. Therefore, having the appropriate and necessary time for help from your teaching assistants is extremely important. Explaining problems in programming requires a certain degree of detail, and if there is an excessive number of students and minimal teaching assistants, there can only be very brief interactions between students and instructors before the lab is over. This very short amount of time is definitely not enough time to help students succeed at programming. These classes are complicated and full of difficult concepts, and with so little support and time in labs, students frequently become confused and stumped over computer errors.


The total number of students who are in the computer science introductory courses exceeded 700 students in the fall and 900 students in the spring. In order to maximize the success of potential computer science students, the lectures and labs are to be capped at 100 and 20 students respectively. With smaller class sizes, the department has more options for locations and the times that the classes can be available across the CSE areas, such as Bruininks Hall, Keller Hall, 10 Church Street Auditorium, Molecular Cellular Biology, just to name a few.

With many students who need to take an introduction to CSCI courses, the number of professors must also increase. Since each lecture has a 100 students cap, the Department of Computer Science must hire additional staff to take over these courses. Instead of having to hire 8 to 10 professors each semester, the department only needs to have a maximum of 5 since each professor can cover two lectures for the entire semester. This minimizes the cost for the University and maximizes the content that is being taught to students. The University will be able to use the standard hiring process to find new professors to teach two lectures each semester4. If somehow the department has difficulty finding professors, graduate students could be utilized to instruct classes as needed. This would also be beneficial in the sense that graduate students are still students and are steeped in the material thus they can benefit from learning through teaching.

In addition to adding new professors, more undergraduate assistants must be hired to help students with their assignments, projects, and answering student questions. This process will be easier than hiring professors since undergraduate assistants are straight out of their core computer science classes; their knowledge is fresh and they can help students easily. They can also more quickly build rapport with students and become personally close, making students feel more comfortable when asking questions.

Figure 1 (shown below) is an estimated total cost for implementation each semester for CSE students who are pursuing computer science. The planned number of professors is five and the number of undergraduate TAs is forty. The increased instructional staff will improve students’ success rates in CSCI 1113 and CSCI 1133 through lectures, labs, and office hours.

FIGURE 1: The figure shows the estimated total cost of the implemented plan and the change of cost based on the total occupants each semester (right-most column). The average annual cost for professors is $44,4346, which is divided by 2.5 semesters (some work during the summer, some don’t). Undergraduate TAs cost is calculated at $11.00/hour, for 10 hours a week, for 15 weeks.

Adding new professors and teaching assistants can be very costly, with an approximate additional $83,396, but students who enter the College of Science and Engineering are charged an extra thousand dollars per semester in tuition7. Using some of that extra money from heightened tuition in CSE could aid in paying for the extra teaching staff. Hundreds of new students enroll in CSE each year, and they all pay that extra thousand dollars per semester, thus making the funds easily accessible and abundant. This method of financing is both logical and efficient because it utilizes resources that the University already has.


The Department of Computer Science at the University of Minnesota needs to have significant changes made in the way that the classes for computer science are structured in order to maximize student success. Class sizes need to be decreased and capped in order to give all students the proper help and time that they need with the instructional staff. Secondly, there needs to be more teaching assistants and lecture times/lecturers in order to maximize the number of students that can take the class while also increasing the amount of help available to students. These changes will help students succeed in computer science and will, in turn, reflect positively on the major and the College of Science and Engineering at the University of Minnesota. The students that leave the College of Science and Engineering are often the minds that create and shape some of the world’s greatest technological advances. Keeping this in mind, the University should do all that it can to ensure their students’ success can inadvertently improve the world along the way.



  1. U.S. Student Loan Debt Statistics for 2019,
  2. UMN Class Sizes for Computer Science Throughout the Years,
  3. The University of Minnesota and Carnegie Mellon University Ranking,
  4. Hiring Process for New Computer Science Professors,
  5. Class Size Reduction: A Proven Reform Strategy,
  6. The Average University of Minnesota Professors and Undergraduate TAs Salaries,
  7. CSE $1,000 Surcharge for Incoming Students,