CS 125 Spring 2018 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. 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 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.

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

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

1.2.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, final exam. 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

Explain how computers work—including components of a small instruction set and byte-addressable memory

1.2.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 recursion when 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 (IntelliJ), 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

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

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

1.3.2. If you think you 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 MPs 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.

1.4. General Education Information

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

2. 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 two-hour lab section, and many office hours 2.

Lectures are taught by Geoffrey Challen. Labs are led the 10 TAs, and office hours are staffed by the TAs and our 157 course assistants. We also have 10 course developers hacking away furiously to improve our course materials and infrastructure. You can find out more about the entire staff on the people page.

2.1. Calendar

We suggest that you add our shared calendar to your calendaring program. If you are not using a calendaring program, we suggest that you start using a calendaring program.

We don’t maintain separate calendars for every lecture and lab, so this calendar is only for collective class events: things like office hours, quizzes, MP deadlines, and other events that are relevant to the entire class.

2.2. Lectures

All of the CS 125 lectures are at capacity, so please attend and participate in the lecture that you are registered for. You will not receive credit for participation in the wrong lecture.

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

    Days Time Location

0

AL1

MWF

08:00–08:50

1002 Electrical & Computer Eng Bldg

1

AL2

MWF

10:00–10:50

1404 Siebel Center for Comp Sci

2.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 TA Assistants

0

AYA

T

09:00–10:50

0224 Siebel Center for Comp Sci

Adrian Isuru Herath, Edward Pei Shi, Yujia Yan, and Billy Li

1

AYB

T

11:00–12:50

0224 Siebel Center for Comp Sci

Ajaita Saini, Annabelle Y Shih, Yu Ma, and Zaaim Patel

2

AYM

T

11:00–12:50

0222 Siebel Center for Comp Sci

Bradley T Fishman, Daniel I Rosen, Haoyu Wang, and Nikita Mikhaylov

3

AYC

T

13:00–14:50

0224 Siebel Center for Comp Sci

Nicholas Wang, David Terpay, Kevin Zhang, and Eric Wang

4

AYN

T

13:00–14:50

0222 Siebel Center for Comp Sci

Cameron Andrew Welch, Jiarui Zou, Wenshan Xiong, and Xingjian Di

5

AYD

T

15:00–16:50

0224 Siebel Center for Comp Sci

Calen Allen Resh, Eugenia Yijing Chen, Leyao Zhou, Timur A Javid, and Zihe Wu

6

AYO

T

15:00–16:50

0222 Siebel Center for Comp Sci

Jack Anton Henhapl and Mose Mizrahi

7

AYE

T

17:00–18:50

0224 Siebel Center for Comp Sci

Maanu Grover, Riya Bhaskar Dave, Ruobin Wang, Satvik Sethia, and Will Albers

8

AYP

T

17:00–18:50

0222 Siebel Center for Comp Sci

Aarya Chandhok, Feng Hou, Meghana Chigurupati, Sejal Kamlesh Parmar, Soham Saha, and Soumya Sarah Kuruvila

9

AYF

T

19:00–20:50

0224 Siebel Center for Comp Sci

Baihe Duan, Jiahua Zhang, Jiali Chen, Jiazheng Yu, Natalia Nicole Ozymko, and Zhengrong Sun

10

AYH

W

11:00–12:50

0224 Siebel Center for Comp Sci

Arushi Agarwal, Divey Anand, Austin Li, and Michael James Hennelly

11

AYR

W

11:00–12:50

1103 Siebel Center for Comp Sci

Han Sun, Morgan Meliment, Rishu Bagga, and Zhe Zhang

12

AYI

W

13:00–14:50

0224 Siebel Center for Comp Sci

Anooj A Lal and Ryan Schweizer Johnson

13

AYS

W

13:00–14:50

1111 Siebel Center for Comp Sci

Connor Ethan Reardon, Hailey Malueg, and Keshav Shivam

14

AYJ

W

15:00–16:50

0224 Siebel Center for Comp Sci

Alex Shi, Chinmaya Pankaj Sharma, Ismail Emre Dayan, and Wenjie Yu

15

AYT

W

15:00–16:50

1111 Siebel Center for Comp Sci

Alexander Benedykt Szymanski, Joey Bahary, Kayla Cease Raflores, and Suhirtha S Raj

16

AYK

W

17:00–18:50

0224 Siebel Center for Comp Sci

Paul Anthony Karas, Satwik Singh, Vladimir A Montchik, and Vincent Yang

