CSCI 136 - Fall 2018

Data Structures & Advanced Programming

Home | Lectures | Labs | Handouts | 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 Williams proxy server (or VPN) to access these materials.

Note: The lecture schedule (cleverly) assumes that Mountain Day will occur on the first Friday of October. If it doesn't, subsequent lecture topics will be covered until Mountain Day finally occurs, after which the schedule of topics will proceed as indicated.

**The schedule may change as the semester progresses---check back regularly!**

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

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

12 Sept More on OOP in Java Student.java
TestStudent.java
Student2.java
TestStudent2.java
Lecture 3 Bailey: Chapter 1; Handouts: Java Class Types

14 Sept End of Java Review SimpleCards source code:
BasicCard.java
Card.java
CardRankSuit.java
Card52.java
Card52v2.java
Card413.java
CardDeck.java
Cards: Abstract Base Class
CardAbstract.java
CardRankSuit.java
Cards: Extending with Points
CardRankSuitPoints.java
Lecture 4 Bailey: Chapters 2,3

17 Sept Code Documentation; Vectors Cards: CardDeck.java
VecCardDeck.java
Association: Association.java
Array-based: Dictionary.java
Vector-based: VecDictionary.java
Histogram: WordFreq.java
Lecture 5 Bailey: Chapters 3, 7, 4

19 Sept Measuring Complexity WordFreq.java
Dictionary.java
GenWordFreq.java
Lecture 6 Bailey: Chapter 4, 5

21 Sept Recursion & Induction I Lecture 7
Bailey: Chapter 5 Induction Essentials
Problem Set 1

24 Sept Recursion & Induction II ReursiveMethods.java
Towers.java
LIS.java
Lecture 8
Bailey: Chapter 5

26 Sept Sorting I Lecture 9
Bailey: Chapter 6

28 Sept Sorting II:
Problem Set 1 Due Today!
LinearSearchGeneric.java
BinSearch.java
BinSearchAlt.java
BinSearchComparable.java
JavaArraysBinSearch.java
Lecture 10
Bailey: Chapter 6
Strong Induction
Problem Set 2

1 Oct Lists I Card.java
CardAbstract.java
CardRankSuit.java
CardRankSuitPoints.java
CardDeck.java
Rank.java
Suit.java
MergeSort.java
Lecture 11
Bailey: Chapter 9

3 Oct Lists II SLL.java
TestSLL.java
Lecture 12
Bailey: Chapter 9

5 Oct Problem Set 2 Due Today!
If Mountain Day, turn in by 6:00pm
???Mountain Day???

8-9 Oct Fall Reading Period

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

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

15 Oct Linear Structures: Stacks & Queues III and Iterators Lecture 15
Bailey: Chapter 10 & Chapter 8

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

19 Oct Iterators; Ordered Structures Count.java
FibonacciNumbers.java
EvenFib.java
SLLIterator.java
ReverseIterator.java
SkipIterator.java
TestIterator.java
Lecture 16
Bailey: Chapter 8 & Chapter 11

22 Oct Ordered Structures Lecture 17
Bailey: Chapter 11

24 Oct Trees I BinaryTreeCode.java
BinaryExpressionTree.java
BinExpTreeFromRPN.java
Lecture 18
Bailey: Chapter 12

26 Oct Trees II TreeVisitor.java
InfiniteQuestions.java
Lecture 19
Bailey: Chapter 12

29 Oct Trees III leftShift.java
Lecture 20
Bailey: Chapter 12

31 Oct Trees IV Huffman Encoding demo
Sample text: Tom Sawyer
Lecture 21
Bailey: Chapter 12

2 Nov Priority Queues VectorHeap.java Lecture 22 Bailey: Chapter 13 Problem Set 3

5 Nov Heaps & Heapsort Lecture 23
Bailey: Chapter 13

7 Nov Binary Search Trees I Lecture 24
Binary Search Tree Code Fragment
Bailey: Chapter 14

9 Nov Binary Search Trees II
Problem Set 3 Due Today!
Lecture 25
Bailey: Chapter 14

12 Nov Probability & Average Case Analysis Lecture 26
Bailey: Chapter 6

14 Nov Graphs I Lecture 27
Bailey: Chapter 15

16 Nov Graphs II Lecture 28
Bailey: Chapter 16

19 Nov Graphs III BFSComponentSize.java
DFSComponentSize.java
RecDFSComponentSize.java
Lecture 29
Bailey: Chapter 16

21-23 Nov Thanksgiving Break

26 Nov Graphs IV Lecture 30
Bailey: Chapter 16

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

30 Nov Graphs VI Dijkstra's algorithm
for finding a set of shortest paths from a given vertex
Lecture 32
Bailey: Chapter 16

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

5 Dec Maps & Hashing II NaiveProbing.java
Lecture 34
Bailey: Chapter 15

7 Dec Wrapping Up Lecture 35

17 Dec Final Exam: Time: 9:30 am in Physics 203