CS 125 Spring 2020 Syllabus

This web page serves as the syllabus for the course.

You should familiarize yourself with these policies and refer to them when necessary.

1. Modifications In Response to Covid-19

The Covid-19 pandemic has canceled in-person instruction at the University of Illinois for the Spring 2020 semester.

CS 125 has transitioned to an online format. This has resulted in the following changes to our course policies and procedures:

  1. Class will now be live-streamed on YouTube Monday and Friday at 10AM and Wednesday at 11AM. Students are encouraged to join the live stream and follow along, but class participation will not be counted for the remainder of the semester.

  2. Quizzes will now be held synchronously on Wednesday during class time: from 10–10:50AM CDT. Students who are in substantially different time zones may request to take the quiz at an alternate time. Students with poor internet access may request more time to complete the assessment.

  3. Labs will be held virtually using video chat. Lab staff will be available during normal lab hours: from 9AM to 9PM CDT. Lab activities will remain available for the entire day. Lab participation will not be counted for the remainder of the semester.

  4. Office Hours will continue to be run at the usual time but held using the new CS 125 Help System. Students needing assistance are also encouraged to use the course forum to ask for help. Remember that if you need to share source code you can message the Spring2020-Help group.

  5. The Final Project Fair is canceled. However, the final project will continue as scheduled, including assessment in lab during the final week of class. Projects deemed impressive will still be highlighted on the project fair page.

With the exception of the changes listed above, CS 125 will go forward as planned.

In addition, we will also make the following grading accommodations:

  1. We have added an MP checkpoint drop, and increased the number of quiz drops from 2 to 3 and the number of homework drops from 8 to 12.

  2. We will adjust the letter grade cutoffs if needed to reflect the unusual challenges students have faced this semester.

  3. We will publish the letter grade cutoffs earlier in the semester so that students can make informed decisions about whether to elect a Credit / No Credit grade.

2. Overview

This course is an introduction to the concepts and craft 1 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.

Computer science is both an applied and a conceptual discipline. You will learn how to program in this course. Learning how to program effectively helps you bring your ideas to life. It can be frustrating at first—computers are irritatingly literal machines. But programming is a skill, and like any other skill you will get better with practice. Computers are one of 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 hackers lament: Once you can program well, you can do anything—but you still can’t do everything.

But while programming is both important and enjoyable, computer science also has deep conceptual concerns at its core. As a computer scientist, you’ll learn to design solutions to problems so that computers can carry them out efficiently—we call these algorithms. Being a computer scientist means coming up with new ways to solve problems more effectively. And then you get to build your solutions and can easily deploy them to billions of people all over the world. No other field has this potent mixture of left-brain analytics, right-brain design and creativity, and the potential for global impact.

2.1. Description and Prerequisites

  • Description: Basic concepts in computing and fundamental techniques for solving computational problems. Intended as a first course for computer science majors and others with a deep interest in computing.

  • Prerequisites: Three years of high school mathematics or Math 112.

2.2. Required Materials

There is no required textbook for CS 125. We make all of the materials you need available online—including lecture slides, lab handouts, and MP descriptions. We also maintain a 2 list of available online learning resources that may help supplement the materials we will provide you.

However, this semester we will be reading Coders by Clive Thompson together, and there will be several quiz questions on the book each week. Coders is both a fun read and an invaluable introduction to the technology community. It will help you better understand both how computer science has changed the world, and how it may change you—both for the better and for the not better. You can acquire a paper or electronic copy of Coders for under $15.

2.3. Learning Objectives

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

2.3.1. Conceptual Objectives

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

Outcome Assessment

Develop algorithms to effectively solve problems using computers—including both iterative and recursive algorithms—and reason about their computational and storage requirements.

Class and lab participation, quizzes, and midterms. 70% correctly identified marks outcome achieved.

Describe how computers represent, structure, and manipulate data—including numbers, strings, and multimedia data including images and audio.

Explain the importance of core Java software development concepts—including object orientation, object types, encapsulation, and inheritance.

Understand runtime and design tradeoffs between different algorithms, data structures, and data structure implementations.

2.3.2. Programming Objectives

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

Outcome Assessment

Design and implement small and medium-sized Java programs that perform straightforward operations on simple data types, using iterative, object-oriented, and recursive approaches as appropriate.

Machine problems, lab programming projects, office hours attendance. 70% correctly identified marks outcome achieved.

Learn to use modern Java software development tools—including an integrated development and debugging environment (Android Studio), source version control (Git), testing framework (TestNG), coding convention tool (checkstyle), build system (Gradle), and pair programming techniques.

Utilize standard Java features and libraries—including objects and simple built-in data structures.

Debug and test Java programs.

Use programming to solve problems in other domains.

2.4. Preparation

CS 125 assumes no prior knowledge of computer science or programming experience. However, the course is a lot of work—and so is best suited to those who are either majoring in computer science or have a strong interest in the subject.

Some students in CS 125 have no experience with computer science. Others have been programming for years. We will do our best to accommodate both groups.

2.4.1. 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.

When you’re starting something new, it’s normal to occasionally feel intimidated by those around you. We were all new once, and most of us try new things at least once and 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 125 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 arrogance or bragging. But 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.

2.4.2. 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, new problems to solve.

Even if you don’t find every aspect of CS 125 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 the MP checkpoints don’t take you that long, then you aren’t getting the practice that you need to keep improving. You might want to join the honors section (CS 196), get involved with the Illinois Chapter of the Association for Computing Machinery (ACM), 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.

