Introduction to Object-Oriented Program Design
Instructor
Chuck Iverson
Office: 18-112
Office Phone: 650-306-3253
Web Page: http://www.civerson.com
Email: iverson@smccd.edu
Class Location and Meeting Times
Building 22, Room 118
2:10 to 3:25 pm TTh
Prerequisites
A math proficiency level equivalent to elementary Algebra (Math 110) is assumed.
Materials
- Building Java Programs - Early Objects (1st Edition) by Reges and Stepp (0-321-38283-8)
Grading
Your grade will be based on:
- Homework and Exercises (50%)
- Exams and Quizzes (50%)
Course Description
CIS 118 is an introduction to computer science and software engineering for student who have not programmed in another language. The course takes a systematic approach to the design, construction and management of computer programs, emphasizing object-oriented design and programming documentation, testing and debugging techniques. The course focuses on designing and implementing robust, well styled, and maintainable computer programs and introduces basic data structures using Java.
Student Learning Objectives
The following are a few of the Student Learning Objectives (SLOs) for CIS 118:
- Correctly write, compile and execute a Java program to solve a simple problem with user input.
- Correctly implement a class in Java and create a driver program to test the class.
- Correctly use decision structures in a Java program to execute alternatives depending on user input.
- Correctly use an array to store data read from a file, process the data and write the results to a file.
- Correctly implement a graphical user interface (GUI) for a Java application or applet.
Homework
Programming exercises will be done in class and will also be assigned as homework. Student programs will often be reviewed in class. Programs are evaluated according to the following considerations:
- Does the program work (i.e., does it react in a correct or reasonable way to all input, whether that input is reasonable or not)?
- How well does the program handle boundary conditions?
- Was the program written with the tools and within the constraints outlined in the assignment?
- Does it make use of the methods and design guidelines discussed in class?
- Was reasonable judgement used in tackling any "gray areas?"
- Is the source code clear, readable and well-commented?
- Could someone understand the program without having read the assignment?
- Is the code efficient and to the point?
- Is it portable?
- Is it original?
Exams
Frequent quizzes, two midterm exams and a final project will be given.
Expectations
I can help you succeed in this class, but I can't succeed for you. In this class you're expected to be responsible for your own academic success.
- That means you are expected to attend class and to arrive on time (2 lates equals 1 absence, 4 absences leads to a drop).
- If you're going to miss class, you should notify me ahead of time, either by phone or email.
- You are expected to contribute to class discussions and to ask questions when something is not clear.
- You are expected to do your homework assignments before the class when they are due and to seek help from me or your classmates or a tutor if you are having difficulty completing them.
- You should check the class notes and assignments link (top right of this page) if you miss class. All class assignments, exam solutions, sample code and special notes will be posted at this web site after class.
- You are expected to see me during office hours for additional help or to take make-up exams.
Software and Tutorials
If you have a Mac, you probably already have Java installed. For Windows and Linux, Sun's Java 2 Platform Standard SDK 1.6.14 is available for free download at: http://java.sun.com/javase/downloads/index.jsp

Sun also has a useful free Java Tutorial available at: http://java.sun.com/docs/books/tutorial/index.html

BlueJ provides a terrific integrated development environment (IDE, version 2.5.1) for Java at
http://www.bluej.org/download/download.html

Instructor's Fall 2009 Class Schedule
My class schedule, below, shows when and where I'm on campus. The best way to contact me if I'm not on campus is via email. I check my email several times a day. I have my email automatically sorted by the first 4 characters in the subject field. For this class, the subject line of the email should begin with C118.

Tentative Topic Schedule
Tuesday |
Thursday |
|
8/20 - Chapter 1 - Introduction to Java Programming |
8/25 - Chapter 2 - Primitive Data and Definite Loops |
8/27 - Chapter 2 - Primitive Data and Definite Loops |
9/1 - Chapter 3 - Introduction to Parameters and Objects |
9/3 - Chapter 3 - Introduction to Parameters and Objects |
9/8 - Supplement 3G - Graphics |
9/10 - Chapter 4 - Conditional Execution |
9/15 - Chapter 4 - Conditional Execution |
9/17 - Chapter 5 - Program Logic and Indefinite Loops |
9/22 - Chapter 5 - Program Logic and Indefinite Loops |
9/24 - Chapter 6 - File Processing |
9/29 - Chapter 6 - File Processing |
10/1 - Chapter 7 - Arrays |
10/6 - Chapter 7 - Arrays |
10/8 - Midterm Exam on Chapters 1-7 |
10/13 - Chapter 8 - Classes |
10/15 - Chapter 8 - Classes |
10/20 - Chapter 9 - Inheritance and Interfaces |
10/22 - Chapter 9 - Inheritance and Interfaces |
10/27 - Chapter 10 - Array Lists |
10/29 - Chapter 10 - Array Lists |
11/3 - Chapter 11 - Java Collections Framework |
11/5 - Chapter 11 - Java Collections Framework |
11/10 - Chapter 12 - Recursion |
11/12 - Chapter 12 - Recursion |
11/17 - Chapter 13 - Searching and Sorting |
11/19 - Chapter 13 - Searching and Sorting |
11/24 - Chapter 14 - Graphical User Interfaces |
11/26 - Thanksgiving Holiday |
12/1 - Chapter 14 - Graphical User Interfaces |
12/3 - Chapter 14 - Graphical User Interfaces |
12/8 - Chapter 14 - Graphical User Interfaces |
12/10 - Chapter 14 - Graphical User Interfaces |
|
12/17 - Final Exam
2:10 - 4:40 pm |