CS161 is designed to introduce students to object-oriented programming. As with CS160, the course interleaves theory, programming, and architecture concepts as needed to motivate and explain problem solving using object-oriented programming. The core of the course is explaining objects: how they represent data and how they are defined and used in Java. Fundamental concepts such as inheritance and polymorphism are introduced and explained in the context of programming assignments. Another major programming topic is recursion and its relationship to mathematical induction.

A student completing this course should be able to: implement object-oriented programs and understand the underlying principles such as encapsulation, abstraction and reuse; design and build more complex programs (multiple files and multiple objects) by dividing problems into parts that are easily solvable; and relate concepts from theory to programming and architecture, such as how recursion is programmed and implemented.

This course is essential for majors and other students who intend to use object-oriented programming to solve problems and who intend to write complex software. The course would be useful to any student intending to pursue Computer Science or Information Technology as a career.


Lectures Section 001
Instructor: Sudipto Ghosh (ghosh at cs dot colostate dot edu)
Email: preferred for all course related questions
Office: CSB 468
Office Hours: M, Th 1:00-2:00 pm
Lecture: 3:00-4:15 pm, MTWR, CSB 130
Recitations, Office Hours
UTA: Cole Frederick
Recitations: MTWR 4:30-6:10 pm, CSB 215
Office Hours in CS120 Lab: MWF 11-12
Helper, Office Hours
UTA: Andrea Adams
Office Hours in CS120 Lab: M, Th, F 10-11


CS160 or CS153 with a C or better; M124, M126 (both with a C or better).


Java Programming (Required):

Java: An Introduction to Problem Solving and Programming
Savitch (7th edition)

Discrete Math (Required):

Discrete Mathematics and Its Applications (7th Edition)
The Rosen text will be used in CS200 as well.

iClickers (Required):

You are required to purchase an iClicker remote for in-class participation. iClicker is a response system that allows you to respond to questions we pose during class, and you will be graded on that feedback and participation. In order to receive this credit, you will need to register your iClicker remote by noon, June 16, 2015. You will need to log in to Canvas, select CS161 as your course, and then use the iClicker menu to register your iClicker. This process is different than what was done in previous semesters.


What Days Time Who Where
L02 Mon 4:30pm - 6:10pm Cole Frederick COMSC 215
L01 Tue 4:30pm - 6:10pm Cole Frederick COMSC 215
L02 Wed 4:30pm - 6:10pm Cole Frederick COMSC 215
L01 Thu 4:30pm - 6:10pm Cole Frederick COMSC 215


Activity Weight Description
Assignments 30% Programming and written homework
Recitations 10% Attendance and completion
Quizzes 10% In class quizzes (paper and iClicker)
Midterm 1 15% First midterm (in second recitation during 3rd week)
Midterm 2 15% Second midterm (in class)
Final Exam 20% Comprehensive final exam (in class)

In order to get a C in the course the weighted average of your exam scores needs to be passing grade (60 and above).

As discussed in the policies page, there are no makeups for missed quizzes or recitations. To take into account circumstances in which you have to miss class, we will drop the two lowest recitation grades and adjust the quiz grades.

The Teaching Assistant will grade written assignments, recitations, and paper quizzes. If you believe you have been graded unfairly, talk to the TA first. The Instructor will use auto-grading for the programming assignments and iClicker quizzes. Use the course email address or talk to the instructor directly for concerns on grading programming assignments.

  • Assignments will be done individually. As required by the department, we will check for collaboration using a software tool, so do your own work!
  • Recitation participation is required. Part of the class grade comes from successfully finishing the assigned lab work.
The assignment of letter grades will be made as follows:

Letter Grade Points
A ≥90%
B ≥80%
C ≥70%
D ≥60%
F <60%

We will not assign lower grades than shown.

Important Dates

Date Description
Last day to drop June 22
Last day to withdraw July 13
First midtermWeek 3, second recitation (CSB 215)
Second midterm Week 6, Thursday, July 23, in class (CSB 130)
Final Exam Week 8, Thursday, Aug 6, in class (CSB 130)


You must read and be aware of the course policies.