Augustana Faculty logo and wordmark


COMPUTING SCIENCE 120
Abstraction, Design, and Object-Oriented Programming

COURSE MATERIALS INDEX

Winter Term, 2006


This document was last modified on Monday, 16-Apr-2007 20:43:13 MDT



Course Information

. Course Description and Regulations

. Course Outline

. Instructor — Office Hours, Contact Information

. Percentage to Alpha Grade Conversion Chart

. Policy on Academic Integrity

. Expectations regarding Attendance and Course Work


[Textbook cover]

Textbook Resources

. Textbook Student Companion Site

This site includes:


Labs and Assignments

. Lab 1 (assigned January 19, due by January 26)     [large]

. Lab 2 (assigned January 26, due by February 2)     [large]

. Lab 3 (assigned February 2, due by February 9)     [large]

. Lab 4 (assigned February 9, due by February 16)     [large]

. Lab 5 (assigned March 2, due by March 9)     [large]

. Programming Assignment 1 (due before midnight on Tuesday, March 21)     [large]

. Programming Assignment 2 (due before midnight on Tuesday, April 4)     [large]

NOTE: A lab exam will be held during the scheduled lab session on April 6. You will be given a relatively simple problem at the start of the lab exam, and will have to solve the problem in Java and submit your solution by the end of the lab period. No communication with other students will be allowed, but the exam will be an open book exam (i.e., you may bring your textbook and other print resources to the lab, and you may consult your solutions to previous lab exercises electronically on the network drive).

. Programming Assignment 3 (due before midnight on Thursday, April 13)     [large]


Password for Assignment Submissions

Your assignment submissions are password-protected. These passwords apply only to form data submitted via the Web server. They are separate from (and typically different from) your Augustana CCID password.

Your web-based file submission account will have been created using your Augustana student ID number as the initial password (8 digits, with no spaces or hyphens). To change your Web password, press the following button:



Lecture Notes and Slides

. Chapter 1: Introduction     slides     all-in-one

. Chapter 2: Using Objects     slides     all-in-one

. Chapter 3: Implementing Classes     slides     all-in-one

. Chapter 4: Fundamental Data Types     slides     all-in-one

LogBaseTwo.java — a program to demonstrate how to calculate a base-2 logarithm from the natural logarithm calculated by Math.log()    [plain]

TestRound.java — a program to demonstrate the difference between truncation and rounding of a real number to an integer.    [plain]
Be sure to try this with negative numbers as well as positive reals.

. Chapter 5: Programming Graphics     slides     all-in-one

. Chapter 6: Decisions     slides     all-in-one

Exercises on decision structures

. Chapter 7: Iteration     slides     all-in-one

. Chapter 8: Arrays and Array Lists     slides     all-in-one

. Chapter 9: Designing Classes     slides     all-in-one

. Chapter 10: Testing and Debugging     slides     all-in-one

. Chapter 11: Interfaces and Polymorphism     slides     all-in-one

. Chapter 12: Event Handling     slides     all-in-one

. Chapter 13: Inheritance     slides     all-in-one

. Chapter 14: Graphical User Interfaces     slides     all-in-one

. Chapter 15: Exception Handling     slides     all-in-one

. Chapter 16: Files and Streams     slides     all-in-one

. Chapter 17: Object-Oriented Design     slides     all-in-one

. Chapter 18: Recursion     slides     all-in-one

. Chapter 19: Sorting and Searching     slides     all-in-one

. Chapter 22: Generic Programming     slides     all-in-one

Resources

. Download Java 2 Platform Standard Edition 5.0 – select either "NetBeans IDE + JDK 5.0 Update 6" or "JDK 5.0 Update 6"

Java documentation:

. GNU Source-highlight – convert Java source code to HTML (and other markup formats) with key word highlighting

. JMol applet (see Chapter 1)

. Unicode home page

Java Editors and Development Environments

. TextPad — a shareware Windows-only editor with integrated support for compiling and running Java programs. Due to its simplicity, this is the recommended editor for this course.

. Eclipse — a free, open-source, cross-platform integrated development environment. Eclipse has many features that assist in the development of Java code, but may be daunting for a beginning programmer; I recommend that you start using it in your second year instead of this semester.

. BlueJ — an interactive Java environment that emphasizes inspecting classes and objects rather than the edit - compile - run cycle.

For help on using TextPad, Eclipse, and/or BlueJ with the Java Concepts textbook, see Cay Horstmann's Java Compiler Tutorial

. NetBeans — a free, open-source Java development environment by Sun.

For help on using NetBeans with the Java Concepts textbook, see Cay Horstmann's NetBeans help page

. JCreator — a Windows-only Java development environment; JCreator LE ("limited edition") is available for free.

For help on using JCreator with the Java Concepts textbook, see Cay Horstmann's JCreator help page

Other Java textbooks

[Thinking in Java cover] . Thinking in Java, a local copy of the HTML version of a book by Bruce Eckel which he makes available for free download, even though it is also available for sale in hardcopy (the 3rd edition was published by Prentice-Hall in 2002, ISBN: 0131002872, available through Chapters or Indigo Books and elsewhere; the 4th edition, which will include discussion of Java generics, is due out in February 2006). If you download the full book (in PDF, Word, RTF, or text format), DON'T PRINT IT ON AN AUGUSTANA PRINTER!

. Introduction to Programming Using Java by David J. Eck

. Introduction to Java by Dan Joshi, from Web Programming Unleashed

Features of Java

. Understanding Java I/O Facilities by Joseph Bergin, Pace University

Sample Exam Questions

Sample mid-term exam (PDF format) — not all the terms and concepts covered in this exam have been studied yet in this year's offering of CSC 120

Copyright © 2004, 2005, 2006 Jonathan Mohr