CSCI-195-A: Object Oriented Programming I
Fall 2009

1:00 - 1:50; Monday, Wednesday, Friday; Ambrose 413C


Instructor: Dr. Kevin Lillis
429 Ambrose Hall, LillisKevinM at sau dot edu , 309-269-8493

Introduces the fundamental concepts of programming from an object-oriented perspective. Topics include simple data types, control structures, an introduction to array and string data structures and algorithms, as well as debugging techniques and the social implications of computing. The course emphasizes good software engineering principles and developing fundamental programming skills in the context of a language that supports the object-oriented paradigm.

Textbooks, Slides, Syllabus, Assignments, Announcements, Course Outline, On-Line Resources, Office Hours, Prayer Before Study

Required Textbooks

Big Java, 3rd Edition
by Cay S. Horstmann
ISBN 0470105542
Available at Amazon.com

Slides

Chapter 1 - Introduction Chapter 2 - Using Objects
Chapter 3 - Implementing Classes Chapter 4 - Fundamental Data Types
Chapter 5 - Decisions Chapter 6 - Iteration
Chapter 7 - Arrays and Array Lists Chapter 8 - Designing Classes
Chapter 9 - Interfaces and Polymorphism  

Assignments

Number Assignment Points Due
1
Programming Exercise P1.2
Remember to bring a flash drive to class on Wednesday (see the announcement below.)
10
Wed 9/2, 12:59 pm
2 Programming Exercise P1.5
Please only turn in the Java file you create, not the class file that is created when your program is compiled.
10 Sat 9/5, 11:59 pm
3 Programming Exercise P1.7 10 Sun 9/6, 11:59 pm
4 Programming Exercise P1.8 10 Mon 9/7, 11:59 pm
5 Programming Project 1.1 (pg 31) 10 Tues 9/8, 11:59 pm
6 Programming Exercise P2.1 15 Friday 9/11, 11:59 pm
7 Programming Exercise P2.9 15 Monday 9/14, 11:59 pm
8 Programming Exercise P3.1 15 Monday 9/21, 11:59 pm
9 Programming Exercise P3.2 5 Thursday 9/24, 11:59 pm
10 Create a class called Rectangle and a tester for the Rectangle class. The rectangle class should have two instance fields, one for height and one for width. It should have two constructors: one sets both the height and the width to 1, and the other takes parameters for the initial values for the height and width. Provide accessor and mutator methods for the height and width instance fields. Provide a method called area that returns the area of the rectangle. Provide a method called perimeter that return the perimeter of the rectangle. 15 Saturday 9/26, 11:59 pm
11 Programming Exercise P3.6 15 Tuesday 9/29, 11:59 pm
12 Programming Exercise P3.12. Do not do the Extra Credit portion. 15 Thursday 10/1, 11:59 pm
13 Programming Exerise P4.6. 15 Sunday 10/4, 11:59 pm
14 Programming Exercise P4.10 15 Tuesday 10/6, 11:59 pm
15 Programming Exercise P5.10 10 Tuesday 10/13, 11:59 pm
16 The Three Points Assignment 20 Tuesday 10/20, 11:59 pm
17 Programming Assigment P6.6 - This has been made an extra credit assignment 0 Sunday 10/25, 11:59 pm
18 Programming Assignment P6.1 10 Wednesday 10/28, 11:59 pm
19 Programming Assignment P6.12 15 Wednesday 11/4, 11:59 pm
20 The Dice Simulator Assignment 15 Monday 11/9, 11:59 pm
21 The Magic Squares Assignment 20 Friday 11/13, 11:59 pm

Announcements

9/21 Our first quiz will be in class on Wednesday, 9/23. Here are the solutions for Quiz 1. The password will be given in class.
8/31/09 As we saw in class today, my original script was difficult to use. I think the best solution is for everyone in class to have their own flash drive. For Wednesday I would like everyone to download this simplified script and save it to your flash drive as setup195a.bat. You will then be able to save all of your work to the flash drive and not worry about the z: drive, which is causing a majority of our problems.
8/31/09 In order to run the software for this class from the command prompt you may need to use this script. We will discuss how to use this script in class.
8/28/09 Here are some instructions for downloading and installing software for this class.

Tentative Course Outline

Week Of Material Covered
August 24 Chapter 1 - Introduction; Compiling from the command line
August 31 Chapter 2 - Using Objects
September 7 Chapter 2 - Using Objects
September 14 Chapter 3 - Implementing Classes
September 21 Chapter 3 - Implementing Classes
September 28 Chapter 4 - Fundamental Data Types
October 5 Chapter 5 - Decisions; Exam 1 (Chapters 1 - 4)
October 12 Chapter 5 - Decisions
October 19 Chapter 6 - Iteration
October 26 Chapter 6 - Iteration; Section 11.1 - Text Files
November 2 Chapter 7 - Arrays and Array Lists
November 9 Chapter 7 - Arrays and Array Lists
November 16 Chapter 8 - Designing Classes; Exam 2 (Chapters 5 - 7)
November 23 Thanksgiving Break
November 30 Chapter 9 - Interfaces and Polymorphism
December 7 Chapter 9 - Interfaces and Polymorphism
Finals Final Exam: Wednesday December 16, 1:00 - 2:50

Online Resources

Getting Java

Download Java and NetBeans from sun

Student Companion Web Site for Our Textbook

Big Java, 3rd Edition

Online Books

Thinking in Java, 3rd Edition

Reference

Sun's JDK 6 Documentation
How to write doc comments for the Javadoc tool
Javadoc Technology

Tutorials

Sun's Index of Tutorials
Dick Baldwin's Java tutorials
Java2D: An Introduction and Tutorial

Links to Additional Online Resources

Marty Hall's Java Links