San Jose State University
Computer Science
CS 49J -  Programming in Java Fall 2017

Course and Contact Information

Instructor: Kathleen O'Brien
Office Location: MacQuarrie Hall 217
Telephone: Please use email
Email: Or contact me through Piazza
Office Hours: TuTh 2:45 - 3:15 or on Piazza anytime
Class Days/Time: TuTh 12:00PM - 1:15PM
Classroom: DH450
Prerequisites: Previous programming experience in a language other than Java.
Final: Wednesday, Dec 13 0945-1200 (regular classroom)
Tentative Exam date: Oct 17


Introduction to the Java programming language and libraries. Topics include fundamental data types and control structures, object-oriented programming, string processing, input/output, and error handling. Use of Java libraries for mathematics, graphics, collections, and for user interfaces.

For the official catalog description, please visit the online catalog at


Title Big Java Early Objects 6/e.
Author Cay Horstmann
Publisher Wiley
ISBN 978-1-119-18718-9


Student Learning Outcomes

Upon successful completion of this course, students should be able to:

Course Mechanics

You will be required to bring a wireless-enabled laptop running Windows, Mac OSX, or a version of Linux to all classes and exams. It must be capable of installing and running the course software
Homework and exam submission
You will use Codecheck (URL provided in assignments) to help test assignments
You will submit your homework and exams in Canvas
Solutions will be posted in the Canvas.

Course Requirements

Exams (60%)
One in-class mid-term (30% ) and a final exam (30%). Exams cannot be made up, except for reasons of illness, as certified by a doctor, or documentable extreme emergency. Makeup exams may be oral.
Programming Assignments (30%)
Two assignments per week (25%). Schedule your time well to protect yourself against unexpected problems. I suggest starting early so you have time to ask questions if you need helps. Late work is not accepted, and there is no extra credit or makeup work. All homework is due at 1:00 AM the morning of each class meeting, but I will give you a grace period and accept assignments until 6:00 AM. Do not ask for an additional extension because your Internet went down at 5:58. The assignment was due hours earlier. Assignments submitted after 1am are marked late, but if you are able to submit, you will receive full credit. Also I will drop the lowest grade.
Participation (5%)
Participation is 5% of your grade. You can earn participation points during class via online polls in Piazza. You also earn a point for every Piazza post you make outside of class. You will need to post regularly either asking or answering questions in order to acquire enough points for full credit. Your participation points are calculated out of a maximum of 150.
Quizzes (5%)
Two quizzes per week due before the start of class covering the required required for that class Each quiz is due at 1:00 AM the morning of each class meeting, but I give you a grace period and accep tthe quiz until 6:00 AM.
Time Spent
University policy expects that students will spend a minimum of forty-five hours for each unit of credit during the semester for instruction, preparation/studying, doing assignments, or course related activities.

This is a 3 unit/15-week class, so you should expect to spend at least 135 hours per semester or 9 hours per week on this class. Many students need to spend much more time.

Additional Information

Coding Guidelines

For full credit on your assignments, you need to follow established Java coding conventions that we will cover in class.

Also your code must be formatted. You can click Source -> Correct Indentation in Eclipse.


Clicker Questions

Grading Policy

Your grade for the course is based on the mid-term , the finals, the homework, and participation. Grades are calculated by weighting the scores as defined above. I do not curve grades.

At least Letter Grade
93 A
90 A-
87 B+
83 B
80 B-
77 C+
73 C
70 C-
67 D+
63 D
60 D-
below 60 F

Note that “All students have the right, within a reasonable time, to know their academic scores, to review their grade-dependent work, and to be provided with explanations for the determination of their course grades.”  See University Policy F13-1 at for more details."


Classroom Protocol

Individual Work

All homework and exams must be your own individual work. It is OK to have general discussions about homework assignments, or read other material for inspiration. You may never copy anything from anyone without attribution. This means if you find code on Stackoverflow or another web site, you need to give the URL where you found the code in a comment at the top of your class so that I can look at it if necessary. You may copy from the textbook, the labs, or anything we do in class without attribution. For homeworks and exams, you may not copy anything from any other student at all, and you may not collaborative produce results in pairs or teams. Your work must be entirely your own.

