KotlinCS 124 LogoJava

Fall 2026 Syllabus

Changes for Fall 2026
Changes for Fall 2026

Fall 2026 continues the course structure introduced in Spring 2026:

One thing about the project has changed:

Two things about grading have changed:

We also explain where the weights come from this semester, since a grade you can predict is more useful than one you can’t.

And our collaboration policies have been rewritten. The old rules defined honesty by authorship—you wrote it, so it’s yours—which still describes the homework and quizzes exactly, but describes the project not at all, since an agent writing your code is the assignment there. The two halves of the course now have their own rules, and one consequence is that you may publish your independent project wherever you like.

Overview
Overview

This course is an introduction to the concepts and craft of computer science. It will teach you to both think and act like a computer scientist. It will change how you approach problems and provide you with powerful tools that you can use to change the world for the better—whether you write code in the future or not.

Computer science is both an applied and a conceptual discipline. You will learn how to program in this course, to allow you to bring your creative ideas to life. It can be frustrating at first. Computers are irritatingly literal machines, and challenge our ability to formulate clear and correct problem solving plans.

But programming is a skill. You will get better with practice. And you will get lots of practice! Computers are the most powerful tools that we have at our disposal to solve almost any problem. Learning how to get them to do your bidding is extremely empowering. You will quickly come to understand the hacker’s lament: you can do anything, but you can’t do everything(1).

Learning to program also trains you to think—to formulate correct and complete problem-solving plans and express them clearly. To solve a programming problem you must first read and understand the written description. Next, you must formulate a plan to solve the problem, which frequently requires correctly handling unusual situations. Next, you must write your plan down in a precise way that the computer can understand. At that point we’ll evaluate your submission to ensure that it fully solves the problem. If it doesn’t—which it probably won’t on the first few tries—you’ll need to understand the problem and adjust your plan accordingly.

Reading comprehension. Planning. Precise expression. Accepting, understanding, and fixing mistakes. These are intellectual abilities that you will develop through programming. But they are not limited to programming, and you will find them useful regardless of how you end up solving problems in the future.

While programming is important and enjoyable, computer science has deep conceptual concerns at its core. You’ll learn to design solutions to problems so that computers can carry them out efficiently. We call these algorithms. Designing computer algorithms requires clarity and precision that will improve your ability to solve any problem. And then you get to build your solutions and deploy them to billions of people across the world. No other field has this potent mixture of left-brain analytics, right-brain creativity, and global impact.

Description and Prerequisites
Description and Prerequisites

From the course catalog:

Required Materials
Required Materials

There is no required textbook for CS 124. All daily lessons are posted on this website.

You will need a personal machine capable of software development to complete the independent project assigned in the second half of the semester. Requirements depend on what you choose to build; Android Studio is among the more demanding options, so a machine that can run it will comfortably handle anything else. For most students, a personal laptop or desktop computer is sufficient. If you do not have access to a personal computing device meeting these requirements, please see our laptop loaner program information for details about university programs that provide free laptop loans for the semester. If you are really stuck, please contact the instructor to discuss your options. We want every student to be prepared to succeed in CS 124!

For Fall 2026, students will also need to purchase access to Claude Code, an AI coding agent, for use during the MP.

One month of Claude Code Pro costs $20. Students should expect to purchase two to three months of access, for a total cost of $40–$60. (The MP spans multiple months, and unfortunately fall break falls between the start and the end of the project, extending the project period by one week.)

While there are cheaper and free options, we want CS 124 students to be exposed to the best available AI technologies—so-called frontier models. At present the best AI coding tools are both much, much better than inferior approaches—like copying and pasting to ChatGPT—but also cost money. Please see our statement on AI for more details. We believe that you will benefit greatly from this small investment in exposure to the future of programming.

Learning Objectives
Learning Objectives

CS 124 works on both conceptual and skill-based levels. We teach you how to think, and we teach you how to do.

The two tables below are written for our accreditation reviewers, and the Assessment column describes how we demonstrate to them that the course met each outcome—not how you are graded. You can skip them.

Conceptual Objectives

When you finish this course, you will be able to:

OutcomeAssessment
Develop algorithms to effectively solve problems using computers—including both iterative and recursive algorithms—and reason about their computational and storage requirements.Class participation and quizzes.
Describe how computers represent, structure, and manipulate data—including numbers, strings, and multimedia data including images and audio.70% correctly identified marks outcome achieved.
Explain the importance of core Java or Kotlin software development concepts—including object orientation, object types, encapsulation, and inheritance.70% correctly identified marks outcome achieved.
Understand runtime and design tradeoffs between different algorithms, data structures, and data structure implementations.70% correctly identified marks outcome achieved.

Programming Objectives

When you finish this course, you will be able to:

OutcomeAssessment
Design and implement small and medium-sized Java or Kotlin programs that perform straightforward operations on simple data types, using iterative, object-oriented, and recursive approaches as appropriate.The independent project (MP) and daily homework.
Learn to use modern Java or Kotlin software development tools—including an integrated development and debugging environment (Android Studio), source version control (Git), test-driven development, coding convention tool (checkstyle or ktlint), and build system (Gradle).70% correctly identified marks outcome achieved.
Utilize standard Java or Kotlin features and libraries—including objects and simple built-in data structures.70% correctly identified marks outcome achieved.
Debug and test Java or Kotlin programs.70% correctly identified marks outcome achieved.
Use programming to solve problems in other domains.70% correctly identified marks outcome achieved.

Preparation
Preparation

CS 124 assumes no knowledge of computer science or prior programming experience. However, the course is a fair amount of work. Those looking for a gentler introduction may consider taking CS 101, CS 105, or CS 107.

Some students in CS 124 have no experience with computer science. Others have been programming for years. But our goal is for everyone to succeed! In Fall 2024, the grade gap between students with and without prior experience was only 2%, and 82% of students earned an A grade! Regardless of whether you’ve programmed before, you can succeed in CS 124.

If you’re new to computer science…

Welcome to the most exciting field on Earth! We’re extremely happy to have you. We know that it can be hard to get started, but trust us—you’ll get better with practice. Programming is a skill. The more you do, the better you get. If you’re willing to put in the time and energy, we’re here to help you succeed. And you will.

