Fund. CS II (CS152 2004F)

CS152 2004F At A Glance

This is an abbreviated course syllabus. Like everything else in this course, it is likely to change.

Weeks: 1, 2, 3, 4, 5, 6, 7, 8, break, 9, 10, 11, 12, 13, 14.

Week 1: Course Basics
(01) Friday, 27 August 2004
About the Course
About the course.. Grounding ourselves.. Some basic administrative issues.. Programming paradigms.. An introduction to data structures and algorithms..
(02) Monday, 30 August 2004
An Introduction to Object-Oriented Programming
Programming Paradigms. Object-Oriented Programming. ADTs and Data Structures.
Assignments: Nightly assignment: Find at least one definition of object-oriented programming and be prepared to compare it to the one I gave in class.
(03) Tuesday, 31 August 2004
An Introduction to Java (1)
Your first Java program.. Configuring the MathLAN computers to run Java..
(04) Wednesday, 1 September 2004
An Introduction to Java (2)
Your first Java program, revisited.. String-based input in Java.. Reading numbers..
(05) Friday, 3 September 2004
Object Basics
Week 2: Designing Objects
(06) Monday, 6 September 2004
Objects and Classes
Review.. Using objects in our class.. Other methods for our class.. Constructors.. Design question: Mutability..
(07) Tuesday, 7 September 2004
Pause For Breath
(08) Wednesday, 8 September 2004
Java Basics, Revisited
Assignments: Assignment for Day 9: Three Word Phrases.
(09) Friday, 10 September 2004
Week 3: Java Fundamentals
(10) Monday, 13 September 2004
Rethinking Vectors in Two Space
(11) Tuesday, 14 September 2004
Separating Interface from Implementation
The TwoDimVector Example, continued.. An alternative implementation.. Reconciling the two implementations with an interface.. Building a generic tester..
Assignments: HW for Class 12: Design an Interface for Scheme-Style Lists.
(12) Wednesday, 15 September 2004
Boolean expressions in Java.. Basic conditionals: the if statement.. Other conditionals: the switch statement..
Assignments: Extending Two Dimensional Vectors.
(13) Friday, 17 September 2004
Iterative Repetition.. While Loops.. Do Loops.. For Loops.. Lab (J5.1 and J5.3)..
Due: Homework 13. Assignments: Homework 14: Testing vectors, revisited.
Week 4: Object Design, Revisited
(14) Monday, 20 September 2004
Laboratory: Java Basics, Revisited
Due: Homework 14: Testing Vectors, Revisited. Assignments: Homework 15: Lab, Concluded.
(15) Tuesday, 21 September 2004
Laboratory: Java Basics, Continued
Assignments: Finish both labs.
(16) Wednesday, 22 September 2004
Standard Object Methods
Why have standard methods?. The toString method.. The equals method.. The compareTo method.. The clone method.. The hashCode method..
Due: Homework 16: Labs. Assignments: Homework 17: Extending Dates.
(17) Friday, 24 September 2004
Reuse through Inheritance
Reuse.. Inheritance.. Inheritance in Java.. Special issue: Constructors.. Example..
Due: Homework 17: Extend the Date Class Assignments: Homework 18: Interfaces vs. Inheritance Exam 1
Week 5: Java, Concluded
(18) Monday, 27 September 2004
Exceptions (1)
Problems in Programs.. Techniques for Handling Errors.. Exceptions: Java's Primary Error-Handling Technique.. Dealing with Procedures that Throw Exceptions..
Assignments: Assignment 19: Interfaces vs. Inheritance
(19) Tuesday, 28 September 2004
Exceptions (2)
Optionally-Catchable Exceptions.. Throwing Exceptions.. Defining Exceptions..
Due: Homework 19: Interfaces vs. Inheritance. Assignments: Homework 20: Exception Basics.
(20) Wednesday, 29 September 2004
Project Discussion
Background: About the class, revisited. Background: About the project. Project selection.
(21) Friday, 1 October 2004
Introduction to Arrays.. Arrays in Java.. An Application: Fibonacci Numbers.. An Application: Box Packing..
Due: Exam 1 Assignments: Homework 22: Fibonacci numbers.
Week 6: Algorithm Analysis
(22) Monday, 4 October 2004
Documentation and JavaDoc
Why document?. Kinds of documentation.. Javadoc basics..
Due: Homework 22: Fibonacci. Assignments: Homework 23: Redocumenting Vec2D.
(23) Tuesday, 5 October 2004
Project Discussion
Questions and answers.. Project components.. Selecting teams..
(24) Wednesday, 6 October 2004
Algorithm Analysis (1)
An Example.. Comparing Algorithms..
Assignments: Do the first stage of the project.
(25) Friday, 8 October 2004
Algorithm Analysis (2)
Example, revisited.. Asymptotic Analysis.. Asymptotic Analysis in Practice..
Week 7: Miscellaneous
(26) Monday, 11 October 2004
Algorithm Analysis (3)
Review. The role of experimentation. Using the notation: Eliminating constants. Using the notation: Simplifying running times. Analyzing recursive procedures.
(27) Tuesday, 12 October 2004
Project Discussion
Presentation by UI group.. Presentation by AI group.. Presentation by EE group.. Presentation by last group..
Due: Weekly Project Work: Basics. Assignments: Weekly Project Work: Begin Implementation.
(28) Wednesday, 13 October 2004
Class Cancelled
(29) Friday, 15 October 2004
Class Cancelled
Fall Break
Week 8: Linear Structures
(30) Monday, 25 October 2004
Stacks and Their Implementation
Collections.. Linear structures.. The Stack ADT.. Implementing stacks..
Assignments: Homework for class 32: Finish the ArrayBasedStack implementation.
(31) Tuesday, 26 October 2004
Project Discussion
Action methods. Parameter types. Core methods. Simultaneous users.
Assignments: Homework for class 32: Finish the ArrayBasedStack implementation. Project for week 9: Begin implementation.
(32) Wednesday, 27 October 2004
Queues and Their Implementation
Review of homework.. Queues, revisited.. Problems with the array-based implementation.. Implementing queues with nodes.. Priority queues..
Assignments: Homework for class 33: Design an implementation of priority queues.
(33) Friday, 29 October 2004
Preparation for Exam 2
Discussion of exam 2.. Sample code..
Assignments: Exam 2: Algorithms (due Friday, 5 November 2004). Homework for class 34: List Methods.
Week 9: Miscellaneous
(34) Monday, 1 November 2004
Priority Queues
Priority queue basics.. Java Detour: Abstract classes.. Implementing priorty queues.. Efficiency.. Looking ahead: Lists..
Assignments: Homework for class 35: List positions.
(35) Tuesday, 2 November 2004
Project Discussion
Short presentation by network group.. CRC card discussion..
(36) Wednesday, 3 November 2004
Heaps and Heap Sort
Trees.. Tree Terminology.. Heaps.. Implementing Heaps..
Assignments: Project stuff for week 10.
(37) Friday, 5 November 2004
Dictionaries (1)
Introduction to dictionaries. Applications of dictionaries. A Dictionary ADT. Comparing dictionaries and databases. Implementing dictionaries with arrays.
Week 10: Dictionaries
(38) Monday, 8 November 2004
Dictionaries (2): Binary Search Trees
An ADT for binary search.. Implementing that ADT with arrays.. Binary search trees.. BSTs and dictionaries..
(39) Tuesday, 9 November 2004
Project Discussion
Planning. Questions. Verbs. Setup and Takedown.
Assignments: Homework for class 40: Implement KeyedValueComparator.
(40) Wednesday, 10 November 2004
Dictionaries (3): Hash Tables
The Idea of Hashing.. Hash Functions.. Hashing in Java.. Handling Hashing Conflicts..
(41) Friday, 12 November 2004
Discussion of Exam 2
Problem 1: Documenting Binary Search. Problem 2: Queues, Revisited. Problems 3 and 4: Making Change.
Assignments: Homework for class 42: Resolving Conflicts in Hash Tables.
Week 11: Sorting
(42) Monday, 15 November 2004
Vector philosophy. Vector methods. Detour: Static methods. Detour: Improving testing. Vector applications.
(43) Tuesday, 16 November 2004
Project Discussion
UI Demo. Questions. AI People.
Assignments: Homework for class 44: Sorting specifications.
(44) Wednesday, 17 November 2004
An Introduction to Sorting
The problem of sorting. Carefully specifying that problem. Testing a sorting method.
Assignments: Homework for class 45: Selection sort.
(45) Friday, 19 November 2004
Quadratic Sorts
Testing sorting, continued. Selection sort. Insertion sort.
Assignments: Homework for class 46: Insertion sort.
Week 12: Sorting, Continued
(46) Monday, 22 November 2004
O(nlogn) Sorts
Review. Divide and conquer sorting. Merge sort. Iterative merge sort. Asymptotic analysis. Quick sort. Asymptotic analysis.
(47) Tuesday, 23 November 2004
Project Discussion
Copying code. Attempt to integrate. Questions and answers.
(48) Wednesday, 24 November 2004
Project Discussion
Copying code. Attempt to integrate. Questions and answers.
Thanksgiving Break
Week 13: Lists
(49) Monday, 29 November 2004
List ADTs
What else is a list?. Two ways to iterate lists: Cursors and Positions. Three kinds of lists: Simple, Ordered, and Sorted.
(50) Tuesday, 30 November 2004
Pause for Breath
Integration.. List design, revisited.. Iterating lists..
Assignments: Homework for class 51: Re-documenting lists.
(51) Wednesday, 1 December 2004
Weekly Project Discussion
Integrate UI and RealWorld. Add People. Add network.
Assignments: Exam 3: Algorithms, Abstract Data Types, and Data Structures.
(52) Friday, 3 December 2004
Implementing Lists with Arrays (1)
SimpleList and SimpleCursor ADTs. Using arrays to implement simple lists.
Week 14: Wrapup
(53) Monday, 6 December 2004
Implementing Lists with Arrays (2)
Deleting elements from a SimpleList. Invalidiating Cursors. Improving Cursors. Designing an OrderedList ADT. Sketch of array-based implementation.
(54) Tuesday, 7 December 2004
Linked Lists (1)
An OrderedList ADT. Implementing lists with nodes. Iterating linked lists. Adding elements. Deleting elements.
(55) Wednesday, 8 December 2004
An Overview of Computer Science
What is computer science? Revisited. Key subfields of computer science. The Grinnell curriculum.
(56) Friday, 10 December 2004
Evaluation and Wrapup



This document is automatically generated from a number of other documents. Hence, I may not always remember to update the history.

Friday, 12 January 2001 [Samuel A. Rebelsky]

Tuesday, 7 Janaury 2003 [Samuel A. Rebelsky]

Tuesday, 14 January 2003 [Samuel A. Rebelsky]


Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Wed Dec 8 10:36:36 2004.
The source to the document was last modified on Mon Nov 1 08:29:26 2004.
This document may be found at

You may wish to validate this document's HTML ; Valid CSS! ; Check with Bobby

Samuel A. Rebelsky,