2.4.3. If you really know what you are doing…​

Maybe you should sign up for the CS 125 Proficiency Exam and bypass CS 125 entirely? You may not get much out of the class.

2.5. General Education Information

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

2.6. FAQ

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

2.6.1. I’m still waiting for a seat in CS 125. What should I do?

Use this form to sign up to receive temporary access to the Spring 2020 course forum and be put on our mailing lists. Note that temporary access will end on 2/20/2020, so you must officially register before that point.

2.6.2. I want to register for lecture or a lab, but it’s full? Can you help me?

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

2.6.3. Is there a wait list for CS 125?

No. The CS department has never and does not now offered official wait list for courses. See the note about registration above.

2.6.4. I want to switch labs. Can you help me?

No, sorry. See above.

2.6.5. I added the course late. What do I do?

We have special instructions for you here.

3. Dates, Times, and Locations

CS 125 consists of lecture taught in an active learning format, weekly lab sections, and office hours. You will attend three one-hour lecture per week, one one-hour lab section, and many (many) office hours 3.

Lectures are taught by Geoffrey Challen. Labs are led by the 8 TAs. Office hours are led by the 5 office hour captains and staffed by our 5 course associates and 146 course assistants. We also have 9 course developers hacking away furiously to improve our course materials, tools, and infrastructure. You can find all our fantastic staff listed here.

3.1. Calendar

We suggest that you add our shared calendar to your calendaring program 4 We don’t maintain separate calendars for labs, so this calendar is only for collective class events: lectures, office hours, quizzes, MP checkpoint deadlines, and other events that are relevant to the entire class.

3.2. Lectures

This spring lectures are being held Monday, Wednesday, and Friday from 10–10:50AM in beautiful and historic Lincoln Hall. Please attend and participate in lecture! And please refer to the information below for our definition of lecture participation. All lecture slides are posted online for use during class and review afterward.

Lecture videos will be posted online. Feel free to view them if you are absent or need to review.

3.3. Labs

Please attend and participate in the lab that you are registered for. You will not receive credit for participation in the wrong lab.

    Days Time Location TAs Assistants





0403 Siebel Center for Comp Sci

Heather Huynh

Bohan Liu and Tino Caer





0403 Siebel Center for Comp Sci

Heather Huynh

Alexander Marcozzi and Nathan Omerza





0403 Siebel Center for Comp Sci

Beichen Zhang

Pengwei Zang, Mickey Leung, and Geoffrey Ma





0403 Siebel Center for Comp Sci

Sneha Krishna Kumaran

Martin Beczkiewicz, Parth Tyagi, Tanvi Chadha, and Varnit Sinha





0403 Siebel Center for Comp Sci

Hyo Jin (Gina) Do

Renzo Ledesma, Cindia Hua, Zhuofan Jia, and Zachary Mattingly





0403 Siebel Center for Comp Sci

Mingkun Gao

Tim Chen and Shruthi Jaganathan





0403 Siebel Center for Comp Sci

Hyo Jin (Gina) Do

Annie Li, aileen Long, Raghav Saini, and Yuhan Lu





0403 Siebel Center for Comp Sci

Mingkun Gao

Angela Zhao, Da'mon Morris, Pengyue Jiang, and Shirley Mao





0403 Siebel Center for Comp Sci

Jishnu Dey

Adarsh Suresh, Andrea Roy, Dev Wadhwa, and Sarod Nori





1111 Siebel Center for Comp Sci

Sneha Krishna Kumaran

Chiao Ting Huang, Peizhe Liu, Teresa Dong, and Evelyn Yang





0403 Siebel Center for Comp Sci

Jishnu Dey

Chenhui Zhang, Ishita Rao, and Yueqi Jiang





1111 Siebel Center for Comp Sci

Zhenyi Tang

Nikhil Richard and Sean Koo





0403 Siebel Center for Comp Sci

Zhenyi Tang

Kanav Bhatnagar and Kanav Khanna





1111 Siebel Center for Comp Sci

Bruno Seo

Felicia Wang and Aassik Pazhani





1111 Siebel Center for Comp Sci

Beichen Zhang

Chengyang Song, Saket Vissapragada, and Shreya Sharma





0403 Siebel Center for Comp Sci

Bruno Seo

Jiawei Pei and Sruthi Kilari

3.4. Office Hours

Office hours are led by our 5 office hour captains and staffed by 5 course associates and 146 course assistants. This spring we’ll be holding office hours every day but Tuesday 5 and Wednesday 6 from 12–8PM in Siebel 0403. But if in doubt, check the calendar. See the resources page for more details.

4. Communication

CS 125 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 7 and modern course forum to help you find our what you need to know. Our goal is to avoid email as much as possible, along with 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 125:

  1. This website

  2. The course forum

If you have a question about the class, first look on the main course website—the one that you are currently browsing. Then, 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.

4.1. What You Are Responsible For

As a student at the University of Illinois you are responsible for email sent to your @illinois.edu email address. We will occasionally use a course email list to send important announcements. So messages in your inbox might say things like: "There’s a quiz tomorrow" or "There’s a fire alarm in Siebel and class is canceled." We all get too much email, but learning to manage it is a fact of modern life. Feel free to talk to the course staff if you want tips.

As a student in CS 125 you are responsible for messages posted in the announcements category of the forum. These announcements are important and we will frequently post in this category in lieu of using email. You can configure Discourse 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.

4.2. Contacting the Course Staff

