Computer Science 132: Introduction to Computer Science II

Spring 1999

Instructor

Craig Miller
256 South College, x-1400
Email: millercr
Office hours to be announced and placed on Web page

Meetings

MF 2, W 3
Lab: 3:30-5:30 Thursday Room 4 (basement) South College

Text

An Introduction to Computer Science Using Java, by S Kamin et al.

Course Links

Overview

This course introduces concepts and practices skills necessary for further study in computer science. Core concepts include object-oriented programming, algorithm performance, arrays, recursion, and graphical interfaces. Students will practice the skills of a computer scientist, which include testing and debugging, technical writing, creating and verifying theories, and using reference materials. While the course introduces its concepts assuming no specific prior knowledge, it is expected that students have a general understanding of computer programming (e.g. CS 131, programming instruction in high school) or a demonstrated aptitude for problem solving.

The course will be taught using the Java programming language. Java is an excellent language for learning objected-oriented concepts and offers a standard programming interface for easily creating interactive software. We will be running Java on the Solaris operating system (a variant of Unix), which is installed on the lab PC's.

Grade Determination

Lab assignments will be handed out by the Monday of the scheduled lab period, and will be due on the Monday following the lab (at the beginning of class). Late assignments will be accepted until the following Friday with a 20% penalty. The scheduled lab period will be used to discuss the assignment and related concepts, and to provide students with immediate feedback as they work on the assignment. While students should be able to complete a substantial portion of the lab within the scheduled lab period, it is expected that a significant amount of work must occur outside of class time in order to finish the lab. Note: attendance at labs is mandatory.

In addition to two 50-minute tests and a cumulative final exam, quizzes and excercises will be given on a nearly daily basis. These short quizzes, which may or may not be graded on any given day, will serve as study guides for the student and provide instant feedback for the instructor. Grades will be determined as follows:

15% Test 1 Fri Feb 26
15% Test 2 Fri Apr 9
25% Final Exam Mon May 10
35% 13 Labs Weekly
10% Quizzes Daily to Weekly

Policy On Collaboration

Unless explicitly told otherwise, all assignments in this course are individual assignments. Students may not work together in the design or implementation of code or written assignments. The only exceptions to this are:

  1. Students are encouraged to discuss course concepts and examples that are not specific to any assignment.
  2. Students may assist each other in locating and diagnosing bugs in programs.

All other assistance should come from the instructor or official TA. Any questions about the appropriateness of collaboration should be discussed with the instructor. Failure to acknowledge someone else's code or even design ideas in any work is plagiarism, which warrants a report to the College's judicial system and may lead to suspension or expulsion.

Tentative Schedule

Week Topic Text Reading Lab
Jan 20 Algorithms and Objects Ch. 1 No Lab
Jan 25 Java Basics Ch. 2 Java environment
Feb 1 Conditionals and Loops Ch. 4, 6 Drawing Query
Feb 8 Defining Classes and methods Ch. 5 Using Loops to run Marble Jar Experiments
Feb 15 More on Classes and Intro to Arrays Ch. 5,7 Ant Races: Implementing Java Classes
Feb 22 Arrays Ch. 7 RowOfColors class for Mastermind
Mar 1 Arrays Ch. 7 TBA
Mar 8 Advanced Class Concepts Ch. 8 Adventure Game
Mar 15 Spring Break --- No classes
Mar 22 More on Classes Ch. 8 Adventure Game Part 2
Mar 29 HTML and Applets Ch. 3 Adventure Applet Implementation
Apr 5 More with Applets and 2D Arrays Ch. 4-9 Applet Design (Group Project)
Apr 12 Strings and I/O Ch. 10 Applet Implementation (Group Project)
Apr 19 Recursion Ch. 11 Word Counting
Apr 26 Inheritance and Interfaces Ch. 12 Lab with Recursion