San Jose State University
Computer Science
CS 46A - Introduction to Programming Section2 Spring 2017

Course and Contact Information

Instructor: Kathleen O'Brien
Office Location: MacQuarrie Hall 217
Telephone: Please use email
Email: Or contact me through Piazza Or with Canvas messaging
Office Hours: TR 2:45 - 3:15 or on Piazza anytime
Class Days/Time: TR 4:30 - 5:45
Classroom: DH450
Prerequisites: Eligibility for college level mathematics; Computer Science, Software Engineering, or Undeclared major; or instructor's consent.

Final: Wednesday, May 24, 2017 1445-1700 (regular classroom)
Tentative Exam dates: Mar 9 and April 25, 2017


Basic skills and concepts of computer programming in an object-oriented approach using Java. Classes, methods and argument passing, control structures, iteration. Basic graphical user interface programming. Problem solving, class discovery and stepwise refinement. Programming and documentation style. Weekly hands-on activity.

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


  1. Big Java 6e ENGAGE Custom Interactive Text By Cay S. Horstmann, ISBN: 9781119290148. You will take twice weekly quizzes in the Engage platform based on the e-book

    Available from

  2. Videos from Intro to Programming in Java on at This is free.

Student Learning Outcomes

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

Course Mechanics

You will need to bring a wireless laptop (running OSX, Windows, or some version of UNIX) to all classes, labs, and exams.
Homework and exam submission
You will use Codecheck (URL provided in assignments) to help test assignments (2 per week: a draft and a final)
You will submit your homework and exams in Canvas
Solutions will be posted in the Canvas.

Course Requirements

Midterm Exams (15% per exam)
Two in-class exams. Exams cannot be made up, except for reasons of illness, as certified by a doctor, or documentable extreme emergency.
Final Exam (30%)
The final must be taken on the scheduled day. But talk to me if you have a true emergency
Programming Assignments (25%)
Two assignments per week: a draft and a final. Schedule your time well to protect yourself against unexpected problems. 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 to compensate for Internet problems. Please 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. I drop the lowest final homework grade. This allows everyone to mess up on one assignment.
Participation (5%)
You will get the most out of class if you are present, on time, and prepared at every class and lab session. 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. You also get participation points for attending Supplemental Instruction session. (See the section on Supplemental Instruction of more information.) Your participation points are calculated out of a maximum of 200. You can not get more than 100%
Quizzes (5%)
There is a quiz due the morning of each class meeting at 1:00AM on the assigned reading for the that class, but I will give you a grace period and accept assignments until 6:00 AM.
Labs (5%)
The lab counts as 5% of your total grade. You are already enrolled in a lab section. Please be sure to attend. The labs are designed to reinforce what you learn in class. You have to pass the lab to pass the class. To pass the lab, you need to attend 11 of the 14 sessions. In other words, you can only miss 3 labs and still pass this class. Please do not use up your 3 allowed misses in the first few weeks of class on non-emergencies. I have occasionally had to fail a students in CS46A who missed a fourth lab due to illness but who had already frivolously used up the allowed misses. If you miss more than three labs you are not adequately prepared for CS46B.
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 4-unit/15-week class, so you should expect to spend at least 180 hours per semester or 12 hours per week on this class. Many students need to spend much more time.

Additional Information



Clicker Questions

Supplemental Instructions

We are fortunate this semester to have Supplemental Instruction made available to us through Peer Connections. Supplemental Instruction is an academic assistance program which provides peer-led group study sessions to assist students in traditionally difficult courses. And it is free! Students who attended last semester found it very helpful.

The sessions are led by a SI leader who has already mastered the course material and has been trained to facilitate group sessions where students can meet to improve their understanding of course material, review and discuss important concepts, develop study strategies and prepare for exams.  SI is for everyone, and open to all students enrolled in this class. Attendance at SI sessions is free and voluntary. Students, who attend SI sessions weekly, typically earn higher final course and exam grades than students who do not participate in SI. Please bring your lecture notes, computers, and questions with you.

SI study sessions meeting times will be determined by taking a poll of interested students and finding the most convenient time.  The location will be determined once the time has been set.

Your SI Leaders Email
Quoc Nguyen
Yen Huynh


If you would like to speak to an leader individually, please make arrangements via email.

