[Skip to Body]
Primary:
[Front Door]
[Current]
[Glance]

[Honesty]
[On Teaching and Learning]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Readings]
[Reference]
Misc:
[SamR]
[Java 1.5 API]
[Espresso]
[TAO of Java]
[CS152 2004F]
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, 26 August 2005 About the Course About the course. Some basic administrative issues. An introduction to data structures and algorithms. 

(02) Monday, 29 August 2005 An Introduction to ObjectOriented Programming Grounding Ourselves ObjectOriented Programming Exercise: Rational Numbers Assignments: Read An Introduction to Unix in Espresso. 
(03) Tuesday, 30 August 2005 An Introduction to Unix Questions and answers Lab Assignments: Read An Introduction to Java, Java Packages, and Java in the MathLAN in Espresso. 
(04) Wednesday, 31 August 2005 An Introduction to Java (1) Java basics. Questions on the readings. Lab. Assignments: Reread An Introduction to Java, Java Packages, and Java in the MathLAN in Espresso. 
(05) Friday, 2 September 2005 An Introduction to Java (2) Q and A. Lab. Assignments: Read Textual Input and Output in Java in Espresso. 
Week 2: Designing Objects  
(06) Monday, 5 September 2005 Input and Output in Java (1) Questions. Lab. 
(07) Tuesday, 6 September 2005 Input and Output in Java (2) Assignments: Read Strings in Java in Espresso. 
(08) Wednesday, 7 September 2005 Strings in Java (1) Brief introduction to strings Q & A Lab Assignments: Read Numbers in Java. Begin Homework 1: Simplified Mad Libs (due Wednesday, 14 September 2005). 
(09) Friday, 9 September 2005 Strings in Java (2) Questions Lab Reflection 
Week 3: Object Fundamentals  
(10) Monday, 12 September 2005 Numeric Values in Java Number basics. Lab. 
(11) Tuesday, 13 September 2005 Representing Numbers in Java Key points from numbers lab. Representing integers. 
(12) Wednesday, 14 September 2005 Object Basics (1) What is a class? The three components of classes: fields, methods, and constructors. Designing classes. Building classes in Java. 
(13) Friday, 16 September 2005 Object Basics (2) Writing methods. Kinds of classes. Standard methods. Class fields and methods. Assignments: Read Conditional Evaluation in Java in Espresso. Begin homework 2: Basics of class design. 
Week 4: Control  
(14) Monday, 19 September 2005 Conditionals (1) Classes concluded. Boolean expressions in Java. Basic conditionals: the if statement.
Recursive methods.