17

AYU

W

17:00–18:50

1111 Siebel Center for Comp Sci

Eunsun Lee, Tajesvi Bhat, and Yiyin Shen

2.4. Office Hours

Office hours are run by our 157 course assistants and our 10 TAs. They are on the calendar and pretty much all day every day. See the resources page for more details.

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

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

3.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 600 students consumes 50 hours of time, which is about half of my entire work week. 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.

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.

4. Grading

Your CS 125 grade is determined by your performance on the machine problems (MPs) (45%), weekly quizzes (20%), a single final exam (20%), completion of Turing’s Craft programming exercises (5%), and lecture (5%) and lab (5%) participation.

4.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. You will spend most of your time completing the MPs, and that is where you will get the most practice and actually become a computer scientist. The quizzes and exams give us a chance to evaluate your performance in a more controlled setting. Most students earn full marks on the other course components: Turing’s Craft, and lab and lecture participation.

Details about each grade component are included below.

4.2. Dropped Grades

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

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

Machine Problems (MPs)

45%

8

1

Weekly Quizzes

20%

15

3

Turing’s Craft Exercises

5%

30

5

Lab Participation

5%

15

3

Lecture Participation

5%

45

10

So, for example, we will assign 8 MPs and drop your lowest 1 score. We will track participation in 15 labs and drop your lowest 3 scores. We will assign 30 TC exercises and drop your lowest 5 scores.

4.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. The fact that the final exam is worth 20% of your grade also makes it pointless to try to project your final grade midway through the course.

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.

4.4. Posting Grades

We do not guaranteed that we will maintain grade components on Compass. We will post final letter grades and all grade components there at the end of the term.

5. Machine Problems (MPs)

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

Together the MPs are worth 45% of your grade—the largest grade component. Working on them will deepen your understand of the material covered in lecture, and improve your performance on the quizzes and final exam.

5.1. How to Complete the MPs

The CS 125 MPs are 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 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. As soon as each MP 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 MP 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 MPs than starting early.

5.2. Late Submission Policy

It is extremely important that you keep up with the MPs. 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 source of student lack of success in the course.

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 5 each MP as many times as you want until 11:59:59 PM on Wednesday 5/2/2018.

  • 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 MP after the deadline. If you submit code that earns 0/100 before the 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 assignment on time points. So if there were 10 starting the assignment 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 scores here.

  • We will drop your lowest MP score.

6. Quizzes

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

No course staff members are involved in grading CS 125 quizzes, 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 office quiz scores here.

6.1. 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, usually Friday through Tuesday.

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

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

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

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

7. Exam, Turing’s Craft, and Participation

There are fewer policies associated with these grade components, so we grouped them together.

7.1. Exam

20% of your grade is earned through a single cumulative final exam at the end of the semester. More details about the exam will be released closer to the exam date. You can find examples of previous exams and solutions here.

7.2. Turing’s Craft

5% of your grade is earned by completing online programming exercises. You can attempt these exercises as many times as you want, but we will drop 5 sets of exercises that you submit after the deadline. Please see these instructions that describes how to register and earn credit for the Turing’s Craft coding problems.

7.3. Lecture and Lab Participation

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

Lecture participation is calculated in the same way: except for Spring 2018. This semester your lecture participation will be the higher of the following two scores:

  • Participation in all lectures 10 excused absences

  • Participation in lectures starting Monday 3/12/2018 with 5 excused absences

7.3.1. Lecture participation tracking

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

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

  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.

8. Other Policies

Below we summarize some other general course-related policies.

8.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 MPs or coursework anywhere where other students can find them. Note that this includes publishing your MPs publicly on GitHub. Nobody wants to see your solutions to the MPs 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.

8.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 6, that’s fine. If you are talking or exchanging computer code, that’s cheating.

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

8.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 MPs 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 7 we will not grant requests for extensions or other accommodations after the relevant deadline has passed.

8.3. Accommodations

We are more that 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.

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 exams, please take your Letter of Accommodation to the CBTF proctors in person before you make your first exam reservation. The proctors will advise you as to whether the CBTF provides your accommodations or whether you will need to make other arrangements with your instructor.

9. Videos

The 10AM lectures were taped this semester and were available at this Echo360 link. That link may still work.

10. People

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

10.1. Instructor

Photo of Geoffrey Challen

Geoffrey (GWA) Challen

Teaching lectures.

10.2. Teaching Assistants