Please do not email the course staff with general course questions. You may think that the professor spending five minutes responding to your email is not a huge problem. But five-minute responses to 900 students consumes 75 hours of time, which is about half of my work week 8. You should also never contact a TA or CA directly unless they have agreed to this beforehand. Post on the forum.

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

At times, I may even ask you to post on the forum if a good question or observation comes out of a conversation that we have together. That way everyone can learn what you just did, and I don’t need to answer the same question repeatedly. If I ask you to do this, please do.

Here is a general guide about how to contact the course staff:

  • I need help installing (insert name of software here)…​: post on the forum.

  • I’m confused about (insert name of concept here)…​: post on the forum.

  • I need help with (insert any CS 125-related item here)…​: post on the forum.

  • I can’t find (insert name of CS 125-related resource here)…​: post the forum.

Can you see a pattern emerging here?

In contrast, here are some cases where you can and should contact the course instructors:

  • I think that my friend is cheating in CS 125: contact the course staff.

  • I’m really sick and getting behind in the class: contact the course staff.

  • I’m feeling really overwhelmed and need someone to talk to: contact the course staff, or an academic advisor, or a friend.

5. Grading

Your grade in CS 125 is determined by your performance on the machine project (MP) (30%) and final project (10%), completion of frequent online homework problems (20%), weekly quizzes and three one-hour midterms (30% total) evenly spaced during the semester, and participation in lecture (5%) and lab (5%).

There are also exciting (!) opportunities to earn extra credit during the semester.

5.1. Grade Components

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

These weights are designed to reflect the amount of time that students spend on each part of the class. They are also divided between points earned in controlled environments (quizzes and midterms, participation) and uncontrolled environments (MP and homework). You will spend most of your time completing the MP and homework problems. That is where you will get the practice that turns you into a computer scientist. The quizzes and midterms give us a chance to evaluate your abilities in a controlled setting.

Details about each grade component are included below.

5.2. Dropped Grades

To account for illness, absence, forgetfulness, mistakes, temporary stupidity, and other normal life events, we will drop a few of your lowest scores for all course components except the midterms. The table below summarizes the drop policy for course component:

Component Percentage (%) # Assessments (Estimated) # Dropped (Firm)

Machine Project (MP)




Final Project




Homework Problems




Weekly Quizzes and Midterms



3 quizzes, 0 midterms

Lab Participation




Lecture Participation




So, for example, we will track participation in 15 labs and drop your lowest 3 scores. We will assign 70 homework problems and drop your lowest 8 scores. The machine project has 6 checkpoints and we not drop any checkpoint scores.

5.3. Estimating Your Letter Grade

Letter grades in CS 125 are assigned based on how well you do, not based on your performance relative to other students. We have an unlimited number of A grades that we can hand out. If everyone in the learns all of the material to our satisfaction, everyone in the class will make an A.

Inevitably the difficulty of various parts of the course varies from semester to semester. So we do not determine the final grading scale until we examine all scores at the end of the semester. During the semester, do not ask us to estimate your grade or tell you how well you need to do on an assignment to make a certain 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 at it. So you should focus on doing as much as you need to get good at it, rather than the minimum necessary to make a particular grade.

5.4. Posting Grades

We do not maintain grade components on Compass 9. CS 125 maintains its own grading and statistics interface which you will use throughout the semester.

6. Machine Project (MP) (30%)

Programming is a skill. Like other skills, the more you do it, the better at it you become. The CS 125 machine project (MP) is one of the primary ways that you will learn the powerful skill of computer programming—today’s modern superpower.

The MP is worth 30% of your grade—the largest single grade component. Working on it will deepen your understand of the material covered in lecture, and improve your performance on the quizzes and midterms.

6.1. Not Machine Problems: A Machine Project

Many other programming courses give a series of unconnected programming assignments. In prior semesters CS 125 did this as well and referred to each as a machine problem.

However, last fall we replaced the multiple unconnected assignments with a single machine project: an Android application that you will complete in parts over the course of most of the semester. Don’t worry—if you don’t finish one part, we have ways to grade you future work independently of that incomplete component. But we do hope that this format will encourage you to fix up and improve the parts of the project that you completed previously.

Completing a single longer project will better prepare you for future programming tasks—both in industry and side projects that you may do on your own. It is rare in software development to start something from scratch, work on it for only a few weeks, and then never touch it again. What is more normal is to work on more interesting and larger pieces of code for months or even years—starting with something simple and then gradually adding features and complexity, just as you will do this semester. You are forced to live with your mistakes and decisions, but also end up creating something much more significant.

6.2. Split Deadlines

To reduce load on office hours and provide you with better support around checkpoint deadlines, this semester we will divide the class in half. The Blue Group will have MP checkpoint deadlines on Sundays at 11:59PM. The Orange Group will have MP checkpoint deadlines on Mondays at 11:59PM. Your group assignment will be determined by your lab section.

Note that this means that, over the course of the semester, the Orange Group has exactly 24 hours more to complete the entire machine project. We consider the 50% reduction in peak office hour load to be sufficient to justify this small difference. Feel free to discuss this on the forum if it makes you uncomfortable.

6.3. How to Complete the MP

To help you conquer the large machine project, we will break it down into checkpoints that will happen roughly once every two weeks once the project begins. Each checkpoint is designed to take a significant amount of time. So you should arrange your schedule so that you can devote a significant amount of time on them. Do not start the night before. Not only will it be unlikely that you will complete that component of the MP, but you will also be unlikely to be able to get help when you get stuck.

