CSCI 136 - Fall 2017

Data Structures & Advanced Programming

Home | Lectures 10am 11am | Labs | Handouts & Problem Sets | Links | CS@Williams

Lecture Notes and Examples

Links to lecture slides and files will be available after class on the date shown. You must be on-campus or using the proxy server to access these materials.

**The schedule may shift as the semester progresses.

Date Lecture Examples Slides Reading
8 Sept Welcome & Java Recap Hello.java
Lecture 1 Bailey: Chapter 0; Handouts: Syllabus, Java Essentials

11 Sept Object-Oriented Programming in Java Sum0.java
Sum1.java
Sum2.java
Sum3.java
Sum4.java
Sum5.java
Lecture 2 Bailey: Chapters 1, 7

13 Sept More on OOP in Java Student.java
TestStudent.java
Lecture 3 Bailey: Chapter 1

15 Sept Java Review, Interfaces SimpleCards source code:
BasicCard.java
Interface & implementations:
Card.java
CardSuitRank.java
Card52.java
Card52v2.java
Card413.java
CardDeck.java
Lecture 4 Bailey: Chapters 2,3
Handouts: Java Class Types

18 Sept Object, Associations, & Vectors Card Deck:
CardDeck.java
VecCardDeck.java
Association:
Association.java
Word Frequency:
WordFreq.java
Gettysburg.txt
Dictionary:
Dictionary.java
VecDictionary.java
Lecture 5 Bailey: Chapters 3, 7, 4

20 Sept Vectors, Generics, & Style Non-Generic:
WordFreq.java
Generic:
GenWordFreq.java
Lecture 6
Bailey: Chapter 3, 4

22 Sept Lists I Bailey Assert:
CardAbstract.java
Java Assert:
CardAbstract.java
Lists:
SLL.java
Lecture 7
Bailey: Chapter 9

25 Sept Lists II Extending Classes:
CardAbstract.java
CardRankSuit.java
CardRankSuitPoints.java
Lecture 8
Bailey: Chapter 9

27 Sept Time & Space Complexity Lecture 9 Bailey: Chapter 5.1

29 Sept Recursion & Induction I
Problem Set 1 (due 11:00pm October 5
ReursiveMethods.java
Towers.java
Lecture 10
Bailey: Chapter 5
Handouts: Induction Essentials

02 Oct Recursion & Induction II Chain.java
Lecture 11
Bailey: Chapter 5

04 Oct Sorting I Card.java (extends Comparable)
CardAbstract.java(implements compareTo())
CardDeck.java
LinearSearchGeneric.java
BinSearch.java
BinSearchAlt.java
BinSearchComparable.java
JavaArraysBinSearch.java
Lecture 12
Bailey: Chapter 6

6 Oct Sorting II
Problem Set 2 (due 11:00pm October 12
Merge.java
MergeSort.java
Lecture 13
Bailey: Chapter 6
Handouts: Second Principle of Mathematical Induction

9-10 Oct Fall Reading Period

11 Oct Linear Structures: Stacks & Queues I Lecture 14
Bailey: Chapter 10

13 Oct !!!Mountain Day!!!

16 Oct Linear Structures: Stacks & Queues II Position.java
Maze.java
Solver.java
RecSolver.java
Lecture 15
Bailey: Chapter 10

18 Oct Mid-term exam during lab: No class meeting

20 Oct Linear Structures: Stacks & Queues III; Iterators Count.java
FibonacciNumbers.java
SLLIterator.java
Lecture 16
Bailey: Chapter 10 & Chapter 8

23 Oct Iterators; Ordered Structures ReverseIterator.java
SkipIterator.java
TestIterator.java
Lecture 17
Bailey: Chapter 8 & Chapter 11

25 Oct Ordered Structures Lecture 18
Bailey: Chapter 11

27 Oct Trees I BinaryTreeCode.java
InfiniteQuestions.java
Lecture 19
Bailey: Chapter 12

30 Oct Trees II TreeVisitor.java
Lecture 20
Bailey: Chapter 12

1 Nov Trees III Huffman Encoding demo
To run, type: java -classpath huffman.jar HuffmanDemo VectorHeap.java
Lecture 21
Bailey: Chapter 12

3 Nov Trees IV Lecture 22
Bailey: Chapter 12

6 Nov Priority Queues Online Heap Demo Lecture 23
Bailey: Chapter 13

8 Nov Heaps & Heapsort BinarySearchTree.java Lecture 24
Bailey: Chapter 13

10 Nov Binary Search Trees I Lecture 25
Bailey: Chapter 14

13 Nov Binary Search Trees II Binary.java Lecture 26
Bailey: Chapter 14

15 Nov Graphs I Graph Practice Lecture 27
Bailey: Chapter 15

17 Nov Graphs II BFSComponentSize.java
DFSComponentSize.java
RecDFSComponentSize.java
Lecture 28
Bailey: Chapter 16

20 Nov Graphs III Lecture 29
Bailey: Chapter 16

22-24 Nov Thanksgiving Break

27 Nov Graphs IV Lecture 30
Bailey: Chapter 16

29 Nov Graphs V Prim's algorithms
for finding a minimum-cost spanning tree in a connected graph
Lecture 31
Bailey: Chapter 16

1 Dec Graphs VI Prims's algorithm
for finding a minimum-cost spanning tree
Dijkstra's algorithm
for finding a set of shortest paths from a given vertex
Lecture 32
Bailey: Chapter 16

4 Dec Maps & Hashing I Lecture 33
Bailey: Chapter 15

6 Dec Maps & Hashing II Optional readings (not on exam):
[A Cool And Practical Alternative to Traditional Hash Tables]
[Cuckoo Hashing for Undergraduates]
[Space/Time Trade-offs in Hash Coding with Allowable Errors]
[Don't Thrash: How to Cache Your Hash on Flash]
Hashing Applications (not on exam)
Bailey: Chapter 15

8 Dec Wrapping Up Lecture 35

14 Dec Final Exam: 9:30-noon in Biology 112