Course Info

Course Description

The design and implementation of computer programs in a high-level language, with emphasis on proper design principles and advanced programming concepts, including dynamic data structures and recursion. Efficient design, implementation and debugging techniques are stressed. The assignments are designed to introduce the student to a variety of topics in computing: data structures and ADTs, Lists, Stacks, Queues, Ordered Lists, Binary Trees, and searching and sorting techniques.

Prerequisites: CS110 with a grade of C- or better or permission of the instructor.

Students who successfully complete this course will be able to confidently implement, debug, and put a wide variety of algorithms and data structures to work in computational problems that they might encounter later in their careers. The course covers fundamental material that will be of value to students interested in science, mathematics, and engineering.

Course Staff

Name Role Email Office Hours
Swami Iyer Instructor M-3-201-14 In-person: Tue Thu 10:00 AM - 12:00 PM
Remote: Wed 10:00 AM - 12:00 PM (Zoom link)
Kristin Qi Teaching Assistant M-3-201-10 Tue Thu 5:30 PM - 6:30 PM
Lucas Gustafson Teaching Assistant M-3-201-10 Mon Wed 2:30 PM - 3:30 PM
Samyak Gangwal Teaching Assistant M-3-201-10 Mon Wed 1:15 PM - 2:15 PM
Jongsoo Ha Course Assistant M-3-0731 Tue 4:00 PM - 5:00 PM; Fri 11:00 AM - 12:00 PM
Lorenzo Orio Course Assistant M-3-0731 Mon Wed 4:00 PM - 5:00 PM
Trinadhreddy Seelam Course Assistant M-3-0731 Tue Thu 11:00 AM - 12:00 PM
Gwen Dowling Supplemental Instruction Leader - -

Note: In case you want to email us, please start the subject line with [CS210].



We will have two lectures per week, during which I will present the material from the slides. I strongly recommend skimming through the material before each lecture, and reading it again thoroughly soon after.

Section When Where
1-4, 7-8 Tue Thu 2:00 PM - 3:15 PM Y-2-2310


Starting from the second week, there will be a discussion every week. The focus of the discussion for a particular week will be the current assignment. The teaching assistant (TA) will walk you through the exercise/project problems systematically. The TA will also answer any specific questions you may have about the assignment or the course material in general. You may also seek help from the course assistant (CA) who will be assisting the TA during the discussions. The discussions will be worthwhile only if you go to the sessions having read the assignment writeup thoroughly and have at least a moderate understanding of the problems involved. The TA will assume that you have done the reading in advance.

Section When Where TA CA
1 Tue 12:30 PM - 1:45 PM M-1-0418 Samyak Gangwal Trinadhreddy Seelam
2 Thu 12:30 PM - 1:45 PM M-1-0418 Samyak Gangwal Trinadhreddy Seelam
3 Tue 4:00 PM - 5:15 PM W-1-0045 Kristin Qi Lorenzo Orio
4 Thu 4:00 PM - 5:15 PM W-1-0055 Kristin Qi Lorenzo Orio
7 Tue 9:30 AM - 10:45 AM W-2-0200 Lucas Gustafson Jongsoo Ha
8 Thu 9:30 AM - 10:45 AM W-1-0047 Lucas Gustafson Jongsoo Ha

Supplemental Instruction

As part of the College of Science and Mathematics Freshman Success Program, supplemental instruction (SI) is available to all CS210 students free of charge. The SI sessions will also start from the second week. The focus of the sessions for a particular week will be the material covered in class during the previous week. The SI leader will walk you through the relevant lecture notes and solve problems. In addition, the SI leader will answer any specific questions you may have about the current exercise/project assignment, or the course material in general. The SI sessions are optional, but highly recommended, especially if you feel like you are falling behind in the course. You may attend as few or as many sessions as you like. You will receive extra-credit points for attending the sessions (see the Grading section below).

When Where
Mon 2:00 PM - 2:50 PM Y-1-1340
Wed 2:00 PM - 2:50 PM Y-1-1340
Thu 12:30 PM - 1:45 PM M-2-0417
Sat 9:00 AM - 9:50 AM Remote (Zoom link)


Tutoring for this course is available through the Tutoring Programs.


Algorithms by Robert Sedgewick and Kevin Wayne

This text provides an excellent survey of the most important algorithms and data structures in use today, motivating each algorithm by examining its impact on applications to science, engineering, and industry.



Item % of Final Grade
Exercises (best 5 out of 6) 5
Projects (best 5 out of 6) 20
Exams (1 and 2) 70
Attendance 5


% Score Grade
[93, 100] A
[90, 93) A-
[87, 90) B+
[83, 87) B
[80, 83) B-
[77, 80) C+
[73, 77) C
[70, 73) C-
[67, 70) D+
[63, 67) D
[60, 63) D-
[0, 60) F


Click here to calculate your current course grade.


Starting from the second week, I will use iClicker to record your attendance in class. You will be able to mark yourself present, using your laptop or smart device, during the first 15 minutes of a class. In addition, I will take paper-based attendance on some undisclosed days. If I find any discrepancy in your attendance record on those days (ie, you were marked present on iClicker but absent on paper), you will receive a 0 for your overall attendance score.

The TAs will manually record your attendance during discussions.


I will use Piazza as the online discussion forum for the course. If you have any general questions about the projects, lectures, textbook, or other course material, the most effective way to get them resolved is by posting them on Piazza. You can expect your questions to be answered by the course staff or one of your classmates. Remember that you can post anonymously, but you are anonymous only to your classmates and not to the course staff.


I will use Gradescope to grade your quizzes, projects, and exams.

Programming Environment

To write and execute Java programs in this course, you will need a laptop (Linux, Mac, or Windows) properly configured with the necessary software. Click here for setup instructions.

CS Account

In order to use the computing resources of the department, and in particular, those in the UNIX/PC Lab (M-3-0731), you need to setup a CS account. With your CS account credentials, you can connect to our designated server ( remotely using SSH. With the same credentials, you can also sign into the Linux systems in the CS Lab. In addition, you can sign into the Windows systems in the lab with the same username and an initial password abcd_1234, which you must change the first time you sign in.

Visit CS Labs Portal to register for a portal/CS account and confirm via email. If you already have a CS account, use the same username. The next step is to sign into the portal and select your courses for the term. You will be notified via your UMB email once the course directories and your account are created.




You have to remember to use iClicker during the first 15 minutes of a class to record your presence. Set a reminder on your smartphone if you are of the kind that forgets these things easily. I will not fix your attendance record if you forget to mark yourself present.


Excused Absence and Makeup Exam

You must provide appropriate documentation if:

The documentation must be a letter from the Dean of Students if the type of your absence is among those listed on their website. For other types of absences, the supporting documentation must be shared with me directly.


Click here for the collaboration policy and the penalties for infractions of the policy.

Late Days

Regrade Request

Accommodations for Students with Disabilities

Section 504 of the Americans with Disabilities Act of 1990 offers guidelines for curriculum modifications and adaptations for students with documented disabilities. If applicable, students may obtain adaptation recommendations from the Ross Center for Disability Services. The student must present these recommendations and discuss them with the instructor within a reasonable period, preferably by the end of Add/Drop period.