KotlinCS 124 LogoJava

Course Design

CS 124 is designed to give every student a chance to succeed. Some aspects of the course design are unusual, but all help support high rates of student success.

CS 124 differs from other courses at the University of Illinois. Below we describe innovative components of the course design and explain the reasoning behind them.

Tutorial Format
Tutorial Format

Tutorial: a class conducted by a tutor for one student or a small number of students

We want you to feel like you’re the only student in CS 124—like it’s a tutorial being taught just to you. But, of course, CS 124 enrolls more than one student! So we achieve the tutorial format not by hiring thousands of course tutors, but through educational innovation.

It starts with excellent materials. The CS 124 daily lessons are the most advanced interactive platform for learning computer science available today. Our playgrounds, interactive walkthroughs, programming and debugging exercises, and other lesson components combine to give you the best shot at learning the material independently. You do have opportunities to collaborate with other students in CS 124 and learn together, but we never rely on you to teach them the material or them to teach you. That’s our job.

But when you do need support, individual tutoring is only a click away. Our innovative online tutoring platform provides immediate access to one-on-one support from an actual human tutor—not some AI chatbot. Because we believe that, while AI has a role to play in education, there’s no substitute for personal support. From sunup to sundown, when you have a question, we have a tutor waiting. And while online tutoring is usually the best way to get immediate support, we have in-person tutoring available as well.

And CS 124 course tutors are students just like you! They took the course recently themselves. They remember that it was hard sometimes. They struggled, but they stuck with it, and eventually succeeded. And they know you can too!

Finally, when you struggle, we notice. We test your knowledge frequently to make sure that we notice as soon as you get behind. When you do poorly on a quiz, expect a tutor to reach out and check in—to offer support, direct you to resources, or just provide encouragement. We all disappoint ourselves sometimes. The most important thing is to not give up.

Overall, our tutorial format is not only highly successful, but also better preparation for how you’ll learn things after you leave college. When you need to learn something new on the job, it’s common to be asked to work through instructional materials independently, with a more experienced colleague available to answer questions and keep you on track. That’s exactly what we do in CS 124. We’re not just teaching you how to think—we’re also teaching you how to learn.

Daily Lessons
Daily Lessons

CS 124 does not hold lectures.

Study after study has found that lectures are an ineffective way to teach. Learning requires active engagement, not passive watching(1).

In CS 124, you’ll learn through active engagement with our interactive daily lessons. Each lesson mixes text, runnable examples, interactive code walkthroughs (unique to CS 124), and short videos. Along the way you have many chances to test your knowledge through practice problems, debugging challenges, and homework exercises, with course tutors supporting you every step of the way.

Daily lessons have many other advantages compared to lecturing. Returning to the content each day helps achieve spaced repetition, helping you learn even more efficiently. Students with different levels of prior experience can move at their own pace, which is impossible with one-speed-fits-all lecturing. This is particularly important in a course like CS 124, which enrolls students with a wide range of prior experience. Eliminating lecture space and time constraints has also allowed us to open up the course to anyone on campus.

We’ve also amassed a large and growing set of explanations from multiple instructors—Colleen and Geoff, and even some new faces from outside Illinois—and from course tutors. So if you don’t understand something, there’s probably another explanation that might help.

Frequent Small Assessment
Frequent Small Assessment

CS 124 does not hold a final exam. Or a midterm. Or any high-stakes assessments.

High-stakes assessments like midterms and final exams encourage and reward cramming, which does not lead to knowledge retention. Infrequent assessment also allows students to go long periods of time without engaging with the content. We want you studying a small amount every day. So we assign a daily homework problem, and have you take a weekly quiz.

Frequent small assessment may be the most important component of student success in CS 124. We could fill pages about all of the benefits of this approach(2). When you study, you learn. Preparing for CS 124 quizzes will solidify your knowledge. Taking the quizzes will test your understanding, and provides important feedback for both you and us about what you know.

When you do poorly on a quiz, you have time to catch up, and should expect us to reach out to help as well. Many small quizzes means that each is less stressful, and allows you to recover from a bad assessment. It also allows us to implement learning-focused grading policies, including dropping low scores and catch-up grading.

Online Tutoring
Online Tutoring

CS 124 focuses on providing online tutoring. We do also run in-person tutoring sessions, but prioritize supporting our online tutoring platform.

Our reasoning here is simple: We want to be there whenever you have a question! Due to our daily lesson format, we know that students are engaging with material at all hours throughout the day. This way, whenever you have a question, or a small doubt, or are curious about something, or confused, or frustrated, or need a bit of guidance—we’re always a click away. No need to wait hours or days for the next set of office hours. No need to trudge across campus into some basement or stand in line waiting to cram into some tiny office.

We will provide a variety of opportunities for students to connect with each other and with course tutors, in both academic and social settings. But we also want to make it as easy as possible for you to ask questions and access support—wherever, whenever.

Autograding
Autograding

CS 124 submissions are autograded.

With a tiny number of infrequent exceptions, all work submitted in CS 124 is automatically evaluated and feedback returned immediately. Submitted code is examined to determine whether it performs correctly, meets our style guidelines, and for other aspects of code quality. The tools and systems used to do this were developed specifically for CS 124, and provide higher quality and more comprehensive feedback than other similar courses. All code submitted in CS 124 can be submitted an unlimited number of times without penalty—until you reach a deadline (homework or project) or run out of time (on a quiz).

We have embraced autograding for several reasons. It’s not just because the course is large. Autograding provides you with immediate and actionable feedback on your work. Correcting small mistakes isn’t something you only do when learning to program. Correcting small mistakes is most of what programming actually is. We want you to get good at it. The more mistakes you make, the more you’re learning.

Autograding also frees course tutor time to provide direct student support. Grading code by hand is difficult, boring, time-consuming, and slow, and most humans are terrible at spotting mistakes that are trivial to uncover through automated testing. Put another way: Humans are bad at evaluating code, and computers are good at it. We want the humans in CS 124 doing what humans are good at—working with you one-on-one to support your success in the course. And our autograding tools are pushing the limits of what’s possible through automated analysis.

Summary
Summary

Overall, the design of any successful course involves a series of tradeoffs. We’ve made these very intentionally in CS 124, and are always happy to engage with students about how the course is designed and implemented.

We also continually monitor many quantitative aspects of CS 124—including student performance, drop rates, and continuation to and performance in downstream courses. All of the design choices listed above have been associated with positive changes in these course health metrics. And we’re always trying to do better.