Learning to program is like learning other skills—how to play an instrument, throw a perfect spiral, cook the perfect omelete, 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. So as soon as each checkpoint is released, sit down and spend a few hours on it. And then do that the next day, and the day after that. If you start early and work often, you will have no problem completing the checkpoint before the deadline. If it turns out to be easy for you, you’ll be done early and can relax and help other students. If it turns out to be more difficult, you’ll know early on and be able to budget your time according to complete it on time. Nothing correlates more strongly with success on the MP checkpoints than starting early. And coming to office hours.

6.4. Late Submission Policy

It is extremely important that you keep up with the MP. CS 125 moves quickly, and if you get behind early you will quickly find yourself lost and unable to complete the later assignments. This is the number one reason students fail CS 125.

As a result, the late submission policy is designed to reward students that do a fair amount of work before the deadline. Here are the details of the policy:

  • You can submit 10 each MP checkpoint as many times as you want until 11:59:59 PM on Wednesday 5/6/2020 (the last day of class).

  • Late submissions can earn back 50% of any points lost by your best on-time submission. So if you submit code that earns 80/100 before the deadline, you will receive a 90/100 if you submit a perfect checkpoint after the deadline. If you submit code that earns 0/100 before the checkpoint deadline, the best you can do is a 50/100 with a perfect submission anytime after the deadline.

  • Late submissions will not recover any starting the checkpoint on time points. So if there were 10 starting the checkpoint on time points that you did not earn, and your best score before the deadline was a 60/100, the best you can do is a 75/100: half of the 30 points you missed that were not for starting the assignment on time.

  • You will always receive the best score earned by any submission. You can check your office MP checkpoint scores here.

7. Final Project (10%)

The last few weeks of the course we will set you loose on a final project of your choosing. Our goal is that the machine project prepares you well to work on a final project. But the final project removes both the scaffolding of the machine project and many of the rules. You can build whatever you want, work in small teams, and are encouraged to freely and appropriately use available open source libraries.

We will hold an (optional) final project fair on reading day for you to show off your cool new Android apps. Note that grading for the final project is quite generous, but we do expect you to try something and take advantage of an early opportunity to do an open-ended project. We’ll discuss the final project more later in the semester.

8. Homework (20%)

To ensure that you get daily practice we will post daily small programming homework problems for you to complete. The reason we are doing this is simple: programming takes regular consistent practice. If you are training for a marathon, you have to run almost every day, not just try to pack in hundreds of miles the week before the race. Learning to program is similar. In particular, when you are getting started you’ll tired quickly from this engaging right-left brain activity. So it’s better to do a bit each day than large amounts in one sitting.

We expect that the daily homework problems should take you no more than 10–15 minutes to complete, particularly if you have been coming to lecture and keeping up with the MP. Homework problems also a key way to prepare yourself for the programming component of each week’s quiz, since the programming problems on the quiz will look similar to 11 the ones you’ve been practicing on your homework assignments.

8.1. Homework Sign Up

Before starting the homework you will need to log on to PrairieLearn with your @illinois.edu email address and join the CS 125 Spring 2020 course. Access to the homework is unrelated to forum access and you can begin work on the homework as soon as you register.

9. Quizzes and Midterms (30%)

30% of your grade is for performance on weekly quizzes and 3 midterms. Quizzes and midterms are given in the University of Illinois Computer-Based Testing Facility (CBTF) and consist of questions that are randomized and automatically graded.

The CBTF is one of the most powerful pedagogical tools that we have at our disposal to help you learn to program, and we use it early and often. All those other school that some of you wanted to get in to---Stanford, Berkeley, MIT? They are still giving programming exams on paper and grading them by hand 12!?!?!

Here at Illinois we can evaluate your programming in a much more sane setting: using a keyboard, and with automated computer-generated feedback to help you identify and correct your mistakes. Even though you may come to hate and fear the CBTF by the end of this semester, it is a huge part of how we teach you to program in CS 125. You are all lucky to be at the University of Illinois which had the foresight to set up such a revolutionary facility.

No course staff members are involved in grading CS 125 computerized exams, so please do not appeal your grade to the course staff. If you have concerns about the questions themselves, please post on the forum. You can check your official quiz and midterm scores here, but please be aware that there is a lag between when you finish your quiz and when these scores are updated.

9.1. Format

Quiz questions are a mix of multiple-choice questions drawn from lecture and small programming problems. Many of the small programming questions that we use on the quizzes will reappear on later homework assignments. Or problems from the homework assignments may appear on quizzes.

You only get one or two attempts at the multiple choice questions. But you will have unlimited attempts at the programming problems without losing credit. At this stage, we want you to practice—and we won’t penalize you for practicing. However, obviously you do not have an unlimited amount of time.

The multiple-choice questions should be easy if you have been coming to and participating in lecture. You may find the programming questions more of a challenge. Programming in the CBTF is quite different from machine project programming. You don’t have unlimited time or access to resources such as the course staff or the internet. However, we believe that there are small programming tasks that you should be able to complete as the semester goes on without needing to look up things online or ask for help. That said, generally the programming challenges that appear on the quizzes will be considerably easier than the MP checkpoint that you are working on at the same point in the semester.

9.2. Scheduling

The CBTF is located in the basement of Grainger Library. You can use this link to sign up to take each quiz. Using the CBTF allows us to provide you with flexibility in scheduling your weekly quizzes. You can take each quiz over a range of dates and times, starting on Monday and ending on Wednesday each week. All quizzes are posted on the course calendar.

9.3. Preparation

