Syllabus

Monday Lecture Tuesday Lab Thursday Lecture
  1/26
Introduction
Program example: WordList.java
1/30
Recursion
Program example: StringTest.java

1/31 Lab #1: Introduction to Linux, X and Emacs.
Your first Java program: edit, compile & run (Hello.java)
Electronic submission of code for assignments.

Read: (1) Linux, X, Emacs, and Java, (2) Introduction to Unix and the X Window System, (3) Introduction to the Emacs Editor and (4) GNU Emacs Reference Card.
Handout: Emacs Cheat Sheet
2/2
Arrays
Program example: ArrayExercise.java
2/6
Object oriented programming
Program example: Songs
2/7 Lab #2: Recursion (powers and palindromes)
Command-line arguments
2/9
The LinkedList data type
Program example: Lists

Assignment 1 due

2/13
Java I/O
Program example: FileOps
2/14Lab #3:OOP 2/16
Review
Assignment 2 due
2/20
Presidents' Day
2/21 Lab #4: Cyberspace (Java I/O, LinkedLists and sorting)
2/23
IN-CLASS EXAM
2/27
Analysis of algorithm performance
Program examples: ArraySearch and Sorting

2/28Lab #5: Inheritance
3/1  
Stacks
Program example: StackTest

Assignment 3 due
3/5
More Stacks and Exception Handling
Program examples: Exception and StackSearch
3/6Lab #6: Stacks in War & JavaDoc
Javadoc reference
3/8
Queues
Program example: Queues
Assignment 4 due
3/12
More queues
Program example: QueueSearch
3/13 Lab #7: Simulating a Printer Queue
3/15
Graphical User Interfaces
Program examples: GUIDemo and TicTacToe

Assignment 5 due
3/19
Spring Break
3/20
Spring Break
3/22
Spring Break
3/26
Trees
Program example: Trees
3/27
Lab #8: Working with Java GUIs
3/29
More trees
Program example: Trees
4/2
Tables
Program example: Tables
EXAM 2 due
4/3 Lab #9: Trees
4/5
Beyond CS230
4/9
Binary search trees
Program example: BSTables
Assignment 6 due
4/10 Lab #10:Tables/GUIs (Oscars)
4/12
Hash tables
Final Project Phase 1 due
4/16
Patriots' Day
4/17 Lab #11: Spell-checker (Hash tables)
4/19
AVL trees
EXAM 3 due
4/20
Priority queues
Program example: PriorityQueues
4/23
File compression
4/24Lab #12: Priority queues
4/26
Graphs
Final Project Phase 2 due
4/30
More graph algorithms
5/1 Lab #13: Project presentations
Final Project Phase 3 due
5/3 Wrap Up
Assignment 7 due
5/7
Reading period
5/8
Reading period
5/10
Final Exams
5/15
Final Exams
5/14
Final Exams