SI sessions meet two times a week, throughout the semester.

Note that these sessions are not tutorial sessions for doing homework. They are sessions to help you understand the material. Please do not ask Quoc or Yen specifically how to do a homework problem. But if the homework requires a loop, it would be an excellent idea to ask them how to write a loop.

You earn 2 participation points for each session you attend. (That is about 60 points)

CS46A/B Lab Rules

You can read the Lab rules here (

Grading Policy

Your grade for the course is based on each of the exams, the finals, the total homework, the labs, the quizzes, and participation. Grades are calculated by weighting the scores as defined above. I do not curve grades.

This class use to be graded ABC/NC. But the University has changed its policy and the class is now graded with a traditional letter grade. See the scale below

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. It the other person submits your work, I have to give you both a 0. Please do not risk this by giving your code to your friends.

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


Tentative Schedule for CS46A

Lesson Class
this week's
Quiz# To read in the  text To watch on Udacity Homework
0 26-Jan Lab 1 housekeeping
1 31-Jan Lab 2 Quiz 1   1.3 – 1.6 Lesson 1 video
Through Kylie's Advice
2 2-Feb Quiz 2 1.7,  2.1 – 2.2  rest of Lesson 1 and Lesson 2
Video through "How many days"
Hw1 draft println. Picture- 
3 7-Feb Lab 3 Quiz 3 2.3 – 2.4  Lesson 2 through
Hw1 final draw rectangle, oval line
4 9-Feb Quiz 4 2.5 – 2.8  rest of Lesson 2 Hw2 draft replace, Day, draw replace
5 14-Feb Lab 4 Quiz 5 3.1 – 3.3 
Lesson 3 through
Improving the documentation 
Hw2 final
6 16-Feb Quiz 6 3.4 – 3.7  rest of Lesson 3 Hw3 draft writing classes
7 21-Feb Lab 5 Quiz 7 4.1 – 4.2 Lesson 4 through Magic Number Hw3 final
8 23-Feb Quiz 8 4.3 - 4.5 rest of Lesson 4 Hw4 draft input, calculation, String methods
9 28-Feb Lab 6 Quiz 9 5.1 - 5.3 All of Lesson 5.1 Hw4 final
10 2-Mar Quiz 10 5.4 - 5.8 All of Lesson 5.2  Hw5 draft if (input)
7-Mar Lab 7  review Hw5 final nested if, loop?
  9-Mar       Exam 1    
11 14-Mar Lab 8 Quiz 11 6.1 - 6.3 All of Lesson  6.1
12 16-Mar Quiz 12 6.4 - 6.5 Lesson 6.2 through Most
 Populous Country
hw6 draft nested if, loop
13 21-Mar Lab 9 Quiz 13 6.6 - 6.7   Lesson 6.2 through Finding
First Match 
hw6 final but draft should not require loop
14 23-Mar Quiz 14 6.8 - 6.10 Rest of Lesson 6.2 hw7 draft nested loops Random
  28-Mar   Spring Break      
15 4-Apr Lab 10 Quiz 15 7.7- Lesson 7.1 video through Lost
In a Good Book 2
Hw 7 final
16 6-Apr Quiz 16 7.7- Rest of Lesson 7.1 hw8 draft ArrayList
17 11-Apr Lab 11 Quiz 17 7.1 -7.5 Lesson 7.2 hw8 final
18 13-Apr Quiz 18 7.6 & 7.8 Video Lesson 7.3 hw9 draft arrays
2d arrays
19 18-Apr Quiz 19 8.4 - 8.6 Video Lesson 8 (static methods, etc) hw9 final
20 20-Apr Quiz 20 8.1 - 8.3 design patterns
hw10 draft
  25-Apr Lab 12   Exam2     hw10 final  
21 27-Apr Quiz 21 10.1 – 10.2 Video Lesson 9 up to Implementing
22 2-May Quiz 22 10.3 - Video Lesson 9  Implementing
hw11 draft
23 4-May Lab 13 Quiz 23 9.1 – 9.3 rest of Video Lesson 9 (inheritance) hw11 final interfaces 
24 9-May Quiz 24 9.4- inheritance hw12 draft
11-May  lab 14 Review
Quiz 1
CS1 assessment quiz hw12 final
16-May Review
Quiz 2
Final 24-May 1445-1700