[Skip to Body]
Primary:
[Front Door]
[Current]
[Glance]
-
[Honesty]
[Links]
[Syllabus]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Readings]
[Reference]
Misc:
[SamR]
[Java 1.4.2 API]
[EIJ]
[CS152 2000F]
[CS153 2004S]
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 Cancelled |
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 Conditionals Boolean expressions in Java.. Basic conditionals: the if statement..
Other conditionals: the switch statement..
Assignments: Extending Two Dimensional Vectors. |
(13) Friday, 17 September 2004 Loops 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 Arrays 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 Vectors 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]
Course at a Glanceform.
Tuesday, 7 Janaury 2003 [Samuel A. Rebelsky]
Tuesday, 14 January 2003 [Samuel A. Rebelsky]
[Skip to Body]
Primary:
[Front Door]
[Current]
[Glance]
-
[Honesty]
[Links]
[Syllabus]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Readings]
[Reference]
Misc:
[SamR]
[Java 1.4.2 API]
[EIJ]
[CS152 2000F]
[CS153 2004S]
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 http://www.cs.grinnell.edu/~rebelsky/Courses/CS152/2004F/Handouts/glance.html
.
You may wish to
validate this document's HTML
;
;
Check with Bobby