When you’re starting something new, it’s normal to occasionally feel frustrated or intimidated by those around you. We were all new once, and most of us try new things at least once in a while. So we know what it feels like. Just remember that no matter how it may seem, there are a lot of other students in CS 124 that are beginners too. And if you’re working harder than some other students in the class, then it just means that you’re learning more than they are.

Also keep in mind that computer scientists can get extremely excited about what they know. Our field is awesome, and we’re all learning new things all of the time. Unfortunately, sometimes that can come off as boasting or bragging. Don’t let it get you down. We want you to share in the excitement, and will do our best to make sure that happens.

If you kind of already know what you are doing…

There’s so much more to learn! No matter how much background in computer science you have, there are always new areas to explore, new languages to learn (like Kotlin!), and new problems to solve. Even if you don’t find every aspect of CS 124 challenging, we hope that it can continue to move you forward on your journey in computer science. Keep in mind that continuing to develop as a programmer requires practice. If your project isn’t taking you much time, then you aren’t getting the practice that you need to keep improving. You might want to join the honors section, get involved with the ACM (Illinois Chapter of the Association for Computing Machinery), or just make sure that you have some side projects to keep you busy.

And please feel free to help other students in the class that might not know as much as you. One of the best things about computer science is the community of generous and patient people willing to help beginners get started.

If you really know what you are doing…

Perhaps you should sign up for the CS 124 Proficiency Exam and bypass CS 124 entirely?

General Education Information
General Education Information

CS 124 meets the University of Illinois General Education Requirements in the Quantitative Reasoning 1 category.

FAQ
FAQ

Here are answers to some commonly-asked questions about CS 124.

I want to register for a discussion section, but it’s full? Or I want to switch sections. Can you help me?

No, sorry. We have absolutely no control over registration. You’ll need to talk to an academic adviser.

I added the course late. What do I do?

We have special instructions for you here.

Design
Design

Moved here.

People
People

Hi, I’m Geoff! I teach CS 124.

You can call me “Geoff”, or “Professor Challen” if “Geoff” makes you uncomfortable. Please don’t call me “Challen”—I prefer “Geoff”. You can learn more about me from my profile or through my personal website. I’ll also be hanging around during discussion sections on Tuesdays at CIF, so feel free to come by if you’d like to chat.

CS 124 is a large course, and so most of your interaction will be with my fantastic team of course tutors. You can learn more about them through our tutor directory, since many have profiles or introduction videos posted.

Activities
Activities

CS 124 consists of daily lessons, discussion sections, and tutoring. You’ll do some work on CS 124 every day, and a lot of work on CS 124 on some days.

Daily lessons are designed by Geoffrey Challen, who has primary responsibility for course content and administration. You’ll also be viewing content created by Colleen Lewis, who co-taught CS 124 in Fall 2021 and added many Java walkthroughs and videos. Undergraduate and graduate course tutors run online and in-person tutoring at all hours of the day and night.

Discussion Sections
Discussion Sections

Discussion sections meet on Tuesdays and are mandatory. During discussion sections you will complete activities that prepare you for the independent project (MP). Attendance will be taken at your assigned discussion section.

Each discussion section you attend is worth one point, up to 10 points—10% of your course grade. There are 14 graded discussion sections, so you can miss up to four and still earn all 10 points. Week 1 is a Q&A rather than a project activity, so it is not graded.

There is no separate excused-absence policy to keep track of, and no penalty to accumulate: the four sections you can miss are already built into the cap. Save them for when you need them.

Here is the week-by-week schedule of discussion section topics:

These activities guide you from initial brainstorming through to building your app, through the combined power of human collaboration and AI coding agents.

Calendar
Calendar

We suggest that you add our course calendar to your calendaring program. All course programming, deadlines, and other activities will be posted on this calendar.

We have a description of all posted activities maintained on this page.

Lessons
Lessons

Programming is a skill. And the best way to learn to program and to get started with computer science is to do a little bit every day.

CS 124 course content is delivered through a series of daily lessons. Each lesson introduces new material through a combination of text, video, and interactive walkthroughs. Throughout each lesson are practice problems, and at the end of each lesson are one or two homework problems to complete to demonstrate your understanding of the lesson’s content. You should set aside time each day to review each lesson and complete its homework problems.

Quizzes
Quizzes

Each 50-minute quiz emphasizes the material covered since the previous quiz, but everything covered up to that point is fair game. Quizzes contain a mixture of multiple-choice questions covering course concepts along with programming questions and debugging challenges. The programming questions will be similar—but not identical—to the previous homework problems. Keeping up with the lessons will prepare you for each quiz.

CS 124 quizzes will be given on Mondays and Tuesdays throughout the semester. Quizzes are taken in the Illinois CBTF, and scheduled using the CBTF scheduling website. You self-enroll in our PrairieTest course using this link. Make sure you log in using your Illinois NetID and password.

If you miss your CBTF reservation in a given week, we will not arrange for you to have another opportunity during that same week. You are responsible for signing up to take them and showing up at your assigned time. However, you may have an opportunity to retake some of the same quizzes again next week: see the quiz retake policy. Quizzes that you miss or do not attempt will be subject to the quiz drop policy.

Tutoring Site
Tutoring Site

All course tutors participate in providing individual assistance through our tutoring site. Tutoring hours will be posted on the calendar.

AI Course Assistant
AI Course Assistant

We also provide an AI course assistant that can help answer questions about the syllabus, lessons, and course policies. It’s available 24/7 and is a great first stop when you need quick help. Of course, our human tutors are always available to help with more complex questions!

Communication
Communication

CS 124 is a large class. This makes it important for us to communicate with each other in effective ways.

We have set up a comprehensive and well-organized course website and forum to help you find what you need to know. Our goal is to avoid email and other 1-to-1 forms of communication that don’t scale well to large numbers of students.

There are two primary sources of information for CS 124:

  1. This website
  2. The course forum

Most policy questions are answered in this syllabus. For almost anything else, search the forum—maybe another student has asked your question and we’ve already answered it. If you still can’t find an answer, post your question on the forum.

What You Are Responsible For
What You Are Responsible For

You are responsible for email sent to your @illinois.edu email address. We will occasionally use a course email list to send important announcements, particularly at the beginning of the semester.

You are responsible for messages posted in the announcements forum category. These announcements are important and we will frequently post in this category in lieu of using email. You can configure our course forum to send emails each time a topic is created in a specific category. We would suggest that you do that—or plan on visiting the forum each and every day. In fact, both are good ideas.