Quizzes focus on material covered that week, but all material covered that semester is fair game. The best way to prepare for a quiz is to participate in class that week. Attend lectures and participate, attend labs and participate, work on the assigned MP checkpoint (if any), and ask and answer questions on the forum. If you engage with the course content on a daily basis, you will not need to cram material right before you take the quiz. And as a reminder, there will be a few questions on each quiz on that week’s assigned reading from Coders.

9.4. Missed Quizzes

Do not contact the course staff regarding missed quizzes. Because you have a several day window to complete each quiz, we expect that you will be able to work around most other commitments and even short illnesses. However, we will drop your lowest 2 quiz scores when computing the quiz component of your final grade.

If you do miss a scheduled quiz and can retake it within the time window, you can contact the CBTF to attempt to reschedule. There are no guarantees though. The CBTF is busy and they may not be able to accommodate you if you miss your initial appointment. The best approach is to not do that.

9.5. CBTF Policies

The policies of the CBTF are the policies of this course, and academic integrity infractions related to the CBTF are infractions in this course.

Any problem with testing in the CBTF must be reported to CBTF staff at the time the problem occurs. If you do not inform a proctor of a problem during the test then you forfeit all rights to redress.

9.6. Reporting Quiz Problems

If you believe that you have spotted a problem with a quiz question, please use PrairieLearn’s built-in issue reporting to report the issue to the course staff. Note that you have to be in the CBTF to access our quizzes and report problems. At that point we will do one of the following things:

  1. If the question has a bug, we will fix it and ensure that all students receive full credit—even those that took the quiz before the bug was identified.

  2. If the question has a minor typo that we don’t think affects its ability to be correctly answered, we will fix it and distribute that change.

  3. If the question is fine we will not do anything. Unfortunately, there is no way for us to respond to your issue on PrairieLearn. 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.

We will regularly review the answers to difficult quiz questions in class to ensure that everyone has a chance to learn from their mistakes.

9.7. Midterms

Three midterms are spread through the semester. The midterms are identical to quizzes in terms of scheduling and presentation. However, you cannot drop any midterm scores.

In comparison to the weekly quizzes, the midterms will be more comprehensive. Anything covered up to that point in the semester is fair game, with particular emphasis given to the material covered since the last midterm. Finally, you should expect about half or more of the points on each midterm to be for auto-graded programming problems. This may be more than a typical weekly quiz.

Midterm dates are posted on the course calendar. You must make arrangements to take each midterm in the CBTF. If you miss a midterm, you will receive a zero.

Preparing for the midterms is similar to preparation for a weekly quiz: review the lecture materials, practice the homework problems, and ensure that you are comfortable with the material covered on the MP.

Note that CS 125 does not have a final exam. We will hold an (optional) final project fair on reading day for you to show off your cool new Android apps and that joyful event will be the end of the course.

10. Participation (10%)

10% of your grade is earned by participating in lab section (5%) and lectures (5%). We will use several tools to track your participation in scheduled course activities. However, here are the ground rules:

  • You must participate in the lab or lecture that you are enrolled in. CS 125 is always completely enrolled and so we have no space in other lab or lecture sections. If you attend the wrong lab or lecture, you will not receive participation points. Period.

  • Participation is not attendance. Just having your butt in the right seat at the right time does not constitute participation. In labs, you are expected to be working with your section on the lab activity. In lecture, you are expected to follow along and engage with the material. If you attend, but do not participate, you will not earn points for participation.

  • You have several pre-excused absences. You have 3 preexcused lab absences and 6 preexcused lecture absences. So if you need to miss a lab or lecture for any reason—illness, traveling, personal issues, or anything else—there is no need to notify the course staff. If you miss a lab, feel free to attend another lab section, but you will not get lab participation points for that week. If you miss a lecture, just watch the video online to review what you missed. CS 125 moves fast, so don’t get behind!

For both lecture and lab attendance you will receive a linear proportion of credit depending on how many participation points you earn and the number of dropped labs or lectures. So, for example, if you miss 5 out of 10 labs, you would receive credit for 8 / 10 labs (due to three drops) and 4% out of the 5% allocated for lab participation.

10.1. Lab Participation (5%)

Do not contact the course staff regarding missed labs. We do not excuse individual absences. Instead, any missed labs are covered by the dropped grade policy.

To receive participation points for each lab, you have to do three things:

  1. Attend the right lab. You don’t get credit for participating in a lab other than the one that you are assigned to.

  2. Work on the lab activity until you are finished or the lab ends. Labs are not office hours or a time to work on the MP, homework problems, or other things. If you are not working on the lab handout, your TA may ask you to leave.

  3. Assist others if asked. Some of you know more than others and may finish the lab rapidly. If you do, your TA may ask you to stick around to help other students. If you are asked to do this, please do so willingly and cheerfully. You will learn a great deal from trying to help other students.

Before you leave lab you should check your lab participation score on our grading interface to ensure that you received participation credit. TAs will not change lab participation scores after the lab ends.

10.2. Lecture Participation (5%)

Do not contact the course staff regarding missed lectures. We do not excuse individual absences. Instead, any missed lectures are covered by the dropped grade policy.

To receive participation points for each lecture, you have to do three things:

  1. Attend lecture. (Duh.)

  2. Log on to the slide tool. If you don’t see a green check box in the top right, you are not logged in.

  3. Follow along with the slides.

The definition of follow along is "to move or proceed in accord or in unison with someone." Following along with the slides means that when the presentation slide changes, you change the one you are looking at as well. Both the amount of time you have to notice that the slide has changed and the overall percent of slides that you need to track are very generous. If you are paying attention, you should not have a hard time earning participation credit for each lecture.

