Fund. CS II (CS152 2005S)

CS152 2005S 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) Monday, January 24, 2005
About the Course
About the course. Grounding ourselves. Some basic administrative issues. Programming paradigms. An introduction to data structures and algorithms. Assignments: Homework 1: Rational Numbers.
(02) Tuesday, January 25, 2005
An Introduction to Object-Oriented Programming
Object-Oriented Programming ADTs and Data Structures Exercise: Rational Numbers
Due: Homework 1: Rational Numbers. Assignments: Read An Introduction to Unix in MathLAN. Homework 2: Course Guidelines.
(03) Wednesday, January 26, 2005
An Introduction to Unix
Questions and answers Lab
Assignments: Read Espresso: An Introduction to Java. Due: Homework 2: Course stuff.
(04) Friday, January 28, 2005
An Introduction to Java (1)
Java basics. Detour: Packages. Compiling and running programs. Your first Java program.
Assignments: Read Espresso: An Introduction to Java. Read Espresso: Packages in Java. Read Espresso: Java in the MathLAN.
Week 2: Designing Objects
(05) Monday, January 31, 2005
An Introduction to Java (2)
Review readings. Lab.
Assignments: Read Basic Input and Output in Java.
(06) Tuesday, February 1, 2005
Input and Output in Java
Assignments: Read Espresso: Strings in Java.
(07) Wednesday, February 2, 2005
Strings in Java (1)
Brief introduction to strings Q & A Lab
Assignments: Read Espresso: Numeric Values in Java (available Thursday).
(08) Friday, February 4, 2005
Strings in Java (2)
Questions Lab Reflection
Week 3: Object Fundamentals
(09) Monday, February 7, 2005
Numeric Values in Java
String wrapup. Lab.
Assignments: Read Espresso: Writing Your Own Classes.
(10) Tuesday, February 8, 2005
Object Basics (1)
What is a class? The three components of classes: fields, methods, and constructors.
(11) Wednesday, February 9, 2005
Object Basics (2)
Constructor details. Kinds of classes. Standard methods.
(12) Friday, February 11, 2005
Object Basics Lab
Lab. Reflection.
Week 4: Control
(13) Monday, February 14, 2005
Conditionals (1)
Boolean expressions in Java. Basic conditionals: the if statement. Lab.
(14) Tuesday, February 15, 2005
Conditionals (2)
Review Standard comparison methods Lab
(15) Wednesday, February 16, 2005
Conditionals (3)
Questions and answer. Lab.
(16) Friday, February 18, 2005
Week 5: Miscellaneous
(17) Monday, February 21, 2005
Techniques for Handling Errors. Problems in Programs. Exceptions: Java's Primary Error-Handling Technique. Dealing with Procedures that Throw Exceptions.
(18) Tuesday, February 22, 2005
Exceptions Lab
Question. Lab. Reflection.
(19) Wednesday, February 23, 2005
Iterative Repetition. While Loops. Do Loops. For Loops. Lab.
(20) Friday, February 25, 2005
Documentation and JavaDoc
Why document? Kinds of documentation. Javadoc basics.
Week 6: Object-Oriented Design Issues, Revisited
(21) Monday, February 28, 2005
An Initial Problem: Laying Out Text
Object-oriented design, revisited. Motivating problem: Text layout. Basic classes: Lines and Chunks.
Assignments: Exam 1 (due Friday).
(22) Tuesday, March 1, 2005
Interfaces and Polymorphism
Representing Operations. Your first operation: Surround. Simplifying things with Java Interfaces.
(23) Wednesday, March 2, 2005
Text Composition Lab
Review. New code. Informal lab.
(24) Friday, March 4, 2005
Reuse through Inheritance
Polymorphism. Reuse. Inheritance. Inheritance in Java. Special issue: Constructors. Example.
Due: Exam 1.
Week 7: Linear Structures
(25) Monday, March 7, 2005
Introduction to Arrays. Arrays in Java. An Application: Fibonacci Numbers. An Application: Box Packing.
(26) Tuesday, March 8, 2005
Stacks and Their Implementation
Collections. Linear structures. The Stack ADT. Implementing stacks.
(27) Wednesday, March 9, 2005
Queues and Their Implementation
Review of homework. Queues, revisited. Problems with the array-based implementation. Implementing queues with nodes. Priority queues.
(28) Friday, March 11, 2005
Priority Queues
Priority queue basics. Applying priority queues. Implementing priorty queues.
Week 8: Algorithm Analysis
(29) Monday, March 14, 2005
Algorithm Analysis (1)
An Example: Exponentiation. Comparing Algorithms.
(30) Tuesday, March 15, 2005
Algorithm Analysis (2)
Example, revisited. Asymptotic Analysis. Asymptotic Analysis in Practice.
(31) Wednesday, March 16, 2005
Algorithm Analysis (3)
Review Lab The role of experimentation Using the notation: Eliminating constants Using the notation: Simplifying running times
(32) Friday, March 18, 2005
Discussion of Exam 1
General notes Calculators Questions
Spring Break
Week 9: Miscellaneous
(33) Monday, April 4, 2005
Heaps and Heap Sort
Review: Priority Queues. Trees. Tree Terminology. Heaps. Implementing Heaps.
(34) Tuesday, April 5, 2005
Lab on Heaps and Heap Sort
(35) Wednesday, April 6, 2005
(36) Friday, April 8, 2005
Dictionaries (1): The Dictionary ADT
Introduction to dictionaries Applications of dictionaries A Dictionary ADT Comparing dictionaries and databases Implementing dictionaries with arrays
Assignments: Exam 2
Week 10: Dictionaries
(37) Monday, April 11, 2005
Generics: Paramterized Types
Heterogenous vs. homogeneous types. Java's generic types (parameterized types). Using generic types in linear structures. Using generic types in dictionaries.
(38) Tuesday, April 12, 2005
Dictionaries (2): An Array-Based Implementation
Binary search trees. BSTs and dictionaries. Lab. Reflection.
(39) Wednesday, April 13, 2005
Dictionaries (3): Binary Search Trees
Binary search trees. BSTs and dictionaries. Lab. Reflection.
(40) Friday, April 15, 2005
Dictionaries (4): Hash Tables
The Idea of Hashing. Hash Functions. Hashing in Java. Handling Hashing Conflicts.
Due: Exam 2.
Week 11: Miscellaneous
(41) Monday, April 18, 2005
Dictionaries (5): Hash Table Lab
Short review. Lab.
(42) Tuesday, April 19, 2005
Vector philosophy. Vector methods. Lab.
(43) Wednesday, April 20, 2005
Pause for Breath
Time for lab.
(44) Friday, April 22, 2005
Continuing in CS
Week 12: Lists
(45) Monday, April 25, 2005
List ADTs
What else is a list? Two ways to iterate lists: Cursors and Positions Three kinds of lists: Simple, Ordered, and Sorted
(46) Tuesday, April 26, 2005
Implementing Lists with Arrays
(47) Wednesday, April 27, 2005
Linked Lists
(48) Friday, April 29, 2005
Discussion of Exam 2
Problem 1: Implementation Issues Problem 2: Making Change Problem 3: Randomized Lists Problem 4: Heaps
Week 13: Sorting
(49) Monday, May 2, 2005
An Introduction to Sorting
The problem of sorting Carefully specifying that problem Testing a sorting method
(50) Tuesday, May 3, 2005
Quadratic Sorts
Testing sorting Bubble sort, and why not to use it Selection sort Insertion sort
(51) Wednesday, May 4, 2005
Faster Sorts
Review Divide and conquer sorting Merge sort Iterative merge sort Asymptotic analysis of merge sort Quicksort Asymptotic analysis of Quicksort
(52) Friday, May 6, 2005
Distribution of Exam 3
Discussion of exam 3
Assignments: Exam 3.
Week 14: Wrapup
(53) Monday, May 9, 2005
Sorting Lab
A short lab
(54) Tuesday, May 10, 2005
An Overview of Computer Science
What is computer science? Revisited Key subfields of computer science
(55) Wednesday, May 11, 2005
Evaluation and Wrapup
Evaluations The subject matter of the course Final statements
(56) Friday, May 13, 2005
Discussion of Exam 3



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 May 11 10:55:20 2005.
The source to the document was last modified on Fri Jan 21 11:20:31 2005.
This document may be found at

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

Samuel A. Rebelsky,