It is never okay to give your completed code to another student before the due date.

A first incident of cheating will result in a 0 on that assignment or exam. A second incident will result in a failure for the class.

BSCS Program Outcomes supported by this course:

(a) An ability to apply knowledge of computing and mathematics to solve problems

(b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution

(c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs

(i) An ability to use current techniques, skills, and tools necessary for computing practice

(j) An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the trade-offs involved in design choices

(k) An ability to apply design and development principles in the construction of software systems of varying complexity

Miscellaneous Policies

Add Policy: I will not give out any add codes this semester.

Publicly Viewable Work: Your class work (including homework, exam, and project work) may be viewable by other students of this course. Your grades will not be viewable by others.

Copyright of Materials: All materials created by the instructor for this course, including lectures, handouts, homeworks, exams, solutions, projects, and so on, are copyrighted property of the instructor. You may transcribe lectures or copy course materials for the use of yourself and other students registered in this course. You may not sell or give transcriptions of lectures or copies of course materials to others without the prior written consent of the instructor.

University Policies

"University Policies: Office of Graduate and Undergraduate Programs maintains university-wide policy information relevant to all courses, such as academic integrity, accommodations, etc." You may find all syllabus related University Policies and resources information listed on GUP's Syllabus Information web page at

Last day to drop: Feb 7
Last day to add: Feb 14

Tenative Schedule

Week Lesson Class
Quiz Reading Homework due
1 1 August 24, 2017 Intro housekeeping
first program
2 2 August 29, 2017 1 Ch 1: 1.3-1.5 & Ch 2: 2.1-2.6 hw0 Objects
3 August 31, 2017 2 Ch 2: 2.7 - 2.10 hw01 objects, graphics 
3 4 September 5, 2017 3 Ch 3: 3.1-3.7 hw02 Classes
5 September 7, 2017 4 Ch 3: 3.8 hw03 classes & graphics
4 6 September 12, 2017 5 Ch 4:  4.1-4.3 hw04 Data types, I/O
7 September 14, 2017 6 Ch 4:  4.5   Data type, Strings
5 8 September 19, 2017 7 Ch 5: 5.1-5.4, 5.7 hw05 if
9 September 21, 2017 8 Ch 6: 6.1, 6.3-6.5, 6.7 hw06 loops - random 
6 9B September 26, 2017 9 Ch 6: 6.8-6.10  
10 September 28, 2017 10 Ch 7: 7.1-7.3 hw07 arrays
7 11 October 3, 2017 11 Ch7: 7.6   2D arrays
12 October 5, 2017 12 Ch 7: 7.7 hw08 array lists
8 13 October 10, 2017 13 Ch 8: 8.1-8.3 & Ch 12: 12.1-12.3 hw09 Static methods
14 October 12, 2017 14 Ch 8: 8.4-8.6   object oriented design
9   October 17, 2017   Miderm    
15 October 19, 2017 15 Ch 9: 9.1-9.3 hw10 inheritence
10 16 October 24, 2017 16 Ch 9: 9.4 hw11
17 October 26, 2017 17 Ch 9: 9.5  
11 18 October 31, 2017 18 Ch 10: 10.1-10.3 hw12 Interface
19 November 2, 2017 19 Ch 10: 10.4-10.6   Comparator
12 20 November 7, 2017 20 Ch 11: 11.1 - 11.2 hw13 I/O
21 November 9, 2017 21 Ch 11: 11.3 - 11.4  
13 22 November 14, 2017 22 Ch 14: Ch 15: 15.1 hw14 Collections Framework
23 November 16, 2017 23 Ch 15: 15.2   LinkedList
14 24 November 21, 2017 24 Ch 15: 15.3 hw 15 Set
    November 23, 2017   Thanksgiving    
25 November 28, 2017 25 Ch 15: 15.4 hw16 Maps
15 26 November 30, 2017 26 Ch 15: 15.5 - 15.6 hw17 stacks andqueues
27 December 5, 2017 27   hw18 finish up and review
16 December 7, 2017 28
Final: Wednesday, Dec 13 0945-1200