CS163: Java (CS1) No Prior Programming

Computer programming in Java for students without previous programming experience. Topics include variables, assignment, expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.

CS164: Java (CS1) Prior Programming

Computer programming in Java for students with previous programming experience, not necessarily in Java. Topics include variables, assignment, expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.


CS163 (Section 001)

Lecture: 2:00-2:50pm, MWF, Yates 104

CS163 (Section 002)

Lecture: 12:00-12:50pm, MWF, Chemistry A 101


Instructor: Benjamin Say

Office Location: COMSC 256

Office Hours:

MWF 1:00pm-1:50pm In the lobby outside Yates 104

You can also catch me after ACM most weeks

Other times by appointment

Graduate Teaching Assistants

Phillip Sharp
Office Hours:TBA

Undergraduate Teaching Assistants

Office Hours: By Appointment

Riley Clark
Bassem Faour
Ben Gillett
Claire Goldstein
Katherine Griffin
David Hallstrom
David Im
Aislinn Jeske
Alice Lundberg
Abigail Rictor


MATH 124 (Logarithmic and Exponential Functions) with a C or better


Java Programming (Required):

Introduction to Java Programming (Comprehensive Edition), Daniel Liang (10th edition)

This course uses a digital ereader to access the Liang book. The license to the ereader is available to you automagically.

Zyante (Required):

We are using an online tutorial from Zyante to supplement the Liang textbook. You must purchase the tutorial directly from Zyante (not the bookstore), and the cost is $48. Instructions for registering with Zyante are as follows:
  1. Sign up at
  2. Enter zyBook code: COLOSTATECS163Spring2018
  3. When it asks for your Student ID, use your eid not your CSUID (hint: if you are entering 9 numbers that is your CSUID)
  4. Click Subscribe
Once you have registered you can sign in to the book by browsing to Please register in time to complete the first assignment.
IMPORTANT: As noted in the sign-up steps above, you must put your eid in the "Student ID" field. putting an incorrect eid or putting your CSUID instead will result in no credit for the assignment. TAs will check that this is done correctly in Lab 2, after which it is the student's responsibility to ensure that their eid is entered correctly.

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 on Canvas by classtime, January 19, 2018. See the instructions for registering your iClicker on the resources tab.

Piazza (Optional):

This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, teaching assistants, and the instructor. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email Piazza will be accessed via the Module tab on Canvas.

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
We expect to post clarifications about assignments as well as answering questions relating to assignments. Also, we plan on handling regrade requests, look for an announcement on rules for posting these to Piazza. 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!

CS163 Schedule

What Days Time Instructor Helper Where
Lecture (Sect. 001) M W F 2:00pm - 2:50pm Benjamin Say Yates 104
Lecture (Sect. 002/302) M W F 12:00pm - 12:50pm Benjamin Say Chemistry A 101
Lab (L01)  T R  8:00am - 8:50am Bassem Faour Abigail Rictor COMSC 215
Lab (L02)  T R  9:00am - 9:50am Claire Goldstein Aislinn Jeske COMSC 215
Lab (L03)  T R  10:00am - 10:50am Phillip Sharp Ben Gillett COMSC 215
Lab (L04)  T R  11:00am - 11:50am Riley Clark Ben Gillett COMSC 215
Lab (L05/LN5)  T R  12:00pm - 12:50pm David Im David Hallstrom COMSC 215
Lab (L06)  T R  1:00pm - 1:50pm David Im Katherine Griffin COMSC 215
Lab (L07)  T R  2:00pm - 2:50pm Katherine Griffin Alice Lundberg COMSC 215
Lab (L08)   W F 9:00am - 9:50am Riley Clark Aislinn Jeske COMSC 215
Lab (L09)   W F 11:00am - 11:50am Claire Goldstein David Hallstrom COMSC 215
Lab (L12)  T R  3:00pm - 3:50pm Abigail Rictor Riley Clark COMSC 215

Help Desk

The help desk is a breakout room on the north side of the COMSC 120 lab. 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.

Help Desk Hours
Days Time Where
Sun. 4:00pm- 8:00pm COMSC 120
Mon. 10:00am- 6:00pm COMSC 120
Tue. 10:00am- 6:00pm COMSC 120
Wed. 10:00am- 6:00pm COMSC 120
Thu. 10:00am- 6:00pm COMSC 120
Fri. 10:00am- 4:00pm COMSC 120


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

Activity Weight Description
Assignments 10% Java Assignments
Clicker Time 5% IClicker Responses in Class
zyBooks 5% zyBooks assignments
Labs 10% Lab Attendance and Completion
Programming Quizzes 10% In-Lab Programming Quizzes
Midterm 1 15% First Midterm
Midterm 2 15% Second Midterm
Midterm 3 15% Third Midterm
Final Exam 15% 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 post to the grade complaints topic on Piazza. Grade complaints will be considered only for two weeks immediately following when the assignment grade appears on Canvas!
  • 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.
  • Peer Instruction sessions are held during lectures and require you to bring an iClicker. These sessions can occur at anytime during a lecture, be sure to have your iClicker with you.
    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. However, your average score on exams must be ≥60% to receive a passing grade (C) in this course.

Early Performance Feedback

This course participates in Early Performance Feedback. This gives students an opportunity to identify if they might need to make changes in how they are approaching the course before the drop date. Students with a course average less than 70% after the first exam will receive information from the campus Collaborative for Student Achievement office about resources to help them get a passing grade in the course. The instructor and TAs are also available to talk with any student concerned if they will get a passing grade in the course. Just ask!

Important Dates

Date Description Location
First day of lab Jan 16 Normal Classroom
First day of class Jan 17 Normal Classroom
Deadline to add without override Jan 21 N/A
Last day to drop Jan 31 N/A
First midterm Feb 9, 7a-4p CSB 110
Second midterm March 9, 8a-4p CSB 110
Last day to withdraw March 19 N/A
Third midterm April 13, 8a-4p CSB 110
Early Final (Optional, take instead of during finals week!) May 4, 8am-4pm TBA
Final Exam (Section 001) Tuesday, 7:30am - 9:30am CSB 110 and 120
Final Exam (Section 002/302) Wednesday, 7:30am - 9:30am CSB 110 and 120

Midterms will be held in the CS110 lab. Timeslot sign (50 minute) up will be done through Canvas. Information on how to sign up for a time will be made available in class closer to exam time. There will be no class on the exam days.
The final exam will be in the Computer Science Building in the 110 and 120 labs. 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.