Photo of Ammar Khuzeima Sakarwala
Ammar Khuzeima Sakarwala

Teaching sections AYS and AYT

Photo of Fatima Tariq
Fatima Tariq

Teaching sections AYD and AYE

Photo of Gohar Irfan Chaudhry
Gohar Irfan Chaudhry

Teaching sections AYR and AYJ

Photo of Liia M Butler
Liia M Butler

Teaching section EMP

Photo of Medhini Gulganjalli Narasimhan
Medhini Gulganjalli Narasimhan

Teaching sections AYH and AYI

Photo of Rahul Shivu Mahadev
Rahul Shivu Mahadev

Teaching sections AYB and AYC

Photo of Rishika Agarwal
Rishika Agarwal

Teaching sections AYM and AYK

Photo of Shiqi Sun
Shiqi Sun

Teaching sections AYN and AYO

Photo of Sidhartha Satapathy
Sidhartha Satapathy

Teaching sections AYP and AYF

Photo of Zhe Xu
Zhe Xu

Teaching sections AYA and AYU

10.3. 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 Aarya Chandhok
Aarya Chandhok

Assisting with section AYP

Photo of Adrian Isuru Herath
Adrian Isuru Herath

Assisting with section AYA

Photo of Aishik Ghosh
Aishik Ghosh
Photo of Ajaita Saini
Ajaita Saini

Assisting with section AYB

Photo of Alex Shi
Alex Shi

Assisting with section AYJ

Photo of Alexander Benedykt Szymanski
Alexander Benedykt Szymanski

Assisting with section AYT

Photo of Aneesh Sriram Mysore
Aneesh Sriram Mysore
Photo of Annabelle Y Shih
Annabelle Y Shih

Assisting with section AYB

Photo of Anooj A Lal
Anooj A Lal

Assisting with section AYI

Photo of Arushi Agarwal
Arushi Agarwal

Assisting with section AYH

Photo of Asha Agrawal
Asha Agrawal

Assisting with section EMP

Photo of Austin Li
Austin Li

Assisting with section AYH

Photo of Ayline Alexandra Villegas
Ayline Alexandra Villegas
Photo of Baihe Duan
Baihe Duan

Assisting with section AYF

Photo of Bailey Tincher
Bailey Tincher
Photo of Billy Li
Billy Li

Assisting with section AYA

Photo of Bradley T Fishman
Bradley T Fishman

Assisting with section AYM

Photo of Brian Yu
Brian Yu

Assisting with section EMP

Photo of Bryan Huang
Bryan Huang

Assisting with section EMP

Photo of Calen Allen Resh
Calen Allen Resh

Assisting with section AYD

Photo of Calina Elizabeth Shaw
Calina Elizabeth Shaw

Assisting with section EMP

Photo of Cameron Andrew Welch
Cameron Andrew Welch

Assisting with section AYN

Photo of Changcheng Fu
Changcheng Fu

Assisting with section EMP

Photo of Chinmaya Pankaj Sharma
Chinmaya Pankaj Sharma

Assisting with section AYJ

Photo of Chris Spankroy
Chris Spankroy

Assisting with section EMP

Photo of Claire Boyan
Claire Boyan
Photo of Connor Ethan Reardon
Connor Ethan Reardon

Assisting with section AYS

Photo of Curie Hong
Curie Hong

Assisting with section EMP

Photo of Daniel I Rosen
Daniel I Rosen

Assisting with section AYM

Photo of Daniel K Nam
Daniel K Nam
Photo of Daniel Lin
Daniel Lin

Assisting with section EMP

Photo of Darren Wen Lim
Darren Wen Lim
Photo of David Terpay
David Terpay

Assisting with section AYC

Photo of Dennis Zhao
Dennis Zhao
Photo of Dipro Ray
Dipro Ray
Photo of Divey Anand
Divey Anand

Assisting with section AYH

Photo of Drew N Litkowiak
Drew N Litkowiak
Photo of Edward Pei Shi
Edward Pei Shi

Assisting with section AYA

Photo of Elayda Hou
Elayda Hou

Assisting with section EMP

Photo of Eric Ma
Eric Ma

Assisting with section EMP

Photo of Eric Wang
Eric Wang

Assisting with section AYC

Photo of Eugenia Yijing Chen
Eugenia Yijing Chen

Assisting with section AYD

Photo of Eunsun Lee
Eunsun Lee

Assisting with section AYU

Photo of Feng Hou
Feng Hou