Contacting the Course Tutors
Contacting the Course Tutors

Please do not email course tutors with general course questions.

You may think that someone spending five minutes responding to your email is not a huge problem. But five-minute responses to 500 students consumes 40 hours. Help us help everyone, and post your question on the forum.

You should absolutely never directly message a course tutor. All tutors are instructed to not respond to direct messages. If you persist in attempting to contact them, disciplinary action may result.

This is not because we don’t like you. It’s simply because there are a lot of you, a much smaller number of us, and many of your questions are shared by other students. If you email us, we can answer your question to one person: you. (And right behind your email is another asking the same question.) If you post on the forum, we can answer your question once to the entire class. And you may find that your question has already been answered, or that another student can answer it for you.

Here is a general guide about how to contact course tutors:

You can probably see the pattern emerging here.

In contrast, here are some cases where you can and should contact Geoff:

In these cases please reach out to an instructor, either directly via email or using a private message on the course forum.

Collaboration
Collaboration

CS 124 asks two different things of you, and they come with two different sets of rules.

The homework and quizzes are where you learn to program. There, the work must be yours in the ordinary sense: you write the code, and you do not copy it from anyone.

The independent project is where you learn to direct an AI coding agent. There, an agent will write most of your code, and that is the assignment, not a loophole.

This is not a contradiction, and it is not us being inconsistent. The two halves of this course teach different skills, so they have to measure different things. What stays constant is the underlying question—is this work actually yours?—and only the answer changes. Both halves fall under the same departmental and university policies, but what counts as a violation differs, so we describe each separately: homework and quizzes below, and the independent project with the rest of the project material.

Cheating in CS 124 may result in a grade reduction, removal from the CS program, or dismissal from the University of Illinois. We have many bright, honest students that want to learn computer science. We don’t waste time and energy on cheaters that don’t want to learn.

Homework and Quizzes
Homework and Quizzes

All homework and quiz code you submit must be written by you. Not by another student, not from the internet, and not by an AI assistant. Hundreds of students work the same problems, so authorship is exactly the right standard here, and the quizzes are proctored precisely so that we can hold you to it.

To be clear about where the line falls: asking questions is fine, getting answers is not. Use our AI course assistant to have a concept explained, ask a tutor to help you find your bug, talk a problem through with a classmate. What you may not do is have any of them produce the code you turn in. Every one of these problems is practice for a proctored quiz you will take without help, so a solution you did not write is practice you did not get.

You may not:

  1. Turn in homework or quiz work that was completed by anyone other than yourself.
  2. Copy or paste code that you did not write into a homework problem or quiz, from any source, including an AI assistant.
  3. Misrepresent your work as the work of another student.
  4. Examine another classmate’s solution, reproduce it, and submit it as your own work.
  5. Share information about the content of quizzes or other private course assessments with other students.
  6. Publish your homework solutions anywhere where other students can find them.
  7. Email or share your homework or quiz code with anyone in the class now or in future semesters.

Note that the last two rules are about homework and quiz solutions, not about your project. You are welcome to publish your independent project—on GitHub, in a portfolio, in an app store, anywhere you like. It is yours, it is genuinely your own creative work, and it is the kind of thing worth showing people. You may also want to look into completing a project as part of the CS 124 honors section: CS 199 124.

A Rule of Thumb

On the homework, a general rule of thumb is that exchanging or soliciting ideas about how to solve problems is not cheating, but exchanging code is cheating. Feel free to discuss your solutions with other students as long as you do not provide them or allow them to view your source code. If you are speaking or signing in English or another human language that’s fine. If you are exchanging computer code, that’s cheating.

Working With Other Students on the Homework

You may find it helpful to collaborate on the homework with others, and this is permitted in CS 124, subject to the rules below.

The goal is to support each other’s learning and practice talking about the problems and computer science together. However, there are lots of ways to work together that could lead to you both learning less than if you had worked independently. And please keep in mind that you will need to complete the weekly quiz on your own, and the homework problems are a critical way to prepare for the quizzes.

If you are interested in collaborating on the homework problems, you may do so freely. We encourage you to find good collaborators. A good collaborator is someone who works at a similar pace and who you feel comfortable exchanging questions with. When you complete the problem, you should both feel confident that you understand the problem you worked on together, and could tackle it on your own. Since you will need to on the next quiz!

You may examine code written by your collaborators—either in person or virtually. However, you may not electronically directly transfer or receive source code. Our homework problems prevent you from directly pasting text anyway, so this approach won’t be helpful. All collaborators must enter their own solution, and we expect to see small differences even from students who worked together.

One final thing to keep in mind is that the course tutors are always available to help! You’ll find helpful tutors on our tutoring site for hours and hours each day and night. In many ways, our tutors are better prepared to collaborate with you on your homework than other students. They have completed the problems, but are still not experienced enough to quickly notice every mistake. And, most importantly, they are trained to help you in ways that enable your learning, not just quickly lead to you to a solution. Unlike another student trying to complete the same problem, their only stake in the outcome is your learning!

The Independent Project
The Independent Project

On the project, an AI coding agent will write most of your code, and we expect it to. Learning to direct one well is the point of that half of the course, so the rules that govern the homework do not transfer, and applying them here would be nonsense.

What cannot be delegated is everything the agent can’t do for you: deciding what to build, directing the work, judging what comes back, and putting in the hours. That is also exactly what we grade—the project score is hours of meaningful work, not lines of code produced. So dishonesty on the project is not about authorship at all. It is about misrepresenting your own engagement, and we spell out what that means in Project Academic Integrity.

Two things carry over from the homework half. Your project code is still checked against other students’ submissions: each of you is building something different, so highly-similar code is a real signal rather than a coincidence. And quizzes still cover project content, which you will still answer in the testing center without AI assistance.

Penalties
Penalties

If you are caught cheating in CS 124 you will definitely receive a FAIR violation. Depending on the severity of the situation, you may also have any of the following penalties applied:

Grading
Grading

Your grade in CS 124 is determined by your work on the daily homework (10%), weekly quizzes (60%), discussion attendance (10%), and the independent project (20%).

There may also be opportunities to earn extra credit during the semester. Stay tuned!

Grade Components
Grade Components

Your total score in CS 124 is broken down as follows:

