CS 112 - Introduction to CS II - Summer II, 2014


[ Announcements, Times, and Places | Staff Contact Information | Course Schedule ]


Announcements, Times, and Places

Staff Contact Information

Announcements:   

  • HW 05 posted below, due Friday at midnight

Resources:   


     

Instructor

Wayne Snyder
      Email: waysnyder@gmail.com

     Office: MCS 147
     Office Hours: Hour after class
      Cell Phone: 617 - 966 - (2^10 + 41) (email vastly preferred)

Teaching Fellows:

Raman Bahdanouski (romanb@bu.edu)

 

 



Course Schedule

Lecture
Date
Lecture Topic
Readings (mostly from Sedgewick & Wayne)
Lecture Slides and Code Examples
Homeworks and Tests
Labs
1
M 6/30

Overview of Course & Course Policies; Motivational Lecture: Two algorithms for searching an array---algorithm, implementation, analysis, and experiments

Syllabus;

Lecture01.pdf

ListSearch.java

   
2
T 7/1 Abstract Data Types: Object-Oriented Design, Interfaces, and the Collection ADT; array implementation and algorithms.

Section 1.2 up to p.89; web reading on interfaces: HTML

 

Lecture02.pdf

CollectionClient.java

CollectionClientUsingInterface.java

Homework One (due Thursday 7/3 @ midnight): HTML

Code Distribution:

Grading Clients:

Solution (Part A): HTML

Lab 01: HTML

Code Distribution:

3
W 7/2 Collection ADT continued: advanced array manipulation: arrays as objects, references, & resizing. Stacks, Queues, & Priority Queue ADTs Chapter 1.3 up to p.137 (but ignore the stuff about generics and iterators);

No lecture notes (used the board);

StackClient.java

 

 
4
R 7/3 Implementing the Queue and Priority Queue ADTs with circular buffers Wikipedia article on "Circular Buffers"

 

Lecture04.pdf

QueueExample.java (ring buffer queue)

HW02: HTML (due T 7/8)

Test Clients:
HW02P1Test.java
HW02P2Test.java
HW02P3Test.java
HW02P4Test.java

 

 

5
M 7/7 Polymorphic ADTs; Java Generics

pp.122-23; 134-35; plus: JavaPolymorphism;
Java Generics

 

 

 
6
T 7/8 Introduction to sorting: Iterative sorts: Insertion & selection sort; analysis of algorithms, "Big Theta" notation, experimental verification of timing analysis.   Lecture.pdf    
W 7/9

Class cancelled

 

       
7
R 7/10 Recursion Review your CS 111 materials; read my Notes on Recursion. Lecture.pdf

HW03: HTML (due M 7/14)

Grapher.java

Part A Solution: HTML

Solution Graph: PNG

Lab 2 is in HW 03
8
M 7/14 Recursive sorts: Mergesort and Quicksort; analysis and experiments. pp.270-277; 288-292 Lecture.pdf    
9
T 7/15 Introduction to Linked Lists; Exceptions pp.142-153; also read Exceptions in Java Tutorials: HTML Lecture.pdf

HW 04: HTML (due F 7/18)

Part A Solution: HTML

Lab 03: HTML
10
W 7/16 Iterative algorithms on Linked Lists; Stacks and Queues using LLs

Notes on Iterative Linked List algorithms;

 

Used the board for most, but here is a PPT on stacks and queues: Lecture.pdf

StackLinkedList.java

QueueLinkedList.java

 

 

 

11
R 7/17 Recursive algorithms on LLs

  Notes on Recursion and LLs

Used the board!

   
12
M 7/21 Midterm     HW 05: HTML (due F 7/25)

13
T 7/22 Binary Trees, Binary Search Trees pp.396-414; BinaryTreeCode.html Lecture: PDF  

Lab 04: HTML

14
W 7/23 Recursive Algorithms on BSTs pp.396-414;      
15
R 7/24 Recursive tree traversals; Iterative tree traversals using an explicit stack

Please look at the following Wiki Article: HTML

Practice Problems: HTML

HW 07: HTML (due R 7/31)  
16
M 7/28 Performance of BSTs; 2-3 Trees

 

Lecture 15.pdf    
17
T 7/29 Array representation of binary trees, Heaps, Heapsort  

MaxHeap.java

Here is how heapSort does compared to the other algorithms: Avg, Worst

 

 

Lab08: HTML

18
W 7/30 The (nearly) Perfect Data Structure; Perfect Hashing, Hash Functions; Hash Tables with Separate Chaining  

Used the board: Here is a cleaned up version of the lecture code: HashTableSC.java

Here is a summary: How to Implement Hash Tables in Five Minutes or Less: HTML

   
19
R 7/31 Hash Tables with Linear Probing   Used the board: Here is a cleaned up version of the lecture code: HashTableLP.java HW 08 handed out, to completed by teams of two people.  
20
M 8/4 Game trees: min-max trees, adversary search; implementation issues Reading on MinMax Search and AB-Pruning Lecture22: PDF    
21
T 8/5 Alpha-beta pruning and other refinements of MinMax; Example of TicTacToe program; Reading on MinMax Search and AB-Pruning Lecture23: PDF    
22
W 8/6 Undirected Graphs: Basic Notions; Depth-first search, connected components; implementation issues   Lecture19: PDF    
23
R 8/7   Lecture21: PDF    

Back to Top