Kotlin
Java

Fall 2021 Syllabus

This web page serves as the syllabus for the course. You should familiarize yourself with these policies and refer to them when necessary.

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.

Computer science is both an applied and a conceptual discipline. You will learn how to program in this course. Knowing how to program brings your ideas to life. It can be frustrating at first. Computers are irritatingly literal machines. But programming is a skill. You will get better with practice. And you will get 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 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. 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

From the course catalog:

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

Required Materials

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

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.

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.
Understand runtime and design tradeoffs between different algorithms, data structures, and data structure implementations.

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.Machine project 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), build system (Gradle), and pair programming techniques.70% correctly identified marks outcome achieved.
Utilize standard Java or Kotlin features and libraries—including objects and simple built-in data structures.
Debug and test Java or Kotlin programs.
Use programming to solve problems in other domains.

Preparation

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

Some students in CS 124 have no experience with computer science. Others have been programming for years. But everyone can and does succeed in CS 124! In Spring 2021, the grade gap in CS 124 between students with and without prior experience was only 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. 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 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 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

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

FAQ

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

I want to register for a lab, but it's full? Or I want to switch labs. Can you help me?

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

Course Activities

CS 124 consists of asynchronous daily interactive lessons and online office hours. You should expect to 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 and Colleen Lewis, who have primary responsibility for course content. Course programming is delivered by teaching assistants and course associates. All course staff help run office hours at all hours of the day and night. You can find all our fantastic staff listed here.

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

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. At the end of each lesson are a few homework problems to complete that demonstrate your understanding of the lesson's content. You should set aside time each day to review the lesson content and complete the homework problems.

Quizzes

Each one-hour quiz emphasizez 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. The programming questions will be similar—but not identical—to the previous homework problems.

Keeping up with the daily lessons will prepare you for the weekly quiz. Quizzes are run during your assigned Tuesday lab time. You should join the quiz proctoring session during your lab and complete the quiz then. However, if you need to take the quiz at a different time a few times during the semester, that is fine. Check the forum for more details about quiz proctoring.

Help Site

All course staff participate in running online office hours on the online help site. Office hour times will be posted on the calendar.

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

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 thator plan on visiting the forum each and every day. In fact, both are good ideas.

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 1000 students consumes 80 hours. You should also never contact a TA or CA directly unless they have agreed to this beforehand. Post on the forum.

You should absolutely never email a member of the course staff who is not an instructor. Head CAs, TAs, associates, and assistants are instructed to not respond to email from students. 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 the questions that you have 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 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 124-related item here)...: post on the forum.
  • I can't find (insert name of CS 124-related resource here)...: post the forum.

You can probably see the 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 124: 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, or a counselor, or access mental health resources on campus.

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

Collaboration

Learning computer science requires hard work and practice. CS 124 has specific policies about when and how you may collaborate with other students. These policies are designed to support your learning. If you subvert them, you are not getting the practice that you need to improve.

Unless specifically permitted, all work submitted for CS 124 must be your own. We describe exceptions that apply to homework problems and to portions of the machine project below.

Cheating in CS 124 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 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 private course assessments.
  6. Publish your MP or coursework anywhere where other students can find them.
  7. Email or share your code with anyone in the class now or in future semesters.

Note that this includes publishing your MP publicly on GitHub. Employers are typically uninterested in seeing your solutions to assignments that have also been completed by hundreds of other students. If you want to impress them, fill your online portfolio with independent creative work. We'll help you get started with Android development this semester, which will allow you to pursue independent projects after completing CS 124. You may also want to look into completing a project as part of the the CS 124 honors section: CS 196 124.

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.

A Rule of Thumb

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.

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:

  • A letter grade reduction in the class.
  • An F in the course.

Homework Collaboration

You may find it helpful to collaborate on the homework with a partner. This is permitted in CS 124, subject to the rules outlined 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 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, we encourage you to try working with different people until you find a compatible partner. 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!

When you collaborate on a homework problem, we'll ask you to indicate who you worked with before beginning. You may examine your partner's code either in person or virtually. However, you may not email or transfer the code directly to your partner. Our homework problems prevent you from directly pasting text anyway, so this approach won't be helpful anyway. Both partner must type in their own solution. You also may not switch partners during the same problem, although you can choose a different partner for the next homework problem.

One final thing to keep in mind is that the course staff are always available to help! You'll find helpful course staff on our help site for hours and hours each day and night. In many ways, our course staff are better prepared to collaborate with you on your homework than other students. They have completed the problems, but are 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.

MP Collaboration

You can also collaborate with a partner on the first two machine project (MP) checkpoints.