Component%Assessments
Quizzes60%14
My Project (MP)20%weekly
Homework10%~68
Discussion Sections10%14

Why These Weights?
Why These Weights?

Roughly one point per hour. We set the weights by estimating how long each part of the course actually takes, so a point in CS 124 costs you about an hour of work:

What you doHoursPoints
59 daily lessons and their homework problems~5910
14 weekly quizzes~1260
14 discussion sections~1210
Independent project~2020
Total~103100

Two rows in this table are deliberately lopsided.

Your lesson time is only ever measured by the quizzes. The daily lessons and their homework problems are where you actually learn to program, and together they are the ~59 hours in that first row. The homework problems earn 10 points directly. The lesson time earns nothing on its own—you work through it at home, with as much time and help as you want—so a proctored quiz is the only place it can show up. That is what the 60 points are paying for: not the ~12 hours you spend taking quizzes, but the ~59 hours they measure. Together the two rows are 70% of your grade for roughly 71 hours of work.

The lessons row is the one that will vary most. Quizzes, discussion sections, and the project are close to fixed for everyone—a quiz takes as long as it takes, and the project is graded on hours directly. Daily lessons are different: the same lesson might take one student 30 minutes and another two hours, and that row carries more than half the hours in the table. So read ~59 as a middle, not a promise. If this is consistently taking you longer, you aren’t doing it wrong, and our tutoring site exists for exactly that.

The project is worth exactly what it costs you, because we grade it on hours of meaningful work rather than on a specification you either met or didn’t. Learning to direct AI coding agents is a skill you build by doing it, and the grade reflects that directly.

These numbers are also just the required core. For a 3-credit course the university expects around 9 hours per week, and what’s above comes to about 7. The rest is the part we can’t schedule for you: time on the tutoring site, extra practice problems, and reworking something until it finally makes sense. None of this is exact, but it should give you an honest sense of what the course asks of you, and why each piece counts for what it does.

Details about each grade component are included below.

Estimating Your Letter Grade
Estimating Your Letter Grade

Letter grades in CS 124 are assigned based on how well you do, not on your performance relative to other students. We have an unlimited number of A grades! If everyone learns the material, everyone will make an A. Our goal as tutors is to help everyone succeed.

Inevitably the difficulty of various parts of the course varies from semester to semester. We do not release the final grading scale until the end of the semester. Please do not ask us to estimate your grade.

Instead, focus on learning the material to the best of your ability. Programming in particular is a skill—the more you do, the better you get. Focus on doing as much as you need to become proficient, rather than the amount required to make a particular grade.

Approximate Grading Scale
Approximate Grading Scale

During previous semesters, we have used the following grading scale:

We reserve the right to make adjustments before assigning final grades, depending on how the semester goes. That said, it is extremely unlikely that we will move the grade cutoffs upward(2)!

Note that CS 124 does not give D+ or D- grades.

Grade cutoffs are firm and we do not round your final score. The boundaries need to be somewhere, and there’s always someone right below (and above) them wherever we place them. And regardless of what people tell you—yes, it can hurt to ask for an undeserved grade “bump” or some form of grade-motivated special treatment, since you’re asking the instructor to do something unethical and unfair, and that will negatively affect their opinion of you. If you don’t get a response to a grade bump email, that may be why.

We also do not give A+ grades. Once you have an A grade in CS 124, you are well-prepared for later CS courses. We do not want to create additional stress or stoke perfectionist tendencies for students who are already doing very well in the course. If you have an A grade, we have plenty of ideas of things you can do that are much more worthwhile than grinding harder for an A+: touch grass, get more sleep, talk to people, read a book, run around outside, get in touch with grandparents or other relatives, meditate, perform random acts of kindness. Already doing those things and really want more computer science? Start or continue working on an independent project! Any of these activities will help you make the best of your one wild and precious life. (Getting an A+ in CS 124 will not.)

Note that CS 124’s policy on A+ grades is mirrored by several other CS courses, for similar reasons.

Midterm Grades
Midterm Grades

Per university policy, we are required to submit midterm grades for first-semester students enrolled on campus for university credit. These grades are used for counseling purposes and are not recorded on your permanent record.

Midterm grades will be calculated using the same grade components as your final grade (homework, quizzes, and discussion attendance), scored against the portion of each that has been released so far. Note that the independent project has not yet started at the midterm point, so it is not included in the midterm grade calculation. We will use a simplified grading scale:

If you receive a midterm grade, remember that this is only for counseling purposes. Your final grade will be calculated using the full grading scale and will reflect your performance across the entire semester, including the independent project. Midterm grades are simply a snapshot of your current standing to help you and your academic advisors assess how you’re progressing in the course.

Posting Grades
Posting Grades

CS 124 maintains its own gradebook on the course website. We do not post grades on other websites or platforms.

Homework (10%)
Homework (10%)

Learning to program takes regular consistent practice. When you are getting started, you’ll tire quickly from this engaging right-left brain activity. So it’s better to do a bit each day than large amounts in one sitting.

Each CS 124 lesson contains a small programming problem for you to complete. Some contain debugging challenges as well. Completing the daily homework and debugging challenge will help ensure that you are well-prepared for each week’s quiz. Quiz programming problems will be similar to the ones that you completed on the homework during the previous week.

Late Submission Policy
Late Submission Policy

It is extremely important that you keep up with the daily homework. If you fail to complete the homework regularly, you will struggle on the weekly quizzes, which draw heavily from concepts reinforced by the previous week’s homework.

However, we also want you to complete the homework, even if you don’t get to it right on time. To balance these competing objectives, we are allowing you to complete eight homework problems late for full credit.

Two limits apply to late submissions:

  1. The eight-problem cap. You may complete at most eight homework problems late for credit. Any late submissions beyond the first eight earn zero credit, even if they are completed within the late window.
  2. The late window. Each late submission must be completed within a certain time after the original due date—usually five days. Submissions after the late window earn zero credit.

There is no partial credit for late submissions at any point: a late submission either earns full credit (if both limits above are satisfied) or zero credit. The full and late deadlines for each problem are clearly marked on the grading page, along with your current late-submission count.

One consequence of this policy is that, to earn full credit on the homework, you must complete all homework problems—either on time, or using one of your eight late submissions!

Discussion Attendance (10%)
Discussion Attendance (10%)

