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 1
Instructor: Mohammad Nayeem Teli
Email: nayeem@cs.colostate.edu
Office: CSB 244
Office Hours: Tue 2-3pm, Wed 4-5pm, Thu 3-4pm
Lecture: 2:00-2:50, MWF, Wagar 133
Section 2
Instructor: Asa Ben-Hur
Office: CSB 448
Office Hours: Wednesday 1-2pm, Thursday 10:30-11:30
Lecture: 12:30-1:45 TR, Wagar 232
TA
Thad Johnston
Email: thaddeus@rams.colostate.edu
Lab Hours: Tuesday 3:30-4:30 in CS 252, Friday 1-3 in Linux Lab, or by appointment
GTA
Rahul Dutta
Email: inrahi@gmail.com
Lab Hours: Monday 4:00-5:00, Wednesday 12-1:00, Friday 3-5 in Linux Lab
GTA
Nikhil Agnihotri
Email: nikhilagnihotri27@gmail.com
Lab Hours: Tuesday 9-10, Thursday 11-1

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 (6th edition)
or
Java: An Introduction to Problem Solving and Programming
Savitch and Carrano (5th edition)

Discrete Math (Required):

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

Lectures and Recitations

What Days Time Who Where
Recitation (L01) Mon 11:00am - 12:40am Thad COMSC 215
Recitation (L02) Wed 11:00am - 12:40am Thad COMSC 215
Recitation (L03) Wed 4:00pm - 5:40pm Rahul COMSC 215
Recitation (L04) Thu 2:00pm - 3:40pm Rahul COMSC 215
Recitation (L05) Thu 4:00pm - 5:40pm Thad COMSC 215
Recitation (L06) Fri 10:00am - 11:40am Thad COMSC 215
Recitation (L07) Fri 12:00pm - 1:40am Rahul COMSC 215

Lab Hours

Days Time Who Where
Mon. 10:00am - 12:00pm TBD COMSC 120

Grading

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

Activity Weight Description
Assignments 30% Programming and Theory Homework
Recitations 10% Lab Attendance and Completion
Quizzes and participation 10% Quizzes and participation in class/online
Midterm 1 15% First Midterm
Midterm 2 15% Second Midterm
Final Exam 20% Comprehensive Exam

The 10% for quizzes and participation are divided 5% for quizzes and 5% for participation. To obtain full participation points you need to ask/answer one question a week in class or online via Piazza. There are no make ups for quizzes, and we will drop the lowest quiz grade.
Teaching assistants grade assignments, recitations, and 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 strongly encouraged. 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.

Late and Makeup Policy

Midterm and Finals: Make-up exams are only given for extraordinary circumstances (e.g., illness, death of family member). Students must consult with the instructor as soon as possible. Examination dates are listed in the syllabus; be aware of them and plan accordingly.

Quizzes: No make-ups will be given for missed quizzes. We drop your lowest score to accommodate excuses.

Recitations: No make-ups will be given for missed recitations. We drop your lowest score to accommodate excuses.

Programming assignments: Programs are submitted electronically. Details of how this is done appears with the first assignment. Always check the schedule page for due dates. The due date will include a day and time. Each assignment starting from assignment 2 will have a regrade period in which you can obtain up to 80% of the total grade for the assignment. This serves instead of a late period.

Written assignments: Written assignments are submitted in class on the due date. There is no late period for written assignments. Handwritten submissions are acceptable, but the handwriting must be legible. The instructors and TAs reserve the right to decide whether or not a paper is legible.

Important Dates

Date Description
Last day to withdrawMarch 25
First midtermWeek 6 in recitation
Second midterm April 4th (Section 2) April 5th (Section 1)
Final Exam (Section 1) May 15 9:40-11:40am
Final Exam (Section 2) May 13 9:40-11:40am

Midterms and the final exam will be held in the same classroom as regular lectures. The final exam is comprehensive.

In Class Participation

All students taking this course are expected to participate actively. This includes asking and responding to questions. Students are also expected to check the announcements on the home page of the course web site, and the schedule page every day for any updates.