Welcome to CS 124

Created By: Geoffrey Challen
/ Updated: 2022-08-21

Welcome to CS 124! Your journey in computer science and programming starts now. We're so excited that you are here.

You Are Not Alone

CS 124 has by far the best course staff on campus. Our fantastic team of undergraduate and graduate students will be with you every step of the way.

Learning computer science and programming is not always easy. You will get frustrated along the way. But you won't need to struggle alone. Our course staff will always be there for you to offer help, support, empathy, encouragement, and lots of love. You can do this! We can help.

How CS 124 Works

CS 124 consists of daily lessons and homework (30%), weekly quizzes (40%), and a longer Android programming project that we will release later in the semester (30%).

All course policies and procedures are fully documented by the syllabus. You should review that document and refer to it when needed. This section provides only a brief overview.

Lessons and Homework

This semester you'll work one lesson per day—just like this one. Lessons combine text, videos, code examples, and interactive walkthroughs. Interspersed are small programming exercises for you to complete.

We expect you to work through each day's lessons on your own time. Don't fall behind! Programming is a skill, best learned bit by bit, one day at a time. However, you may work a few days ahead, which can be helpful in case you need to take a few days off. You are expected to use this flexibility to plan around any absences.


Tuesday during your assigned section time you'll take a proctored quiz. (Note that there are no other synchronous course activities.) Quizzes cover the material taught since the last quiz. If you have reviewed the lesson content and completed all of the homework and practice problems, you will be well-prepared.

Note that your first CS 124 quiz is tomorrow! Please review the forum announcements for more details about how to take your first quiz.

For the first few weeks of the semester we will proctor quizzes over Zoom and you will take them remotely, so you should not report to your assigned room to take your quiz. We may begin giving in-person quizzes later in the semester.

Machine Project

Around halfway through the semester we'll release a larger multi-part Android programming assignment for you to work on called the machine project. The MP helps you continue to grow as a programmer and computer scientist by challenging you to complete a larger programming project—an entire Android app. We'll get there! But let's learn the basics first!

Getting Help

Learning to program is both fun and challenging, and CS 124 moves steadily. But to the degree that we challenge you, we also support you. Every step of the way.

Help Site

CS 124 course staff are available for one-on-one help during scheduled hours using through the help site. The video above provides a brief demo. This is usually your best first step when you need help with your code.


You may also ask questions on our course forum. The forum is a hotbed of course activity, with staff and students available day and night to answer questions, commiserate, offer support, and engage in meme appreciation.


In addition to the lesson content, CS 124 many other ways that the staff help support you on your journey. Our calendar is the place to look for quiz review and preparation sessions.

Lesson Components

Our lessons contain a mixture of different types of content. Some of each lesson will be text, like what you're reading.


We also use a lot of interactive examples, like this one:

These playgrounds are editable and runnable. They are here for you to play with. Run them, modify the code, run them again. You'll learn to program must faster if you allow yourself to experiment.

When working on larger examples your changes will automatically be saved, but you can always return to the original contents. You'll know that an editor is saving your work when you see the green check mark in the upper right-hand corner, like this:

Interactive Walkthroughs

Sometimes we want to show you how to do something using code. In that case, we'll provide an interactive walkthrough, which combines audio with an animated editor. Here's an example.

Code walkthrough to get students used to using the playgrounds and consuming the interactive examples.

Many of our walkthroughs include contributions from multiple course staff members. Confused? Try another explanation! Still confused? Ask on the forum or help site.

Video Content

Finally, we'll also sometimes use video to explain a concept or make a particular point. Or, for the staff to introduce some of their pets!

Introduce your pets!

Practice Problems

Mixed in to each lesson you'll find practice problems, like the one below. Solutions to the practice problem will be available once you've attempted it a few times. These problems will help test your understanding as you go along, and prepare you for that lesson's homework problem and related quiz questions.

Show how to complete the homework problem above. Feel free to cover multiple approaches!

Debugging Challenges

Demonstrate how to complete a debugging challenge.

As you learn to write computer code, you'll need to be able to identify and fix small mistakes with your programs. To give you more practice with this, lessons also include debugging challenges, like the one below. These give you practice at finding and identifying small mistakes in computer programs.

Who is Colleen Lewis?

Throughout the lessons—particularly on the Java materials—you'll find explanations from Professor Colleen Lewis. Colleen is not officially involved with CS 124 this semester, but she created a bunch of great content in Fall 2021 that we continue to use. In general feel free to explore explanations from multiple staff members, particularly if the first one you see doesn't quite click.

What is Code?

This semester we're learning the Kotlin programming language. Outline the things that computers are good at. But what's hard about code is getting them to do what you want!

We explain what we want them to do by writing computer code, also known as programming. Code is how we communicate with these magnificent machines. When you are getting started, code will feel a lot like a code: something scrambled and confusing that you don't always understand. Code is also text, and after you have written enough of it you will probably start to feel that it has a rhythm and flow to it not unlike prose or poetry. It can be beautiful—and it can be ugly.

Humans have developed different ways to communicate with computers using different programming languages. The use of the word language is not an accident. A computer that is prepared to accept instructions in one language will be confused if you speak to it in another.

We'll be reading and writing a lot of Kotlin computer code together this semester. But what is code?

Computers are incredibly powerful and versatile machines. If you can get them to do what you want, you can solve any problem and change the world. But how do we tell them what to do?

Here's one of the simplest examples of a computer program—one so special that it has its own name: "Hello, world!".

Run the code above and see what happens. Now, play with the code. Experiment and see what happens. Maybe try and see if you can get the code to print something other than "Hello, world!". See if you can break the code, and find out what happens when the code doesn't run. Nothing bad will happen! But see if you can figure out what is wrong with the code based on the output produced by the computer.

Your First Homework Problem

Each lesson concludes with a homework problem to complete. Solutions to the homework problem will be available once you complete it, or once the deadline passes.

Homework Collaboration Policy

CS 124 allows students to work together on the daily homework problems. Let's discuss how that might influence how you approach each day's homework problem.

Discuss the homework collaboration policy.

Show how to complete the homework problem above. Feel free to cover multiple approaches!

CS 124 Honors

Some of you may be interested in CS 199 124, the CS 124 honors section. It's a fantastic experience! It also has its own website and sources of information. Please use those resources to ask questions about the class. But here are the leads to pitch the course to you:

To sign up to find out more about CS 199 124, use this form.

More Practice

Need more practice? Head over to the practice page.