10% of your grade is for attending your Tuesday discussion section, where you do the work that becomes your independent project.

Each section you attend is worth one point, up to 10 points across the 14 graded sections. The scoring, the schedule of activities, and what happens if you miss one are all described in Discussion Sections above.

Quizzes (60%)
Quizzes (60%)

60% of your grade is for performance on 14 weekly timed quizzes. All quizzes will be given in the Illinois Computer-Based Testing Facility (CBTF) and scheduled via their scheduling tool.

CS 124 quizzes consist of a mixture of multiple-choice questions, programming questions, and debugging challenges. All questions are automatically graded. Unlike other “top” CS programs, we evaluate your programming not on paper but in a much more sane setting: using a keyboard, and with automated computer-generated feedback to help you identify and correct your mistakes. You know—the way you’ll actually write code in the real world.

No course tutors are involved in grading CS 124 quizzes, so please do not appeal your grade to the tutors. If you have concerns about the questions themselves, please share your concerns with Geoff. You can check your official quiz scores using our online grading page.

Format
Format

Quiz questions are a mix of multiple-choice questions drawn from lesson content, small programming problems, and debugging challenges. Programming problems may be drawn from previous homework or appear later as homework.

You get one attempt at each multiple-choice question. In previous semesters you could retry them during the same quiz for reduced credit, and that is no longer how it works—instead, you can return to questions you missed during your next CBTF reservation, described under quiz retakes below. We do still want you to find out what the right answer is, just on a later visit rather than the same sitting. (Practice quizzes are different: there you can retry a multiple-choice question as many times as you like, for a decreasing number of points.)

You have unlimited attempts at the programming problems and debugging challenges without losing credit. At this stage, we want you to practice—and we won’t penalize you for doing so. However, obviously you do not have an unlimited amount of time to complete the quiz.

The multiple-choice questions should be easy if you have following along with the daily lessons. You may find the programming questions and debugging challenges more challenging. Programming under time pressure can be difficult and stressful. You don’t have unlimited time or access to resources such as the tutors or the internet. However, we believe that there are small programming and debugging tasks that you should be able to complete as the semester goes on without needing to look up things online or ask for help.

Quiz Preparation
Quiz Preparation

Quizzes focus on material covered since the previous quiz, but all material covered to that point in semester is fair game. The best way to prepare for a quiz is to complete the previous lessons. Read the lesson, watch the videos and walkthroughs, and interact with the examples, attempt the practice problems—and then complete the homework problem and debugging challenges. If you engage with the course content on a daily basis, you will not need to cram material right before the quiz.

Drops and Missed Quizzes
Drops and Missed Quizzes

Do not contact the tutors regarding missed quizzes. We will drop your 2 lowest quiz scores when computing the quiz component of your final grade.

If you miss a CBTF reservation, you will need to visit the CBTF in-person to reschedule. However, the ability to reschedule is based on availability, and not guaranteed. We will not extend quiz windows to accommodate students who miss quizzes.

Quiz Retakes
Quiz Retakes

Our focus is making sure you learn everything we need to teach you by the end of the semester. Staying on schedule is critical to success in CS 124, since if you get too far behind, you won’t make it to the finish line within the fifteen weeks we have together.

However, we also know that not every student learns the material at the same pace, and we also want you to be able to learn from your mistakes on the quizzes. To support this, in Fall 2026 we’re allowing you to return once to each quiz during subsequent CBTF reservations, to complete questions you missed and demonstrate your understanding of previous material.

Here’s an example of how this will work during the first few weeks of the semester:

This pattern will continue for the rest of the term. In each quiz section you’ll have a new quiz to complete based on the material you learned recently. You’ll also be able to return to the quiz you took previously, to correct your answers and improve your score. But you can’t return to any previous quiz: In the example above, once we reach Week 3, Quiz 1 is no longer available.

Quiz 0 is the one exception, and it stays available all semester. It covers course policies rather than material that later quizzes build on, so there is no reason to close it, and students who arrive late—visa delays, travel, a late add—can pick it up alongside any later quiz. That said, you should still take it during Week 0 if you are here. You get one 50-minute CBTF reservation per week, and carrying Quiz 0 into a later week means answering it in the same sitting as a real quiz.

Each week you’ll have 50 minutes to complete all questions from available quizzes that you haven’t yet correctly answered. In the example above, during Week 2 all of the new Quiz 2 questions will be available to answer, as well as any questions you didn’t answer or answered incorrectly from Quiz 1. You do not need to repeat questions once you answer them correctly. So if you complete all of the Quiz 2 questions correctly during Week 2, the first time you take it, there will be no way to improve your score and that quiz won’t be available during Week 3.

The goal of this policy is to allow you to learn from your mistakes and encourage you to review material that you didn’t understand on the newer quizzes. It will work best if you do your best to prepare for each week’s new material. If you decide to get and stay two weeks behind, this will not work out well, and you will lose the opportunity to improve your previous work.

Also keep in mind that you have at most one 50-minute CBTF reservation per week, during which you must complete the new quiz and correct answers from the previous quiz. We are also not planning to make significant changes to quiz length this semester. CS 124 quizzes are designed to be completed comfortably within your 50-minute CBTF reservation. However, trying to finish two quizzes during that same amount of time will definitely create more time pressure. Please keep this in mind.

Quizzes may change from week to week—meaning that Quiz 1 may include different questions in Week 2 versus Week 1, or the questions may have different correct and incorrect answers. This is to prevent you from trying to memorize the content in hopes of doing better during the retake.

How many points are available for previous quiz questions will vary. We anticipate that, for the multiple-choice questions, we’ll use something similar to the following approach.

Finally, you must make and attend your CBTF reservations in order to retake previous quizzes. Missing a week costs you twice: if you miss your CBTF slot in Week 2 above, you lose your first chance on Quiz 2 and your second and final chance on Quiz 1. You should plan on taking a CS 124 quiz every week—the CBTF has flexible scheduling to enable you to accomplish this.

Catch-Up Quiz Grading
Catch-Up Quiz Grading

Because we are now offering multiple attempts at each CS 124 quiz we will no longer apply the catch-up quiz grading policy we used in previous semesters.

Reporting Quiz Problems
Reporting Quiz Problems