Assisting with section AYP

Photo of Gajan Sathya Kumar
Gajan Sathya Kumar
Photo of Gary Alexander Braznichenko
Gary Alexander Braznichenko
Photo of George Hua Li
George Hua Li
Photo of Grace Christine Thompson
Grace Christine Thompson
Photo of Grace S Cao
Grace S Cao

Assisting with section EMP

Photo of Hailey Malueg
Hailey Malueg

Assisting with section AYS

Photo of Han Sun
Han Sun

Assisting with section AYR

Photo of Haoyu Wang
Haoyu Wang

Assisting with section AYM

Photo of Harry Chen
Harry Chen
Photo of Hongxuan Chen
Hongxuan Chen

Assisting with section EMP

Photo of Isaac Park
Isaac Park
Photo of Isabel Victoria Greiner
Isabel Victoria Greiner

Assisting with section EMP

Photo of Ismail Emre Dayan
Ismail Emre Dayan

Assisting with section AYJ

Photo of Jack Anton Henhapl
Jack Anton Henhapl

Assisting with section AYO

Photo of Jacob Andrew Richeal
Jacob Andrew Richeal
Photo of Jake J Allen
Jake J Allen

Assisting with section EMP

Photo of Jasmine Yi
Jasmine Yi

Assisting with section EMP

Photo of Jayam C Shah
Jayam C Shah

Assisting with section EMP

Photo of Jenny Chen
Jenny Chen
Photo of Jeremy Yushen Hu
Jeremy Yushen Hu
Photo of Jiahua Zhang
Jiahua Zhang

Assisting with section AYF

Photo of Jiali Chen
Jiali Chen

Assisting with section AYF

Photo of Jiarui Zou
Jiarui Zou

Assisting with section AYN

Photo of Jiazheng Yu
Jiazheng Yu

Assisting with section AYF

Photo of Joey Bahary
Joey Bahary

Assisting with section AYT

Photo of John Zhong Wang
John Zhong Wang
Photo of Jonathan Chang
Jonathan Chang
Photo of Joshua Cheng
Joshua Cheng
Photo of Karthik Shankar
Karthik Shankar

Assisting with section EMP

Photo of Kate Ye
Kate Ye
Photo of Kavi Nanda Ravuri
Kavi Nanda Ravuri

Assisting with section EMP

Photo of Kayla Cease Raflores
Kayla Cease Raflores

Assisting with section AYT

Photo of Keshav Shivam
Keshav Shivam

Assisting with section AYS

Photo of Kevin Zhang
Kevin Zhang

Assisting with section AYC

Photo of Kimi Hirano
Kimi Hirano
Photo of Leo Lopez
Leo Lopez
Photo of Leyao Zhou
Leyao Zhou

Assisting with section AYD

Photo of Maanu Grover
Maanu Grover

Assisting with section AYE

Photo of Maciej Krzysiak
Maciej Krzysiak
Photo of Manas Biju
Manas Biju
Photo of Meghana Chigurupati
Meghana Chigurupati

Assisting with section AYP

Photo of Michael James Hennelly
Michael James Hennelly

Assisting with section AYH

Photo of Michelle Giang
Michelle Giang
Photo of Mihika Aggarwal
Mihika Aggarwal
Photo of Miranda Liu
Miranda Liu
Photo of Morgan Meliment
Morgan Meliment

Assisting with section AYR

Photo of Mose Mizrahi
Mose Mizrahi

Assisting with section AYO

Photo of Natalia Nicole Ozymko
Natalia Nicole Ozymko

Assisting with section AYF

Photo of Nicholas Wang
Nicholas Wang

Assisting with section AYC

Photo of Nick Helms
Nick Helms
Photo of Nicole Sheila Kolbasov
Nicole Sheila Kolbasov
Photo of Nikita Mikhaylov
Nikita Mikhaylov

Assisting with section AYM

Photo of Paul Anthony Karas
Paul Anthony Karas

Assisting with section AYK

Photo of Pavan Marempudi
Pavan Marempudi

Assisting with section EMP

Photo of Peng Shen
Peng Shen
Photo of Pratik Gajanan Chaudhari
Pratik Gajanan Chaudhari
Photo of Priyanka Dey
Priyanka Dey
Photo of Rena Xu
Rena Xu
Photo of Rishu Bagga
Rishu Bagga

Assisting with section AYR

Photo of Riya Bhaskar Dave
Riya Bhaskar Dave