11. Extra Credit

There will be opportunities to earn extra credit this semester. Note that we do not give extra credit for things that we think that you absolutely should be doing to succeed in the class. Extra credit is exactly that: extra. 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.

This semester we are planning at least the following extra credit opportunities:

  • 1% for completing our initial student survey. This data helps us improve the course for future semesters.

  • 1% for participating in the final project fair, which will be held on Thursday May 7th (Reading Day). Participation is optional, but worth extra credit.

12. Other Policies

Below we summarize some other general course-related policies.

12.1. Cheating

Learning computer science requires hard work and practice. If you submit code that is not your own work, or take other steps to subvert the course policies, you are not getting the practice that you need to improve.

All work submitted for CS 125 must be your own. Cheating in CS 125 may result in a grade reduction, your removal from the CS program, or from the University of Illinois. We have many bright, honest students that want to learn computer science. We don’t need to waste time and energy on cheaters that don’t want to learn.

Specifically, the following activities constitute cheating and will be dealt with according to relevant departmental and university policies. You may not:

  1. Turn in work that was completed by anyone other than yourself.

  2. Copy or paste code that you did not write from any source.

  3. Misrepresent your work as the work of another student.

  4. Examine another classmates solution, reproduce it, and submit it as your own work.

  5. Share information about the content of quizzes or other course assessments. Anyone caught removing information from the exam center will receive a letter grade reduction and a FAIR violation.

  6. Publish your MP or coursework anywhere where other students can find them. Note that this includes publishing your MP publicly on GitHub. Nobody wants to see your solutions to the MP anyway. If you want to impress employers, fill your GitHub page with your own independent projects.

We will run cheating detection software on all submitted student work. These programs are extremely accurate, and any evidence of cheating that they uncover will initiate academic integrity violation proceedings. In Fall 2019 we filed 26 FAIR violations almost all of which resulted a letter grade reduction. We are serious about this, and ask you to be serious about learning.

12.1.1. A simple rule of thumb about collaboration

A general rule of thumb is that exchanging or soliciting ideas about how to solve the MP 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 talking in English 13, that’s fine. If you are talking or exchanging computer code, that’s cheating.

12.1.2. Penalties

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

  • A letter grade reduction in the class. Note that this will likely make it impossible for you to transfer into the Computer Science department.

  • An F in the course. This will definitely make it impossible for you to transfer into the major.

12.2. Extensions

CS 125 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, we may encourage you to withdraw and enroll again next semester.

Note that, to receive an extension you should approach the course staff before the relevant deadline. Except in exceptional cases 14 we will not grant requests for extensions or other accommodations after the relevant deadline has passed.

12.3. Accommodations

We are more than happy to make arrangements to help accommodate students with learning disabilities or other challenges. However, we ask that you assist us by informing us of your situation as soon as possible. We will be much more accommodating of requests received before the relevant assessment or deadlines, rather than after. 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 use this web form to ensure that we have your Letter of Accommodation on file.

Note that 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—and every CS 125 student—succeeds in the course is keeping you on track throughout the semester. By the time the end of the semester rolls around, it is far to late to begin asking for deadline extension and completing missed assignments.

As far as our quizzes in the CBTF, if you have accommodations identified by the Division of Rehabilitation-Education Services (DRES) for quizzes and midterms, please take your Letter of Accommodation to the CBTF proctors in person before you make your first reservation. The proctors will advise you as to whether the CBTF provides your accommodations or whether you will need to make other arrangements.

12.4. Diversity Statement

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.

12.5. OMSA Tutoring Support

The Office of Minority Student Affairs' (OMSA) Academic Services Center (ASC) offers free tutoring and academic services. Matched and drop-in tutoring along with Supplemental Instruction (SI), collaborative learning/study groups, and academic skills workshops are among the services featured in the OMSA ASC. OMSA’s services are designed to help students achieve in college. The level of rigor at the University of Illinois is different than in high school or community college. No matter how you performed before attending Illinois, there is always room to examine and hone your study skills. To earn more about these services, visit https://omsa.illinois.edu/programs/tutoring/.

13. People

CS 125 has a large and motivated course staff. We look forward to helping you learn computer science!

13.1. Instructor

Photo of Geoffrey Challen

Geoffrey (GWA) Challen

Teaching lectures.

13.2. Teaching Assistants

Photo of Beichen Zhang
Beichen Zhang

Teaching sections AYB and AYK

Photo of Bruno Seo
Bruno Seo

Teaching sections AYS and AYT

Photo of Heather Huynh
Heather Huynh

Teaching sections AYA, AYN, and EMP

Photo of Hyo Jin (Gina) Do
Hyo Jin (Gina) Do

Teaching sections AYC and AYD

Photo of Jishnu Dey
Jishnu Dey

Teaching sections AYE and AYF

Photo of Mingkun Gao
Mingkun Gao

Teaching sections AYO and AYP

Photo of Sneha Krishna Kumaran
Sneha Krishna Kumaran

Teaching sections AYH and AYM

Photo of Zhenyi Tang
Zhenyi Tang

Teaching sections AYI and AYJ

13.3. Captains

Office Hour Captains are in charge of making sure office hours run smoothly.

Photo of Ajay Tatachar
Ajay Tatachar

Leading office hours.

Photo of Hyosang Ahn
Hyosang Ahn

Leading office hours.

Photo of Long Phan
Long Phan