If you believe that you have spotted a problem with a quiz question, please report the problem to Geoff. Do not post your questions publicly. Posting quiz content anywhere other students can see it—the forum included—is sharing the content of a private course assessment, which is an academic integrity violation whether or not you meant it that way.

At that point we will do one of the following:

However, please keep in mind that your perception of the question’s correct answer may be wrong. That’s the whole idea behind having the quizzes in the first place!

CBTF Policies
CBTF Policies

We use the Grainger College of Engineering’s Computer-Based Testing Facility for our quizzes. The policies of the CBTF are the policies of this course, and academic integrity infractions related to the CBTF are infractions in this course. If you have accommodations identified by the Disability Resources and Educational Services (DRES) for quizzes, please submit your Letter of Accommodations (LOA) through the CBTF website as soon as possible. It can take up to five days for your LOA to be processed, and if you make a reservation before your LOA has been processed, your reservation will not include your testing accommodations and you will be required to reschedule. This must be done each semester you use the CBTF.

If you have any issue during an exam, inform the proctor immediately. Work with the proctor to resolve the issue at the time before logging off. If you do not inform a proctor of a problem during the test then you forfeit all rights to addressing the problem you experienced during your exam.

Take the 10-minute CBTF Orientation and review their instructions before your first exam.

Final Exam
Final Exam

CS 124 does not have a final exam. We will run the last quiz on the Tuesday of the final week of class, but we do not give an assessment during our scheduled exam time.

My Project (MP) (20%)
My Project (MP) (20%)

Programming is a skill. The more you do, the better you become. My Project (MP) is one of the ways that you will learn the powerful skill of computer programming—today’s modern superpower.

The MP is worth 20% of your grade. Working on it will deepen your understanding of the material covered in the daily lessons, and improve your performance on the quizzes.

Not A Machine Problem, Not A Machine Project: My Project
Not A Machine Problem, Not A Machine Project: My Project

Many programming courses give a series of unconnected programming assignments, historically referred to as machine problems. In prior semesters CS 124 did this as well. In 2019 we replaced these disconnected assignments with a single machine project: an Android application completed in parts over the second half of the semester.

However, we recognized that this model—where students receive a detailed specification, translate it to code, and submit—is fundamentally broken in the age of AI coding agents. Agents can handle the translation step. What they cannot do is get the specification out of your mind. That requires you to come up with good problems to solve and describe good solutions in a form that agents can use.

My Project gives you practice with these essential skills. Starting this semester, each student will design and build their own project. You will brainstorm ideas, develop a proposal, and work with AI coding agents to bring your vision to life. This is not just a change in name—it’s a fundamental shift in what we’re teaching you to do.

The old model prepared you to be a code translator. My Project prepares you for the future of software development: being the person who knows what needs to be built and can effectively direct AI tools to build it.

We recommend building an Android app, and that is what our setup materials and discussion activities cover. The reason is specific: Android is essentially the only way to build a complete, user-facing application entirely in Java or Kotlin, the languages this course teaches. Choosing it means the code you write for your project is continuous with the code you have been writing all semester.

But it is a recommendation rather than a requirement, and the alternatives have real advantages. A web app is by far the easiest thing to share: anyone you want to show it to opens a link, with nothing to install. An iOS app runs on your own phone instead of a simulated one. Both let you avoid the Android emulator, which has caused students genuine trouble in past semesters—it demands a lot of an older machine, and when it is slow it makes the build-and-test cycle miserable. If showing your work to other people or carrying it around on your own device matters to you, a web app in particular has a great deal going for it.

The tradeoff is that you take on more of the setup yourself, since our materials assume Android, and course tutors will have less specific help to offer. Kotlin can also target the web, which would keep you in a familiar language; we have not exercised that path ourselves, so treat it as promising rather than proven.

How to Complete My Project
How to Complete My Project

You will spend most of the semester on your app—brainstorming, designing, and then building it. My Project is supported by structured discussion section activities that guide you through that arc:

  1. Brainstorming: Generate and refine ideas for what you want to build
  2. Planning: Develop an implementation plan with Claude and submit your PLAN.md
  3. Pitch: Present your app idea to classmates and get feedback
  4. Setup: Install Git and Claude Code, plus Android Studio if you are building an Android app
  5. Implementation: Build your app with Claude Code, with weekly check-ins with course tutors

Learning to program is like learning other skills—how to play an instrument, throw a tight spiral, cook the perfect omelet, or learn another human language. You have to do it every day. You can’t expect to complete a marathon or perform at Carnegie Hall if you start practicing the night before.

Work on your project regularly—a little bit each day is much better than cramming everything into one session. Nothing correlates more strongly with success on the independent project than working consistently.

Project Grading
Project Grading

Your project grade is based on the total hours of meaningful work you complete over the project period, as estimated by an AI grader that analyzes your Claude Code session transcripts.

You need 18 total hours of meaningful work to earn the 18 points that the project awards for time. The remaining 2 points come from submitting your final project video (+1) and completing your assigned peer reviews (+1), for 20 points in all. Building runs over roughly the last seven weeks of the semester, so 2 to 3 hours per week will get you there. Each week (Monday midnight to Monday midnight) you may log up to 8 hours, which gives you room to catch up after a slow week without letting a single marathon session count for everything. You can track your progress on the MP page.

Meaningful work includes:

Work for other courses or conversations completely unrelated to your project do not count. Having Claude open without meaningful interaction does not count.

We may compare your Claude Code session transcripts with the actual changes to your code to verify that they match up.

This grader is new and may need some tuning—please bear with us as we calibrate it.

Project Tasks
Project Tasks

Your project work is structured as a series of tasks. Most students start with building their MVP (minimum viable product), then choose additional tasks to continue working on. Completing each task requires tutor sign-off—you can get this during Tuesday activities or by joining the tutoring site during the week.

Your grade is based on hours worked, not tasks completed. However, you must complete your current task and select a new one to continue logging hours. Don’t wait for Tuesday activities as the only opportunity to get task approval—use the tutoring site so you can keep making progress.

You are expected to continue attending Tuesday activities for the rest of the semester, even if you complete your 18 project hours early. Tuesday attendance is graded as described above.

Final Video and Peer Review
Final Video and Peer Review

The last 2 points of the project come from showing your app to other people and looking at theirs.

Submit a short video of your finished app between December 1 and December 9. Walk through what your app does and demonstrate it working. Submitting earns you 1 point—we are asking you to show your work, not to produce a polished film.