(15) Tuesday, 20 September 2005 Conditionals (2) Review Standard comparison methods Lab Assignments: Read When Things Go Wrong: Exceptions in Java in Espresso. 
(16) Wednesday, 21 September 2005 Exceptions (1) Exceptions: Java's Primary ErrorHandling Technique. Lab. Assignments: Reread When Things Go Wrong: Exceptions in Java in Espresso. Due: Homework 2. 
(17) Friday, 23 September 2005 Exceptions (2) Exceptions lab. Assignments: Read Loops in Java in Espresso. Begin Exam 1: Java Basics. Bring questions on Monday. 
Week 5: ObjectOriented Design Issues, Revisited  
(18) Monday, 26 September 2005 Loops Review. Lab. Assignments: Read Separating What from How: Interfaces in Java in Espresso. 
(19) Tuesday, 27 September 2005 Interfaces Review of reading. Lab. Assignments: Read Reusing and Generalizing Code, Strategy One: Polymorphism in Java in Espresso. Prepare any final questions you have on the exam. 
(20) Wednesday, 28 September 2005 Polymorphism Q&A. Lab. 
(21) Friday, 30 September 2005 Pause for Breath Pause for review. Review of polymorphism. Polymorphic I/O. Lab. Assignments: Homework 3: Composing Text. Due: Exam 1: Java Basics. 
Week 6: Review  
(22) Monday, 3 October 2005 Discussion of Exam 1 / Review of Java Basics General notes Java basics Class basics 
(23) Tuesday, 4 October 2005 Review of Class Basics 
(24) Wednesday, 5 October 2005 Review of Static Fields and Methods Static fields. Static methods. Continuing example. 
(25) Friday, 7 October 2005 Review of Control Structures Motivating Example: Parsing Integers. Conditionals. Loops. Exceptions. 
Week 7: Miscellaneous  
(26) Monday, 10 October 2005 Review of Exceptions Review: The problem at hand. Throwing, catching, and passing exceptions. Writing your own exceptions. 
(27) Tuesday, 11 October 2005 A Motivationg Problem: Exponentiation The problem. A recursive solution. An iterative solution. A better recursive solution and its analysis. Generalizing the solution. 
(28) Wednesday, 12 October 2005 Review of Polymorphism Generalizing the exponentiation problem. Steps in using polymorphism. Example, continued. 
(29) Friday, 14 October 2005 Parameterized Classes Exponentiation. Generalizing. Parameterized classes. Another example: Comparison. 
Fall Break  
Week 8: Arrays and Vectors  
(30) Monday, 24 October 2005 Arrays Introduction to Arrays. Arrays in Java. An Application: Fibonacci Numbers. An Application: Box Packing. Assignments: Daily assignment posted at the end of class (on the eboard). 
(31) Tuesday, 25 October 2005 Vectors (1) Vector philosophy. Vector methods. Using Vectors for Fibonacci. Lab. 
(32) Wednesday, 26 October 2005 Vectors (2) Vectors, concluded. 
(33) Friday, 28 October 2005 Algorithm Analysis (1) Comparing algorithms. Difficulties. Informal analysis. Experimental analysis. 
Week 9: Algorithm Analysis  
(34) Monday, 31 October 2005 Algorithm Analysis (2) Formalizing notions. Eliminating constants. Using the notation: Relating functions. Analyzing recursive functions. Assignments: Do the lab on algorithm analysis in The TAO of Java. 
(35) Tuesday, 1 November 2005 Algorithm Analysis (3) Review. Detour: Deletion, Revisited. About the Lab. 
(36) Wednesday, 2 November 2005 Algorithm Analysis (4) Analyzing search methods. Recurrence relations, revisited. 
(37) Friday, 4 November 2005 Detour: Reuse through Inheritance Polymorphism. Reuse. Inheritance. Inheritance in Java. Special issue: Constructors. Example. Inheritance and interfaces. Assignments: Exam 2 distributed. 
Week 10: Linear Structures  
(38) Monday, 7 November 2005 Linear Structures Collections. Linear Structures. Randomimzed Linear Structures. 
(39) Tuesday, 8 November 2005 Pause for Breath 
(40) Wednesday, 9 November 2005 Stacks and Their Implementation The Stack ADT. Implementing stacks. 
(41) Friday, 11 November 2005 Queues and Their Implementation Queues basics. An arraybased implementation. Implementing queues with nodes. Priority queues. Due: Exam 2: Objects, Structures, and Algorithms 
Week 11: Linear Structures, Concluded  
(42) Monday, 14 November 2005 Priority Queues Priority queue basics. Applying priority queues. Implementing priorty queues. 
(43) Tuesday, 15 November 2005 Discussion of Exam 2 Problem 1: Dynamic Arrays Problem 2: Making Change Problem 3: An Interface Problem 4: Searching 
(44) Wednesday, 16 November 2005 Heaps and Heap Sort Implementations of Priority Queues. Trees. Tree Terminology. Heaps. Implementing Heaps. 
(45) Friday, 18 November 2005 Dictionaries (1): The Dictionary ADT Introduction to dictionaries Applications of dictionaries A Dictionary ADT Comparing dictionaries and databases Implementing dictionaries with arrays 
Week 12: Dictionaries  
(46) Monday, 21 November 2005 Dictionaries (2): Binary Search Trees Binary search trees. BSTs and dictionaries. Lab. Reflection. 
(47) Tuesday, 22 November 2005 Dictionaries (3): Hash Tables The Idea of Hashing. Hash Functions. Hashing in Java. Handling Hashing Conflicts. 
(48) Wednesday, 23 November 2005 Implementing Lists with Arrays List Basics. List ADTs. Implementing Lists with Vectors. Assignments: Exam 3 distributed. 
Thanksgiving Break 
Week 13: From Lists to Sorting  
(49) Monday, 28 November 2005 Linked Lists The design of lists, revisited. A vectorbased implementation. A linked implementation. Doublylinked lists. Circularlylinked lists. 
(50) Tuesday, 29 November 2005 Lists Lab Questions on list issues. Lab on vectorbased lists in The TAO of Java. Lab on doublylinked lists in The TAO of Java. 
(51) Wednesday, 30 November 2005 An Introduction to Sorting The problem of sorting. Carefully specifying that problem. Testing a sorting method. 
(52) Friday, 2 December 2005 Quadratic Sorts Bubble sort, and why not to use it. Selection sort. Insertion sort. Comparing these algorithms. Due: Exam 3: Data Types and Data Structures 
Week 14: Wrapup  
(53) Monday, 5 December 2005 Pause for Breath 
(54) Tuesday, 6 December 2005 Faster Sorts Review Divide and conquer sorting Merge sort Iterative merge sort Asymptotic analysis of merge sort Quicksort Asymptotic analysis of Quicksort 
(55) Wednesday, 7 December 2005 Discussion of Exam 3 Problem 1: Removing elements from LinearProbe Hash Table Problem 2: Dynamic Arrays Problem 3: Testing Sorting Routines Problem 4: Stable Sorting 
(56) Friday, 9 December 2005 Evaluation and Wrapup Evaluations The subject matter of the course Final statements 
[Skip to Body]
Primary:
[Front Door]
[Current]
[Glance]

[Honesty]
[On Teaching and Learning]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Readings]
[Reference]
Misc:
[SamR]
[Java 1.5 API]
[Espresso]
[TAO of Java]
[CS152 2004F]
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 Tue Dec 6 09:46:57 2005.
The source to the document was last modified on Thu Aug 25 16:34:46 2005.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS152/2005F/Handouts/glance.html
.
You may wish to validate this document's HTML ; ; Check with Bobby
Samuel A. Rebelsky, rebelsky@grinnell.edu