CS 112 - Introduction to CS II - Fall 2014


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


Announcements, Times, and Places

Staff Contact Information

Announcements:   

  • HW08 is posted and is due Wednesday, 12/10 at midnight.

Tutoring and Office Hours Schedule:   

  • Click here to see the weekly schedule and locations;

Piazza Link

CS 112 Staff:

Click on the picture for a larger version with names!

CS 112 Staff Mailing List: cs112-staff-list@bu.edu

Instructor

Wayne Snyder
      Email: waysnyder@gmail.com

     Office: MCS 147
     Office Hours: T 4-6 (see here for my office hours for general CS issues)
      Cell Phone: 617 - 966 - (210 + 41) (email vastly preferred)

Teaching Fellows:

Mikhail ("Mike") Breslav (breslav@bu.edu)

Wenxin Feng (wenxinf@bu.edu)

Course Assistants and Labs

  • A2 (Thurs 3-4): Sana Nagar (snagar@bu.edu)
  • A3 (Thurs 5-6): Andrew Tarrh (atarrh@bu.edu)
  • A4 (Thurs 6-7): Daniel Monahan (monahand@bu.edu)
  • A5 (Fri 10-11): Beth Becker (bethb42@bu.edu)
  • A6 (Fri 11-noon): Mahir Gulrajani (mahirkg@bu.edu)

Resources



Course Schedule

Back to Top

Lecture
Date
Lecture Topic
Readings (mostly from Sedgewick & Wayne)
Lecture Slides and Code Examples
Homeworks and Tests
Labs
1
T 9/2

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

Syllabus; pp.8-38, 80-81 as needed

Lecture01.pdf

SequentialSearch.java, BinarySearch.java

   
2
R 9/4 Abstract Data Types: Object-Oriented Design, and Interfaces

pp.64-66, 74-75, 84-89; also Google "Java Interfaces" and read the top link.

Lecture02.pdf

 

   
3
T 9/9 Collection ADT; advanced array manipulation: arrays as objects, references, & resizing; Stack ADT. pp. 18-19 (review of Java arrays); Chapter 1.3 up to p.137 (but ignore the stuff about generics and iterators)

Lecture03.pdf

StackClient.java

HW01: HTML

StarterCode for B.2

CollectionGradingClient.java

DequeGradingClient.java

HW01.PartA.Solution: HTML

 
4
R 9/11 The Queue ADT; circular buffer implementation; Priority Queue ADT. Wikipedia article on "Circular Buffers"

 

Lecture04.pdf

QueueClient.java (ring buffer queue)

 

Lab01 (Postfix Evaluator): HTML

PostfixCalculator.java

 

5
T 9/16 Polymorphic ADTs; Generic classes; Generic classes satisfying an interface; Introduction to sorting: Iterative sorts: Insertion & selection sort;

 Polymorphic ADTs and Java Generics  

Reading:  pp.122-123; 134-135 plus: this and  this

Sorting: Reading: 244-253.

Lecture05.pdf

ObjectStack.java

GenericStack.java

 

   
6
R 9/18

Analysis of algorithms, "Big Theta" notation, experimental verification of timing analysis;

Lexicographic order and sorting; stability of sorting algorithms.

pp.178-179

Google “lexicographic order” and read the definition.....

and then Google “Sorting” and read the section on “Stability”

Lecture06.pdf HW02: HTML (due W 9/24)

PriorityQueueGradingClient.java

Grapher.java

Solution Graph for Problem B.3: PNG

HW02.PartA.Solution: HTML

Lab 02 (Java Generics): HTML

GenericsTest.java

7
T 9/23 Recursion Review your CS 111 materials; read my Notes on Recursion. Lecture07.pdf    
8
R 9/25 Recursive sorts: Mergesort and Quicksort; analysis and experiments. pp.270-277; 288-292 Lecture08.pdf

HW03: HTML

Code Distribution: ZIP

RecursiveGraphics.java

StdDraw.java

HW03.PartA.Solution: HTML

Lab 03 (Debugging): HTML
9
T 9/30 Introduction to Linked Lists; Stacks and Queues with LLs; Generics and LLs. pp.142-153 Lecture09.pdf    
10
R 10/2 Basics of List Processing; Iteration vs Recursion   Used the board!

HW04: HTML

Solution to Part A: JAVA

Lab 04 (Linked List Processing): HTML
11
T 10/7 Recursive algorithms on LLs

  Notes on Recursion and LLs

Used the board and the lecture notes to the left!  

 

 

12
R 10/9 Recursive algorithms on LLs

  Notes on Recursion and LLs

Used the board and the lecture notes to the left! Here are the slides on Exceptions: PPT

HW05: HTML

No Part A!

Lab 05 (Exceptions): HTML
T 10/14 Monday Schedule: NO CLASS      

13
R 10/16 Binary Trees, Binary Search Trees pp.396-414; BinaryTreeCode.htm Lecture13.pdf  

Lab 06: HTML

14
T 10/21 Recursive Algorithms on BSTs; Recursive tree traversals; Iterative tree traversals using an explicit stack pp.396-414; Please look at the following Wiki Article: HTMLBinaryTreeCode.htm Lecture14.pdf

HW06: HTML

HW06 Part A Solution: HTML

 

15
R 10/23 Performance of BSTs; 2-3 Trees

pp.424-431; there are also various Java Applets on the web which will demonstrate how insert works!

Lecture15.pdf   Lab 07: HTML
16
T 10/28 2-3 Trees concluded; B-Trees and external data structures; Array representation of binary trees;

pp. 313 - 316 on binary heaps

Used the board!    
17
R 10/30 Binary Heaps, Heapsort; Comments on Midterm

pp. 313 - 316 on binary heaps;

Midterm Study Guide: HTML

Used the board!

MaxHeap.java

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

No HW this next week; study for the midterm exam! No lab this week!
18
T 11/4 Midterm Exam  

 

Midterm study guide is above in Announcements.

 

 

19 R 11/6 The (nearly) Perfect Data Structure; Perfect Hashing, Hash Functions; Hash Tables with Separate Chaining  

Used the board!

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

  Lab08: HTML
20 T 11/11 Hash Tables with Linear Probing; Performance of Hash Tables  

Used the board!

Here is the code for Linear Probing that I put on the board: JAVA

HW07: HTML

Part A Solution: HTML

Short note on Cosine Similarity: HTML

 
21 R 11/13 Presentation of HW 07     Lab09: HTML
22 T 11/18 Directed Graphs and State Space Search   Lecture22.pdf    
23 R 11/20 Game trees: adversary search; implementation issues; example Tic-Tac-Toe program Reading on MinMax Search and AB-Pruning

Lecture23.pdf

TicTacToe.java

  Labs are tutoring hours for homework.
24 T 11/25 Presentation of final project   HW08: HTML  
    Thanksgiving Break!        
25 T 12/2 Alpha-beta pruning and refinements to game-tree search; Reading on MinMax Search and AB-Pruning Lecture 25.pdf    
26 R 12/4 Directed Graphs continued; Undirected graphs   Lecture26.pdf   No Labs!
27 T 12/9 Undirected graphs concluded and course review        
  R 12/18 Final Exam 12:30-2:30      

Back to Top