Review your classmates’ videos between December 8 and December 10. You will be assigned a small number of videos to watch and respond to. Completing all of your assigned reviews earns you 1 point.

Seeing what everyone else built is one of the best parts of the semester. Given the same constraints and the same tools, the range of what people make is remarkable, and it is worth seeing before the term ends.

Project Academic Integrity
Project Academic Integrity

Most courses define academic integrity by authorship: the work is yours if you wrote it. The independent project does not work that way. An AI agent will write most of your code, and that is the assignment, not a loophole.

What makes the project yours is everything the agent cannot do for you. You decide what to build. You direct the work and judge what comes back. You put in the hours, and you come away understanding what you made. Not every line of it—nobody expects you to recall a generated helper function months later—but what your app does, how it fits together, and why it is built the way it is.

So dishonesty here is not a question of who typed the code. It is a question of whether you misrepresented your own engagement. A good test: if you can sit down with a tutor and walk them through your app—what it does, why it is built that way, what you tried that didn’t work—you are fine.

The standard University of Illinois academic integrity policies apply to the independent project, including your Claude Code session transcripts. Here is how each category of infraction applies:

We will run automated checks on session transcripts and code changes. Evidence of any of the above will initiate academic integrity proceedings under the same policies described in our general collaboration section.

One thing that is not dishonest: setting your agent up on a long task and walking away. Getting an agent to work productively without you hovering over it is a genuine skill, and we are not going to punish you for developing it. But you also should not expect that time to count for much. Our grader estimates hours of meaningful work, and work that is off-topic, spinning in circles, or padded to run out the clock simply won’t earn credit—which is a grading outcome, not an integrity proceeding. The line is honesty about what happened: an agent working unattended is a true transcript, and a transcript you edited is not.

Responsible AI Usage
Responsible AI Usage

CS 124 teaches you to use AI coding agents to build software. That pedagogical choice carries responsibilities.

AI is a powerful tool, and this course will give you real experience using it. But the skills you develop here must be applied with judgment about context. AI policies vary across courses, institutions, professions, and situations—and for good reasons.

AI Policies Vary Across Contexts
AI Policies Vary Across Contexts

In other courses: Many instructors prohibit or restrict AI use, and these policies reflect legitimate pedagogical concerns. When a professor asks you to write code or an essay without AI assistance, they are not being old-fashioned—they may be assessing your individual understanding, developing skills that require struggle, or maintaining equity among students with different levels of AI access. The fact that you can use AI does not mean you should, and violating another course’s AI policy is academic dishonesty regardless of what CS 124 permits.

In professional contexts: Some fields have strict requirements about AI use in documentation, research, or creative work. Legal, medical, journalistic, and academic contexts may require disclosure of AI use, prohibit AI assistance entirely, or have evolving standards you will need to navigate.

In personal judgment: Even where AI is permitted, you will need to decide when its use is appropriate. Does using AI for this task serve your goals? Does it align with your values? Are you comfortable with the tradeoffs?

Your Responsibility
Your Responsibility

CS 124’s approach to AI is not a blanket endorsement of AI use everywhere. We are teaching you how to use these tools effectively. We are also teaching you to think critically about whether to use them. Both skills matter.

You are always responsible for your own use of AI. This means understanding and following the AI policies of every course you take, every organization you work for, and every context you operate in. It means evaluating AI outputs critically rather than accepting them blindly. And it means recognizing that AI systems create real costs—they consume enormous resources, they were trained on data collected without consent, and they can spread misinformation at scale.

AI is a powerful force. Use it for good.

Extra Credit
Extra Credit

There may be opportunities to earn extra credit this semester. We do not give extra credit for things that we think that you absolutely should be doing to succeed in the class. We might provide extra credit for providing some data that helps improve the class, or bearing with us while we try something experimental and new, or for helping other students.

We’ll definitely let you know about any extra credit opportunities as they arise.

Accommodations
Accommodations

We are more than happy to make arrangements to help accommodate students with disabilities. Please assist us by informing us of your situation as soon as possible. The earlier in the semester you can let us know what kind of help you need, the better prepared we can be to provide it effectively.

Please upload your Letter of Accommodation using this form, to ensure we have it on file. To access this form, you will first need to visit the Illinois Cloud Dashboard and enable Google Apps Integration. To receive testing accommodations on weekly quizzes, you will also need to provide your letter to the CBTF, using their form.

In many cases your letter of accommodation will require that you request accommodations before or on the relevant deadlines. If you fail to do so, we will not consider late requests. Part of our job in ensuring that you succeed in CS 124 is keeping you on track throughout the semester. By the time the end of the semester rolls around, it is far too late to begin asking for deadline extensions and completing missed assignments.

Other Policies
Other Policies

Below we summarize some other general course-related policies.

Extensions
Extensions

CS 124 is a fast-moving and demanding course. You signed up to learn computer science and programming for 15 weeks, and we do our best to give you your money’s worth.

One of the consequences of this is that it is hard to catch up if you have a significant illness or other problem mid-semester. We will give extensions on the MP and other assignments to accommodate unforeseen short-term circumstances. But if you are struggling with a larger issue, you should consider withdrawing and enrolling again next semester.

To receive an extension you should approach Geoff before the relevant deadline. Except in exceptional cases—hospitalization, verifiable kidnapping by aliens—we will not grant requests for extensions or other accommodations after the relevant deadline has passed.

Diversity Statement
Diversity Statement

We want our course to be welcoming and inclusive.

If there is anything that we can do to make you more comfortable in CS 124, please let us know. Here’s the official Illinois text that has helpful info:

The University of Illinois is committed to equal opportunity for all persons, regardless of race, ethnicity, religion, sex, gender identity or expression, creed, age, ancestry, national origin, handicap, sexual orientation, political affiliation, marital status, developmental disability, or arrest or conviction record. We value diversity in all of its definitions, including who we are, how we think, and what we do. We cultivate an accessible, inclusive, and equitable culture where everyone can pursue their passions and reach their potential in an intellectually stimulating and respectful environment. We will continue to create an inclusive campus culture where different perspectives are respected and individuals feel valued.

Mental Health Statement
Mental Health Statement

Mental health is both important and an important challenge in computer science.

