CSCI 136 - Fall 2019

Data Structures & Advanced Programming

Home | Bill's Lectures | Sam's Lectures | Labs | Handouts & Problem Sets | Links | CS@Williams

Sam's (10 am) 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
6 Sept Welcome & Java Recap Hello.java
Hello2.java
Hello3.java
Hello4.java
Sum1.java
Sum2.java
Sum3.java
Sum4.java
Sum5.java
Lecture 1 Bailey: Chapter 0
Handouts: Syllabus, Java Essentials

9 Sept Object-Oriented Programming in Java No-Object Nim Lecture 2

11 Sept More on OOP in Java Object Nim
toString Nim
Student.java
TestStudent.java
Student2.java
TestStudent2.java
TrackTitles
Lecture 3 Bailey: §§1.1-1.4
Handouts: Java Class Types I
BasicCard.java

13 Sept End of Java Review Dictionary.java
TrackTitles.java
trackList.xml
Track.java
TrackList.java
Catalog.java
TrackParser.java
Lecture 4 Bailey: §§1.5-1.10

16 Sept Code Documentation; Vectors Vector-based: DictionaryVector.java
Histogram: WordFreq.java
Lecture 5 Updated on 9/16 at 9:50 am (added leftover slides from Lecture 4) Bailey: Chapter 3

18 Sept Measuring Complexity GenWordFreq.java
Lecture 6 Updated on 9/18 at 9:50 am (added leftover slides from Lecture 5) Bailey: Chapters 2, 4; § 5.1

20 Sept Recursion & Induction I Lecture 7 Updated on 9/20 at 7:00 pm (small typos) Bailey: §§ 5.2-5.4
Handouts: Induction Essentials
Problem Set 1

23 Sept Recursion & Induction II ReursiveMethods.java
Towers.java
LIS.java
Lecture 8
Updated on 9/23 at 12:10 pm (small typos and formatting)
Same as above

25 Sept Sorting I BasicCard.java
Rank.java
Suit.java
Card.java
CardRankSuit.java
Card52.java
BinSearch.java
BinSearchComparable.java
Lecture 9
Bailey: §§ 6.1-6.4; §§7.1-7.3
Handouts: Java Interfaces
CardsWithInterface

27 Sept Sorting II:
Problem Set 1 Due Today!
JavaArraysBinSearch.java
MergeSort.java
Lecture 10
Bailey: §§ 6.4-6.9
Strong Induction
Problem Set 2

30 Sept Lists I Comparator examples
FindShortestString.java
MinElem.java
Card classes
Card.java
CardAbstract.java
CardRankSuit.java
CardRankSuitPoints.java
CardDeck.java
Rank.java
Suit.java
Lecture 11
Bailey: §§9.1-9.4

2 Oct Lists II CardsWithAbsBase CardsWithPoints Lecture 12
Bailey: §§9.5-9.7 Handouts: Java Inheritance

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

7 Oct Linear Structures: Stacks & Queues I Lecture 13
Updated on 10/4 at 8:21 am (Added Announcements slide)
Bailey: §§10.1-10.2

9 Oct Linear Structures: Stacks & Queues II Position.java
Maze.java
Solver.java
RecSolver.java
Lecture 14
Bailey: §10.2

11 Oct Linear Structures: Stacks & Queues III and Iterators Count.java
FibonacciNumbers.java
Overflow.java
ReverseIterator.java
SkipIterator.java
StackEx.java
TestIterator.java
Lecture 15
Bailey: §10.3 & Chapter 8

14-15 Oct Fall Reading Period

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

18 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

21 Oct Ordered Structures Lecture 17
Bailey: Chapter 11

23 Oct Trees I BinaryTreeCode.java
BinaryExpressionTree.java
BinExpTreeFromRPN.java
Lecture 18
Bailey: §§12.1-12.4

25 Oct Trees II Lecture 19
Bailey: §§12.4-12.6

28 Oct Trees III LeftShift.java
TreeVisitor.java
Lecture 20
Bailey: §§12.6-12.7

30 Oct Trees IV Lecture 21
Bailey: §§12.8-12.10

1 Nov Priority Queues VectorHeap.java Lecture 22 Bailey: §§13.1-13.4.1 Problem Set 3

4 Nov Heaps & Heapsort Lecture 23
Bailey: §§13.4.1-13.4.3

6 Nov Binary Search Trees I Heapsort Example
Lecture 24
Bailey: §§14.1-14.4

8 Nov Binary Search Trees II
Problem Set 3 Due Today!
BinarySearchTree.java

Binary Search Tree examples:
AVL Tree
Red-black tree
Splay tree
Lecture 25
Bailey: §§14.4-14.8

11 Nov Graphs I Lecture 26
Bailey: §16.1, 16.4.1

13 Nov Graphs II Lecture 27
Bailey: §16.2

15 Nov Graphs III Lecture 28
Bailey: §16.3

18 Nov Graphs IV Lecture 29
Bailey: §16.3

20 Nov Graphs V Lecture 30
Bailey: §16.3

22 Nov Graphs VI Example from board
Lecture 31
Bailey: §§16.4.2-16.4.4

25 Nov Graphs VII Prim's example
Example from board

Dijkstra's implementation
Prim's implementation
Large graph for testing
Small graph for testing
Lecture 32
Bailey: §16.4.5

27-29 Nov Thanksgiving Break

2 Dec Maps & Hashing I Dijkstra's example
GetHash.java
Board photo
Lecture 33
Bailey: §§15.1-15.4

4 Dec Maps & Hashing II Lecture 34
Bailey: §§15.4-15.7

6 Dec Wrapping Up Lecture 35

Date TBD Final Exam: Time: Monday, Dec. 16, 9:30—noon. Location: TCL 123 (Wege)