This requires doing all of your work on the MP together. You may not debug or write code without your partner. You also may not receive help from course staff without your partner.

This type of enforced collaboration is not common industry practice. Even developers who might choose to collaborate on trickier parts of a project would still perform a great deal of work independently. But our policy is designed to ensure you both have the opportunity to learn from all parts of the project. When you are working, you need to alternate who is driving—meaning using the keyboard. We recommend setting a timer to remind you when to switch drivers.

You cannot switch partners during the MP. But you and your partner can decide to end your collaboration at any point. If you decide to part ways, you and your partner can continue using the codebase that you worked on together. Regardless, you and your partner will need to complete the final two project checkpoints independently.

We will provide more details about how to indicate that you are collaborating and who you are working with when the machine project is released.

Grading

Your grade in CS 124 is determined by your work on the daily homework (30%), weekly quizzes (40%), and longer multi-part Android programming project (30%).

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

Grade Components

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

Component%AssessmentsDrops
Machine Project (MP)30%40
Homework30%~7812
Quizzes40%153

These weights are designed to reflect the amount of time that students spend on each part of the class. 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 and hacker. The quizzes give us a chance to evaluate your abilities in a controlled setting.

Details about each grade component are included below.

Drops

To account for illness, absence, forgetfulness, mistakes, temporary stupidity, and other normal life events, we will drop a few of your lowest quiz and homework scores. The table above summarizes the drop policy for each grade component.

So, for example, we will assign roughly 78 homework problems and drop your lowest 12 scores. The machine project has approximately 4 checkpoints and we not drop any checkpoint scores.

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 in learns the material, everyone will make an A.

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

Posting Grades

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

Homework (30%)

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 ends with a small programming problem for you to complete. Completing the daily homework will also 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.

Quizzes (40%)

40% of your grade is for performance on 15 weekly timed quizzes. All quizzes will be given online during your assigned lab time.

CS 124 quizzes consist of a mixture of multiple-choice and programming questions. 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 staff are involved in grading CS 124 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 scores using our online grading page.

Format

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

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 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 more of a challenge. Programming under time pressure can be difficult and stressful. 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.

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 walkthrough, and interact with the examples—and then complete the homework problem. If you engage with the course content on a daily basis, you will not need to cram material right before the quiz.

Missed Quizzes

Do not contact the course staff regarding missed quizzes. You must take them within your assigned lab window, and not at some other time. We will drop your 3 lowest quiz scores when computing the quiz component of your final grade.

Reporting Quiz Problems

If you believe that you have spotted a problem with a quiz question, please report the problem to the course staff on the forum. Do not post your questions publicly.

At that point we will do one of the following:

  • 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.
  • 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.
  • If the question is fine we will not do anything.

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 run weekly programs reviewing quiz content, although they will not be recorded.

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 exam week or during our scheduled exam time.

Machine Project (MP) (30%)

Programming is a skill. The more you do, the better you become. The CS 124 machine 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 30% of your grade. Working on it will deepen your understand of the material covered in lecture, and improve your performance on the quizzes.

Not Machine Problems: A Machine Project

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

However, in 2019 we replaced the multiple unconnected assignments with a single machine project: an Android application that you will complete in parts over the second half of the semester. We hope that this format will encourage you to fix up and improve the parts of the project that you completed previously, while also allowing you to complete a more substantial project.

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

How to Complete the MP

To help you conquer the large machine project, we 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. 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 skillshow 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.

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 accordingly to complete it on time. Nothing correlates more strongly with success on the MP checkpoints than starting early.

Late Submission Policy

It is extremely important that you keep up with the MP. CS 124 moves quickly, and if you get behind early you will quickly find yourself lost and unable to complete the later assignments.

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:

  • We award points on most MP checkpoints for starting on time and reaching a certain milestone well before the checkpoint is due
  • You can submit each MP checkpoint as many times as you want until 11:59:59 PM on Wednesday 12/8/2021 (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 (100/100) 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-on-time points. So if there were 10 starting-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 on time.
  • You will always receive the best score earned by any submission.

Extra Credit

There may 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. 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.

Other Policies

Below we summarize some other general course-related policies.

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 the course staff 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.

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 register for test-taking accommodations using your website profile. You will also need to upload your Letter of Accommodation to ensure that we have it 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 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.

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

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

Your instructors 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

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.

  • Counseling Center: 217-333-3704, 610 East John Street Champaign, IL 61820
  • McKinley Health Center: 217-333-2700, 1109 South Lincoln Avenue, Urbana, IL 61801

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

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 drop 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 machine project, please let us know. We can work together to make a plan that works for you.

Here’s the official UIUC 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.