Craig Miller
256 South College, x-1400
Email: millercr
Office hours to be announced and placed on Web page
MF 2, W 3
Lab: 3:30-5:30 Thursday Room 4 (basement) South College
An Introduction to Computer Science Using Java, by S Kamin et al.
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.
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 |
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:
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.
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 |