We will discuss how to stay sane in computer science at various points throughout the semester. But overall, if there is anything that we can do to support your mental health during the semester, please let us know. Here’s the official Illinois text that has helpful info:

Diminished mental health, including significant stress, mood changes, excessive worry, substance or alcohol abuse, or problems with eating and/or sleeping can interfere with optimal academic performance, social development, and emotional wellbeing. The University of Illinois offers a variety of confidential services including individual and group counseling, crisis intervention, psychiatric services, and specialized screenings at no additional cost. If you or someone you know experiences any of the above mental health concerns, it is strongly encouraged to contact or visit any of the University’s resources provided below. Getting help is a smart and courageous thing to do—for yourself and for those who care about you.

Classroom Climate
Classroom Climate

Our course goals can only be accomplished in a setting of mutual respect.

Our tutors are committed to creating a classroom environment that welcomes all students, regardless of their identities—race, class, gender, sexual orientation, religious beliefs. We all have unconscious biases, and we will try to continually examine our judgments, words and actions to keep our biases in check and treat everyone fairly. We hope you will do the same. If you feel comfortable, please let us know if there is anything we can do to make sure everyone is encouraged to succeed in this class.

Here’s the official Illinois text that has helpful info:

The intent is to raise student and instructor awareness of the ongoing threat of bias and racism and of the need to take personal responsibility in creating an inclusive learning environment. The Grainger College of Engineering is committed to the creation of an anti-racist, inclusive community that welcomes diversity along a number of dimensions, including, but not limited to, race, ethnicity and national origins, gender and gender identity, sexuality, disability status, class, age, or religious beliefs. The College recognizes that we are learning together in the midst of the Black Lives Matter movement, that Black, Hispanic, and Indigenous voices and contributions have largely either been excluded from, or not recognized in, science and engineering, and that both overt racism and micro-aggressions threaten the well-being of our students and our university community. The effectiveness of this course is dependent upon each of us to create a safe and encouraging learning environment that allows for the open exchange of ideas while also ensuring equitable opportunities and respect for all of us. Everyone is expected to help establish and maintain an environment where students, staff, and faculty can contribute without fear of personal ridicule, or intolerant or offensive language. If you witness or experience racism, discrimination, micro-aggressions, or other offensive behavior, you are encouraged to bring this to the attention of the course director if you feel comfortable. You can also report these behaviors to the Bias Assessment and Response Team (BART). Based on your report, BART members will follow up and reach out to students to make sure they have the support they need to be healthy and safe. If the reported behavior also violates university policy, staff in the Office for Student Conflict Resolution may respond as well and will take appropriate action.

Wellbeing and Distress
Wellbeing and Distress

We care about you first and foremost as a human—not as a student.

Your wellbeing should be your top priority and much more important than this class. We consider wellbeing as being able to continually meet your needs for sleep, food, exercise, socializing, relaxing, and emotional support. We want to destigmatize distress, but not normalize distress. It is unfortunately common to experience distress in school and I want you to know that you’re not alone if you’re experiencing some form of distress. When this happens, reaching out is essential! If we normalize this distress, we might incorrectly assume that we shouldn’t reach out.

Here’s the official Illinois text that has helpful info:

As members of the Illinois community, we each have a responsibility to express care and concern for one another. If you come across a classmate whose behavior concerns you, whether in regards to their well-being or yours, we encourage you to refer this behavior to the Student Assistance Center (1-217-333-0050) or online. Based upon your report, staff in the Student Assistance Center reaches out to students to make sure they have the support they need to be healthy and safe. Further, as a Community of Care, we want to support you in your overall wellness. We know that students sometimes face challenges that can impact academic performance (examples include mental health concerns, food insecurity, homelessness, personal emergencies). Should you find that you are managing such a challenge and that it is interfering with your coursework, you are encouraged to contact the Student Assistance Center (SAC) in the Office of the Dean of Students for support and referrals to campus and/or community resources. The SAC has a Dean on Duty available to see students who walk in, call, or email the office during business hours. For mental health emergencies, you can call 911 or contact the Counseling Center.

Diminished mental health, including significant stress, mood changes, excessive worry, substance/alcohol abuse, or problems with eating and/or sleeping can interfere with optimal academic performance, social development, and emotional wellbeing. The University of Illinois offers a variety of confidential services including individual and group counseling, crisis intervention, psychiatric services, and specialized screenings at no additional cost. If you or someone you know experiences any of the above mental health concerns, it is strongly encouraged to contact or visit any of the University’s resources provided below. Getting help is a smart and courageous thing to do—for yourself and for those who care about you.

Confidential Resources
Confidential Resources

If we learn about a situation in which a student is in danger of harming themselves or others, or has been seriously harmed, I may be legally required to notify the Title IX Coordinator.

If students want to speak with someone confidentially, these resources are available on and off campus. Speaking with a confidential resource does not preclude students from making a formal report to the Title IX Coordinator. Confidential resources can walk students through all of their reporting options. They can also provide students with information and assistance in accessing academic, medical, and other support services they may need.

Here’s the official Illinois text that has helpful info:

The University of Illinois is committed to combating sexual misconduct. Faculty and staff members are required to report any instances of sexual misconduct to the University’s Title IX and Disability Office. In turn, an individual with the Title IX and Disability Office will provide information about rights and options, including accommodations, support services, the campus disciplinary process, and law enforcement options. A list of the designated University employees who, as counselors, confidential advisors, and medical professionals, do not have this reporting responsibility and can maintain confidentiality, can be found here. Other information about resources and reporting is available here.

Religious Observances
Religious Observances

For people of many religions, school conflicts with their religious holidays.

Even when religious holidays don’t fall on a class day, you might typically take time off from work to celebrate.

The CS 124 late homework policy is how we accommodate religious observations that affect your ability to complete the homework. If you need to take a quiz early or a day late, or need an extension on the independent project, please let us know. We can work together to make a plan that works for you.

Here’s the official Illinois text that has helpful info:

Illinois law requires the University to reasonably accommodate its students’ religious beliefs, observances, and practices in regard to admissions, class attendance, and the scheduling of examinations and work requirements. You should examine this syllabus at the beginning of the semester for potential conflicts between course deadlines and any of your religious observances. If a conflict exists, you should notify your instructor of the conflict and follow the procedure outlined here to request appropriate accommodations. This should be done in the first two weeks of classes.