Leading office hours.

Photo of Nikhil Garg
Nikhil Garg

Leading office hours.

Photo of Rima Bouhal
Rima Bouhal

Leading office hours.

13.4. Associates

Course associates are experienced CAs who you'll meet frequently at office hours.

Photo of Blair Wang
Blair Wang
Photo of David Ruvinskiy
David Ruvinskiy
Photo of Lou Zeh
Lou Zeh
Photo of Mat Farley
Mat Farley
Photo of Ruisong Li
Ruisong Li

13.5. Course Assistants

Our course assistants are so excited about computer science that they are teaching you to learn more! Please treat them accordingly—with a lot of appreciation!

Photo of Aaditya Dhruv
Aaditya Dhruv
Photo of Aaron Alberg
Aaron Alberg
Photo of Aassik Pazhani
Aassik Pazhani

Assisting with section AYT

Photo of Adarsh Suresh
Adarsh Suresh

Assisting with section AYE

Photo of Aiushe Mishra
Aiushe Mishra
Photo of Akshit Deshpande
Akshit Deshpande
Photo of Alaa Shuaibi
Alaa Shuaibi
Photo of Aleena Rehman
Aleena Rehman
Photo of Alex Nickl
Alex Nickl
Photo of Alexander Marcozzi
Alexander Marcozzi

Assisting with section AYN

Photo of Ali Hasan
Ali Hasan
Photo of Allegra Ji
Allegra Ji
Photo of Andre Castaneda
Andre Castaneda
Photo of Andrea Roy
Andrea Roy

Assisting with section AYE

Photo of Angela Zhao
Angela Zhao

Assisting with section AYO

Photo of Aniruddha Pai
Aniruddha Pai
Photo of Anisha Raja
Anisha Raja
Photo of Annie Li
Annie Li

Assisting with section AYD

Photo of Annmay Sharma
Annmay Sharma
Photo of Arnav Batta
Arnav Batta
Photo of Aryaman Parekh
Aryaman Parekh
Photo of Bhavesh Prahladka
Bhavesh Prahladka
Photo of Boda Song
Boda Song
Photo of Bohan Liu
Bohan Liu

Assisting with section AYA

Photo of Bojiang Li
Bojiang Li
Photo of Chengyang Song
Chengyang Song

Assisting with section AYK

Photo of Chenhui Zhang
Chenhui Zhang

Assisting with section AYF

Photo of Chiao Ting Huang
Chiao Ting Huang

Assisting with section AYH

Photo of Chris Kull
Chris Kull
Photo of Christina Hu
Christina Hu

Assisting with section EMP

Photo of Chunyu Liu
Chunyu Liu
Photo of Cindia Hua
Cindia Hua

Assisting with section AYC

Photo of Colleen McConnell
Colleen McConnell
Photo of Da'mon Morris
Da'mon Morris

Assisting with section AYO

Photo of Daniel Xu
Daniel Xu
Photo of Darius Townes
Darius Townes
Photo of David Ngo
David Ngo
Photo of Dev Wadhwa
Dev Wadhwa

Assisting with section AYE

Photo of Dhruv Agrawal
Dhruv Agrawal
Photo of Dhruv Rajgarhia
Dhruv Rajgarhia
Photo of Eesha Moona
Eesha Moona
Photo of Elias Hadgu
Elias Hadgu
Photo of Erin Dowdy
Erin Dowdy
Photo of Evelyn Yang
Evelyn Yang

Assisting with section AYH

Photo of Fantah Kabba
Fantah Kabba

Assisting with section EMP

Photo of Felicia Wang
Felicia Wang

Assisting with section AYT

Photo of Felipe Ferreira
Felipe Ferreira
Photo of Filip Matasic
Filip Matasic
Photo of Frank Yang
Frank Yang

Assisting with section EMP

Photo of Gabriella Xue
Gabriella Xue
Photo of Geoffrey Ma
Geoffrey Ma

Assisting with section AYB

Photo of Haajar Aminmansour
Haajar Aminmansour
Photo of Hania Dziurdzik
Hania Dziurdzik

Assisting with section EMP

Photo of Hassan Farooq
Hassan Farooq
Photo of Hongming Wu
Hongming Wu
Photo of Hui Yu
Hui Yu
Photo of Isaiah Delgado
Isaiah Delgado
Photo of Ishita Rao
Ishita Rao

Assisting with section AYF

Photo of Jack Shao
Jack Shao
Photo of Jeffrey Lin
Jeffrey Lin
Photo of Jiale Ning
Jiale Ning
Photo of Jiaqi Cao
Jiaqi Cao
Photo of Jiawei Pei
Jiawei Pei

Assisting with section AYS

Photo of John Wei
John Wei
Photo of Kanav Bhatnagar
Kanav Bhatnagar

Assisting with section AYI

Photo of Kanav Khanna
Kanav Khanna

Assisting with section AYI

Photo of Karan Sodhi
Karan Sodhi
Photo of Katie Sanders
Katie Sanders
Photo of Kruthi Challa
Kruthi Challa
Photo of Leo Li
Leo Li
Photo of Leonardo Galindo-Frias
Leonardo Galindo-Frias
Photo of Letai Zhao
Letai Zhao
Photo of Marcos Garcia
Marcos Garcia
Photo of Martin Beczkiewicz
Martin Beczkiewicz

Assisting with section AYM

Photo of Matt Geimer
Matt Geimer
Photo of Matthew Larson
Matthew Larson
Photo of Matthew Lezak
Matthew Lezak
Photo of Meera Jagannathan
Meera Jagannathan
Photo of Megha Ganesh
Megha Ganesh

