The purpose of the CS160 course is to introduce students to fundamental concepts in computer science. Concepts from theory, programming and architecture will be interleaved to show how software and hardware complement each other. Theory will provide the basis for understanding the software and hardware design. The course will adopt a problem solving focus with an integrated view of the computer. For programming, the course covers the basic Java syntax and language features, compilation, interpretation, execution, primitive data types, class and object usage, parameter passing, flow of control constructs and arrays. For theory, the course will cover sets, functions, logic, simple proof and invariants. Architecture concepts will include simple computer models, data representations and memory models.


Section 001
Instructor: Sudipto Ghosh
Lecture: 9:00-9:50am, MWF, CLARK A203
Office Location: COMSC 468
Office Hours:
   Mon. 1:00pm-2:00pm (COMSC 120 lab)
   Fri. 10:00am-11:00am (office)

Section 002
Instructor: Chris Wilcox
Lecture: 12:00-12:50pm, MWF, CLARK A201
Office Location: COMSC 256
Office Hours:
   Mon. 2:00pm-3:00pm (COMSC 120 lab)
   Wed. 2:00pm-3:00pm (office)
   Fri. 1:00pm-2:00pm (office)


Ghazal Fahimi
Laura Adams
Darshan Washimkar
David Thorpe
Gabriella Fontani


MATH 118 (College Algebra in Context II) 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 CS161 and 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 noon, January 28, 2015. See the instructions for registering your iClicker on the resources tab.

Zyante (Required):

We are using an online tutorial from Zyante to supplement the Savitch textbook. You must purchase the tutorial directly from Zyante (not the bookstore), and the cost is $35. Instructions for registering with Zyante are here. Once you have registered you can sign in to the book by browsing to Please register in time to complete the first assignment, which is due January 30, 2015.

Piazza (Optional):

We are experimenting this semester with the use of online bulletin board software called Piazza. We will invite you via email, and Piazza will send you a link to the page for our course. You can also use the following link. Piazza does not cost anything to students or the department. It allows students to post questions and get answers about the following topics:
  • Java Programming
  • Linux Operating System
  • Eclipse Development Tools
  • Programming Assignments
  • Zyante Chapters
We expect to post clarifications about assignments as well as answering questions relating to assignments. Also, please use the existing topics we have created, do not create new ones. There are a number of things that we prohibit on Piazza, as follows:
  • Please do not post any of your assignment code on Piazza.
  • No profanity, sexism, racism, or anything in bad taste, of course!
  • Please no grade inquiries, use the help desk or cs160 email alias instead.

Lectures and Labs

What Days Time Instructor Helper Where
Lecture (Section 1) MWF 9:00pm - 9:50am Sudipto Ghosh CLARK A203
Lecture (Section 2) MWF 12:00pm -12:50pm Chris Wilcox CLARK A201
Lecture (Section 301) MWF 9:00pm - 9:50am Sudipto Ghosh CLARK A203
Lab (L01) MW 1:00pm - 1:50pm Chris Wilcox Darshan Washimkar COMSC 215
Lab (L02) MW 3:00pm - 3:50pm Gabriella Fontani Laura Adams COMSC 215
Lab (L03) TR 9:00am - 9:50am Derek Isabelle Andrew Cook COMSC 215
Lab (L04) TR 11:00am -11:50am Laura Adams Miles Blaisus COMSC 215
Lab (L05) TR 1:00pm - 1:50pm Darshan Washimkar Tanner Evans COMSC 215
Lab (L06) TR 4:00pm - 4:50pm David Thorpe Conrad Christensen COMSC 215
Lab (L07) MW 2:00pm - 2:50pm David Thorpe Gabriella Fontani COMSC 215
Lab (L08) TR 10:00am -10:50am Laura Adams Nick Hain COMSC 215
Lab (L09) TR 12:00pm -12:50pm David Thorpe Miles Blaisus COMSC 215
Lab (L10) TR 8:00am - 8:50am Laura Adams Derek Isabelle COMSC 215
Lab (L11) WF 8:00am - 8:50am Gabriella Fontani Justin Glover COMSC 215
Lab (LN1) TR 9:00am - 9:50am Derek Isabelle Andrew Cook COMSC 215

Help Desk

The help desk is held in the COMSC 120 lab. This is where students can go to get help with assignments and resolve grading issues.

Days Time Who Where
Mon. 10:00am-noon Ghazal Fahimi COMSC 120
Mon. 4:00pm-5:00pm Laura Adams COMSC 120
Tue. 1:00pm-3:00pm Ghazal Fahimi COMSC 120
Wed. 4:00pm-5:00pm Laura Adams COMSC 120
Thu. noon-2:00pm Ghazal Fahimi COMSC 120
Fri. 11:00am-1:00pm Ghazal Fahimi COMSC 120

Lab Hours

The lab hours shown below are held in either the COMSC 120 or COMSC 215 labs, please check the location carefully. Throughout the day there are lab operators in COMSC 120 that can provide limited help, but during the hours posted below a teaching assistant from this class is available to help students. The COMSC 120 lab is open 24/7.

Days Time Who Where
Mon. 5:00PM-7:00pm Darshan Washimkar COMSC 120
Sun. 5:00PM-7:00pm Conrad Christensen COMSC 215

Complete Schedule

Some students have requested our schedule for the entire semester. An overview of the semester is provided here, however, we reserve the right to make changes at anytime!


The course requires demonstration of a student’s grasp of the concepts on evaluations. Here is the grading scheme:

Activity Weight Description
Assignments 15% Java Assignments, Math Homeworks
Reading Quizzes 10% RamCT (Math), Zyante (Java)
Labs 10% Lab Attendance and Completion
Peer Instruction 5% In-Class iClicker
Programming Quizzes 10% In-Lab Programming
Midterm 1 15% First Midterm
Midterm 2 15% Second Midterm
Final Exam 20% Comprehensive Exam

Teaching assistants grade assignments, labs, and quizzes. If you believe you have been graded unfairly, talk with the help desk (assignments) or your teaching assistant (labs) first. If you cannot visit help desk, please send email to instead of directly to the instructors. Grade complaints will be considered only for two weeks immediately following when the assignment grade appears on RamCT!
  • Assignments will be done individually. As required by the department, we will check for collaboration using a software tool, so do your own work!
  • Lab participation is strongly encouraged. A portion of the class grade comes from successfully finishing the assigned lab work, and our previous students have indicated that labs are the best part of this class.
  • Programming Quizzes will be taken during lab hours with no additional aids. They are used to test your understanding of Java topics.
  • Zyante is an online tool to help you get hands-on practice for the Java Programming topics being discussed in class and Lab.
  • RamCT has online discrete math reading quizzes. In addition there will be two math homeworks on paper that will be graded during your lab.
  • Peer Instruction sessions are held during lectures and require you to bring an iClicker. These are usually but not always held on Fridays, and we will announce in class and online whenever iClickers are needed Monday or Wednesday. Scores are weighted (approximately) as follows: 70% for participation, 30% for correctness. There will not be any paper quizzes during lectures.
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
First day of classesTue., Jan. 20
Last day of classesFri., May. 8
Last day for restricted dropFri., Jan. 23
Deadline to add without overrideSun., Jan. 25
Last day to withdrawMon., Mar. 23
First in class midtermFri., Feb. 20, during class
Second in class midterm Fri., Apr. 3, during class
Final Exam (Section 001) Thu., May. 14, 11:50am to 1:50pm
Final Exam (Section 002) Wed., May. 13, 7:30am to 9:30am

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 scan the announcements on the home page and the progress page every day for updates. If an assignment changes significantly, we are responsible for sending out an email.