Description

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.

Personnel

Section 001
Instructor: Charles Anderson
Email: anderson@cs.colostate.edu
Office: CSB 444
Office Hours: Mondays 1 - 2 PM, Thursdays 1 - 2 PM
Lecture: 3:00-3:50, MWF, Clark A201
GTA
Saksham Manchanda
Email: saksham.manchanda@gmail.com
Lab Hours in Room 120: Thursday, Noon - 2:00 PM and Friday, 4:00 - 6:00 PM
GTA
Pratyusha Reddy
Email: pratyusha.reddy181@gmail.com
Lab Hours in Room 120: Monday, 8:00 - 9:00 AM and Monday, 9:00 - 10:00 AM
GTA
Hao Zhang
Email: zhangh@cs.colostate.edu
Lab Hours in Room 120: Monday, 1:00 - 2:00 PM and Thursday, 8:00 - 9:00 AM
Undergraduate TAs:
Koen Pull and Jeremy Kniager

Prerequisites

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

Textbook

Java Programming (Required):

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

Discrete Math (Required):

Discrete Mathematics and Its Applications
Kenneth Rosen (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 online by the end of the first week of classes. First log in with your EID and password. In the iClicker ID field, enter your remote ID and select the Register button. The remote ID is the number found on the back of your iClicker remote. If you cannot read the ID on your iClicker, there is a kiosk in the bookstore where you can retrieve it.

Recitations

What Days Time Who Where
L06 Monday 11:00 AM - 12:40 PM Hao (with Jeremy) COMSC 215
L04 Monday 1:00 - 2:40 PM Pratyusha (with Chuck) COMSC 215
L03 Monday 4:00 - 5:40 PM Saksham (with Koen) COMSC 215
L07 Tuesday 9:00 - 10:40 AM Saksham COMSC 225
L05 Wednesday 1:00 - 2:40 PM Pratyusha (with Chuck) COMSC 215
L02 Wednesday 5:00 - 6:40 PM Saksham (with Jeremy) COMSC 215
L01 Friday 8:00 - 9:40 AM Hao (with Koen) COMSC 215

Grading

The course requires demonstration of a student’s grasp of the concepts, as follows:

Activity Weight
Assignments 30%
Recitations 10%
Quizzes 10%
Midterm Exam 1 15%
Midterm Exam 2 15%
Final Exam 20%

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, exams, assignments or recitations. To take into account circumstances in which you have to miss class, we will drop the two lowest recitation grades and quiz grades will be computed such that you will be able to obtain a full score even if you missed 10% of the class sessions.

Teaching assistants grade assignments, recitations, and paper quizzes. If you believe you have been graded unfairly, talk with them first.

  • 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 the effort you demonstrate towards 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 and +/- grades will be used.

Policies

You must read and be aware of the course policies.