Assisting with section EMP

Photo of Melissa Cho
Melissa Cho
Photo of Michelle Liang
Michelle Liang
Photo of Mickey Leung
Mickey Leung

Assisting with section AYB

Photo of Mike Qin
Mike Qin
Photo of Molly Graton
Molly Graton
Photo of Naifu Zheng
Naifu Zheng
Photo of Nathan Omerza
Nathan Omerza

Assisting with section AYN

Photo of Nathaniel Zukowski
Nathaniel Zukowski
Photo of Nikhil Richard
Nikhil Richard

Assisting with section AYJ

Photo of Nikil Ravi
Nikil Ravi
Photo of Noah Rogers
Noah Rogers
Photo of Oscar Chen
Oscar Chen
Photo of Parth Tyagi
Parth Tyagi

Assisting with section AYM

Photo of Peizhe Liu
Peizhe Liu

Assisting with section AYH

Photo of Pengwei Zang
Pengwei Zang

Assisting with section AYB

Photo of Pengyue Jiang
Pengyue Jiang

Assisting with section AYO

Photo of Qi Chen
Qi Chen
Photo of Raghav Saini
Raghav Saini

Assisting with section AYD

Photo of Rahul Jonnalagadda
Rahul Jonnalagadda
Photo of Raj Patel
Raj Patel
Photo of Renzo Ledesma
Renzo Ledesma

Assisting with section AYC

Photo of Rohit Mullappalli
Rohit Mullappalli
Photo of Ruoxi Wang
Ruoxi Wang
Photo of Saket Vissapragada
Saket Vissapragada

Assisting with section AYK

Photo of Samuel Ahnert
Samuel Ahnert
Photo of Sarod Nori
Sarod Nori

Assisting with section AYE

Photo of Saym Imtiaz
Saym Imtiaz
Photo of Sean Koo
Sean Koo

Assisting with section AYJ

Photo of Shirley Mao
Shirley Mao

Assisting with section AYO

Photo of Shiven Kumar
Shiven Kumar

Assisting with section EMP

Photo of Shreya Sharma
Shreya Sharma

Assisting with section AYK

Photo of Shruthi Jaganathan
Shruthi Jaganathan

Assisting with section AYP

Photo of Sicong He
Sicong He
Photo of Sid Pothuganti
Sid Pothuganti
Photo of Snehal Somalraju
Snehal Somalraju
Photo of Sruthi Kilari
Sruthi Kilari

Assisting with section AYS

Photo of Sujit Varadhan
Sujit Varadhan

Assisting with section EMP

Photo of Tanvi Chadha
Tanvi Chadha

Assisting with section AYM

Photo of Ted Shao-Xue
Ted Shao-Xue
Photo of Tejesh Bhaumik
Tejesh Bhaumik
Photo of Teresa Dong
Teresa Dong

Assisting with section AYH

Photo of Tim Chen
Tim Chen

Assisting with section AYP

Photo of Tino Caer
Tino Caer

Assisting with section AYA

Photo of Toby Sinclair
Toby Sinclair
Photo of Tongli Zhou
Tongli Zhou
Photo of Vedant Jhaveri
Vedant Jhaveri
Photo of Viola Zhao
Viola Zhao
Photo of Wangqi Xiang
Wangqi Xiang
Photo of Wasay Siddiqui
Wasay Siddiqui
Photo of William Nawor
William Nawor
Photo of William Zhao
William Zhao

Assisting with section EMP

Photo of Xinshuo Lei
Xinshuo Lei
Photo of Yashovardhan Maheshwari
Yashovardhan Maheshwari
Photo of Yijie Huang
Yijie Huang
Photo of Yucheng Feng
Yucheng Feng
Photo of Yucheng Jiang
Yucheng Jiang
Photo of Yueqi Jiang
Yueqi Jiang

Assisting with section AYF

Photo of Yufei Zhu
Yufei Zhu
Photo of Yuhan Lu
Yuhan Lu

Assisting with section AYD

Photo of Yuheng Ding
Yuheng Ding
Photo of Yussuf Khalil
Yussuf Khalil
Photo of Yuxin Wang
Yuxin Wang
Photo of Zachary Mattingly
Zachary Mattingly

Assisting with section AYC

Photo of Zhanyi Lin
Zhanyi Lin
Photo of Zhuofan Jia
Zhuofan Jia

Assisting with section AYC

Photo of Zihan Xu
Zihan Xu
Photo of aileen Long
aileen Long

Assisting with section AYD

13.6. Course Developers

Our course developers do not hold office hours or help with labs. But they are working hard behind the scenes to make CS 125 better this semester and in the future.

Photo of Angie Cheng
Angie Cheng
Photo of Aniket Gargya
Aniket Gargya
Photo of Arjun V. Nair
Arjun V. Nair
Photo of Eli Brottman
Eli Brottman
Photo of Harshit Bagla
Harshit Bagla
Photo of Nehal Singh
Nehal Singh
Photo of Peiyan Wu
Peiyan Wu
Photo of Varnit Sinha
Varnit Sinha

Assisting with section AYM

Photo of Veeresh Neralagi
Veeresh Neralagi
CS 125 is now CS 124

This site is no longer maintained, may contain incorrect information, and may not function properly.

Created 10/24/2021
Updated 10/24/2021
Commit a44ff35 // History // View
Built 10/24/2021 @ 21:29 EDT