CS165: Java (CS2) Data Structures and Algorithms

Object oriented concepts, assertions, inheritance, polymorphism, algorithms and data structures using Java.


CS165 (Section 001)

Lecture: 11:00-11:50am, MWF, Wagar 232
Instructor: Russ Wakefield
Office Location: COMSC 240
Office Hours: MWF 9-10 (No office hours first week or finals week)

CS165 (Section 002)

Lecture: 3:00-3:50pm, MWF, Glover 130
Instructor Russ Wakefield
Office Location: COMSC 240
Office Hours: MWF 9-10

Graduate Teaching Assistant

GTA: Miller Ridgeway
Office Location: COMSC 120A
Office Hours: TBD

Lead Undergraduate Teaching Assistant

Lead UTA: Ethan Hendricks
Office Hours: TBD


CS 163 or CS 164: CS1 Java Programming

MATH 160: Calculus 1 (corequisite)


Java Programming (Required):
Introduction to Java Programming (Comprehensive Edition), Daniel Liang
(10th or 11th edition)

The course textbook is available through the CSU Bookstore’s Inclusive Access Program in partnership with Unizin Engage. You have immediate access to the online e-text by clicking on the “Unizin Engage” link within the course menu in Canvas. Please note, there is a cost for the e-text. The bookstore will charge your student account for the cost of the e-text after the Add/Drop date. You must “opt-out” of the Unizin Engage e-text before the Add/Drop date to avoid bookstore charges. However, this text is required for the course and the cost savings of the e-text can be substantial. Please look for emails from the bookstore about ‘opting out’ as well as charges to your student account. Once you choose to “opt-out,” you will no longer be allowed to access the e-text in Canvas.


We are using an online tutorial from Zyante to supplement the Liang textbook. You must purchase the tutorial directly from Zyante (not the bookstore). Instructions for registering with Zyante are as follows:
  1. Sign up at
  2. Enter zyBook code: COLOSTATECS165WakefieldFall2019
  3. Click Subscribe
  4. Use the subscription code the bookstore sent you through inclusive access.
  5. IMPORTANT: Only make ONE zyBooks account. You may find that you need to add an e-mail to your account, you can do so in the zyBooks account preferences.
Once you have registered you can sign in to the book by browsing to Please register in time to complete the first assignment.

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 myself. 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
  • Unizin Online Textbook
Students are responsible for announcements that come through Piazza

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!

CS165 Schedule

What Days Time Instructor Helper Where
Lab (L01) TR 8:00am - 9:15am COMSC 225
Lab (L02) TR 9:30am - 10:45am COMSC 225
Lab (L03) TR 11:00am -12:15pm COMSC 225
Lab (L04) TR 12:30pm - 1:45am COMSC 225
Lab (L05) TR 2:00pm - 3:15pm COMSC 225
Lab (L06) TR 3:30pm - 4:45pm COMSC 225
Lab (L07) TR 5:00pm - 6:45pm COMSC 225
Lab (L08) WF 9:30am - 10:45am COMSC 225
Lab (L09) WF 8:00am - 9:15am COMSC 225

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.

Days Time Where
Mon. 11:00am-4:00pm COMSC 120
Tue. 10:00am-6:00pm COMSC 120
Wed. 11:00am-6:00pm COMSC 120
Fri. 11: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
Java Programming 15% Java Programs / Quizzes
Quizzes / Worksheets 10% In-class / Canvas Quizzes
Labs / Zybooks 15% Lab Attendance and Completion
Midterm 1 20% First Midterm
Midterm 2 20% 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 post to the grade complaints topic on Piazza. Grade complaints will be considered only for one week 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.
  • Unizin is the online textbook to help you get hands-on practice for the Java Programming topics being discussed in class and Lab.
The assignment of letter grades will be made as follows:

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

In general, we will not assign lower grades than shown; however, your weighted average score on exams must be ≥65% to receive a passing grade (C) in this course.

Important Dates

Date Description
First day of classes Aug. 26
Review Exam Week 2 (Friday, September 6)
First midterm Week 7 (Friday, October 11)
Second midterm Week 14 (Friday, December 6)
Final Exam As Scheduled by the Registrar

Midterms and the Final exam in the CS110 lab. 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.