Assisting with section AYE

Photo of Ruiqi Peng
Ruiqi Peng

Assisting with section EMP

Photo of Ruizheng Bai
Ruizheng Bai
Photo of Ruobin Wang
Ruobin Wang

Assisting with section AYE

Photo of Ryan Schweizer Johnson
Ryan Schweizer Johnson

Assisting with section AYI

Photo of Sam Pal
Sam Pal
Photo of Satvik Sethia
Satvik Sethia

Assisting with section AYE

Photo of Satwik Singh
Satwik Singh

Assisting with section AYK

Photo of Sayan Bhattacharjee
Sayan Bhattacharjee
Photo of Scott Kim
Scott Kim

Assisting with section EMP

Photo of Sejal Kamlesh Parmar
Sejal Kamlesh Parmar

Assisting with section AYP

Photo of Sherina Hung
Sherina Hung

Assisting with section EMP

Photo of Shinka Mori
Shinka Mori

Assisting with section EMP

Photo of Shoji Moto
Shoji Moto

Assisting with section EMP

Photo of Shuo Yan
Shuo Yan
Photo of Siyu Niu
Siyu Niu
Photo of Sizhi Tan
Sizhi Tan
Photo of Soham Saha
Soham Saha

Assisting with section AYP

Photo of Sophia Yang
Sophia Yang
Photo of Soumya Sarah Kuruvila
Soumya Sarah Kuruvila

Assisting with section AYP

Photo of Stanley Wu
Stanley Wu
Photo of Suhirtha S Raj
Suhirtha S Raj

Assisting with section AYT

Photo of Taha Ali Syed
Taha Ali Syed

Assisting with section EMP

Photo of Tajesvi Bhat
Tajesvi Bhat

Assisting with section AYU

Photo of Thomas Huang
Thomas Huang
Photo of Timur A Javid
Timur A Javid

Assisting with section AYD

Photo of Tony Lu
Tony Lu

Assisting with section EMP

Photo of Tushar Jain
Tushar Jain
Photo of Vibhav Kotriwala
Vibhav Kotriwala
Photo of Vincent Yang
Vincent Yang

Assisting with section AYK

Photo of Vivek Mallampati
Vivek Mallampati

Assisting with section EMP

Photo of Vladimir A Montchik
Vladimir A Montchik

Assisting with section AYK

Photo of Wenjie Yu
Wenjie Yu

Assisting with section AYJ

Photo of Wenshan Xiong
Wenshan Xiong

Assisting with section AYN

Photo of Will Albers
Will Albers

Assisting with section AYE

Photo of Xiang Wang
Xiang Wang
Photo of Xingjian Di
Xingjian Di

Assisting with section AYN

Photo of Xiran Yin
Xiran Yin
Photo of Xizi Yang
Xizi Yang
Photo of Xuanmin Zhu
Xuanmin Zhu
Photo of Yichao Bao
Yichao Bao

Assisting with section EMP

Photo of Yiliu Tang
Yiliu Tang

Assisting with section EMP

Photo of Yiyin Shen
Yiyin Shen

Assisting with section AYU

Photo of Yu Ma
Yu Ma

Assisting with section AYB

Photo of Yuechen Liu
Yuechen Liu

Assisting with section EMP

Photo of Yujia Yan
Yujia Yan

Assisting with section AYA

Photo of Yuming Li
Yuming Li

Assisting with section EMP

Photo of Zaaim Patel
Zaaim Patel

Assisting with section AYB

Photo of Zach Oldham
Zach Oldham
Photo of Zehua Chen
Zehua Chen
Photo of Zhanyan Zhu
Zhanyan Zhu
Photo of Zhe Zhang
Zhe Zhang

Assisting with section AYR

Photo of Zhengrong Sun
Zhengrong Sun

Assisting with section AYF

Photo of Zihe Wu
Zihe Wu

Assisting with section AYD

10.4. 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 Aaron Jacob Lichtman
Aaron Jacob Lichtman
Photo of Alayna M Johnson
Alayna M Johnson
Photo of Alpri Else
Alpri Else
Photo of James Wang
James Wang
Photo of Karthik Ravi
Karthik Ravi
Photo of Kyle T Begovich
Kyle T Begovich
Photo of Parul Chakole
Parul Chakole
Photo of Rittika Adhikari
Rittika Adhikari
Photo of Sathwik Pochampally
Sathwik Pochampally
Photo of Thomas John Tatro
Thomas John Tatro
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