CompSci 6 - Summer 2005


Syllabus

Week 1     Week 2     Week 3     Week 4     Week 5     Week 6


Week 1

Monday, July 4
No class.

Tuesday, July 5
- Introduction to CS, programming, Java, this course, etc.
- Overview of key programming ideas.
- Contents of a 'good' program.
Reading: Chapter Sections 1, 2.3
Homework 1 Out.

Wednesday, July 6
- Memory in a computer & Data representation in Java
- Variables
- Primitive Java Types: byte, short, int, long, float, double, char, boolean
- Operators, Expressions, and Operator Precedence
- Type conversion
Reading: Chapter Sections 2.4, 2.5
Homework 2 Out

Thursday, July 7
- Introduction to References and Objects.
- Introduction to the DecimalFormat built-in class.
Reading: Chapter Sections 2.0-2.2, 2.9
Drop/Add for Term II ends at 11:59pm. Duke students use ACES; visiting students call 684-2621 and leave your name, social security number, and drop/add information.

Friday, July 8
- More built-in classes: Keyboard, Math, String.
- More operators and boolean expressions
- Program statements (if, switch, while, do-while, for)
Reading: Chapter Sections 2.6-2.8, 3.0-3.9
Homework 1 Due.
Homework 2 Due.
Homework 3 Out

Week 2
Monday, July 11
- Introduction to writing classes.
- Method overloading and method signatures.
- Returning values from methods.
Reading: Chapter Sections 4.0-4.5

Tuesday, July 12
- Covering a missed subtopic: loop invariants
- The static modifier.
- Scope of variables/variable names.
- The this reference.
- Starting on method behavior.
Reading: None.
Homework 3 Due.

Wednesday, July 13
- Pulling together the use of loops, simple string parsing, writing classes, etc. through a simple game.
Short, ungraded quiz.
Reading: None.
Homework 4 Out.

Thursday, July 14
- More on method behavior.
- Garbage collection.
Reading: Chapter Sections 5.0-5.4

Friday, July 15
- More on parameter passing.
- Introduction to arrays & multi-dimensional arrays.
- Introduction to ArrayList and Vector classes.
Reading: Chapter Sections 6.0-6.1, 6.3-6.4

Week 3
Monday, July 18
- Review for Exam
Reading: Your review materials!
Homework 4 Due.

Tuesday, July 19
- Introduction to applets and graphics.
- Objects and applets.
Reading: None.

Wednesday, July 20
Midterm Exam

Thursday, July 21
- More on applets and graphics.
- Interfaces.
- Events and listeners.
- Animations (manual or with timers).
Reading: Chapter Sections 1.5, 2.10, 2.11, 3.10, 4.6, 4.7, 6.5, 7.6
Homework 5 Out.

Friday, July 22
- Inheritance.
Reading: 7.0-7.4

Week 4
Monday, July 25
- More on inheritance and polymorphism.
Reading: None.

Tuesday, July 26
- Inheritance vs. Interfaces
- Adapter classes.
- Introduction to GUI's
Reading: 9.0-9.6, 7.5
Homework 5 Due.

Wednesday, July 27
- More on GUI's
Reading: None.
Homework 6 Out.

Thursday, July 28
- Nested classes.
- I/O Streams, Standard I/O, Reading from files.
- String parsing.
- Wrapper classes.
Reading: 8.0-8.3

Friday, July 29
- Object Serialization.
- Introduction to Exceptions.
- Debugging and using the Eclipse debugger.
Reading: 8.4-8.6

Week 5
Monday, August 1
- Recursion
Reading: 11.0-11.3

Tuesday, August 2
- Coding day.
Reading: None.

Wednesday, August 3
- Starting on algorithms.
- Searching: Linear Search
- Searching: Binary Search
Reading: 12.0-12.3
Homework 6 Due.

Thursday, August 4
- Linear Search vs. Binary Search
- The lg function.
- O-notation and &Theta-notation.
Reading: None.

Friday, August 5
- Sorting: Selection Sort, Insertion Sort, and Bubble Sort.
Reading: None.
Homework 7 Out.

Week 6
Monday, August 8
- Merge Sort and Quicksort.
Reading: None.

Tuesday, August 9
Datastructures: Maps, Sets, Lists, and Queues.
Reading: None.
Homework 7 Due.

Wednesday, August 10
Final Exam review session.
Last day of class.

Thursday, August 11
Reading Period Day

Friday, August 12
Final Exam: 2PM - 5PM


Information used in these lectures is taken from the course textbook and from the sites http://www.howstuffworks.com/ and http://www.cs.dartmouth.edu/~cs5/.