CSCI 136 - Fall 2019

Data Structures & Advanced Programming

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

Bill's (9 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
Updated on 9/9 at 10:27 am (minor formatting)

11 Sept More on OOP in Java Object Nim
toString Nim
Student.java
TestStudent.java
Student2.java
TestStudent2.java
TrackTitles
Lecture 3
Updated 9/11 at 10:00 am: minor typos
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
Updated 10/14 at 10:10 am: error in description of static)
Bailey: §§1.5-1.10

16 Sept Code Documentation; Vectors Vector-based: DictionaryVector.java
Histogram: WordFreq.java
Lecture 5
Updated 9/17 at 5:45 pm: Minor edits
Bailey: Chapter 3

18 Sept Measuring Complexity GenWordFreq.java
Lecture 6
Updated 9/19 at 11:53 am: Minor edits
Bailey: Chapters 2, 4; § 5.1

20 Sept Recursion & Induction I RecursiveMethods.java
Towers.java
Lecture 7
Bailey: §§ 5.2-5.4
Handouts: Induction Essentials
Problem Set 1

23 Sept Recursion & Induction II ReursiveMethods.java
Towers.java
LIS.java
Lecture 8
Same as above

25 Sept Sorting I BasicCard.java
Rank.java
Suit.java
Card.java
CardRankSuit.java
Card52.java
Card52v2.java
BinSearch.java
BinSearchComparable.java
Lecture 9
Updated 9/25 at 10:08 am: Minor edits
Bailey: §§ 6.1-6.4; §§7.1-7.3
Java Interfaces

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 Card.java
CardAbstract.java
CardRankSuit.java
CardRankSuitPoints.java
CardDeck.java
Rank.java
Suit.java
MergeSort.java
Lecture 11
Updated 10/2 at 8:15 am: Minor edits
Bailey: §§9.1-9.4
Handouts: Java Inheritance

2 Oct Lists II Node.java
SLL.java
TestSLL.java
Lecture 12
Updated 10/2 at 8:15 am: Minor edits
Bailey: §§9.5-9.7

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
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 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
Updated 10/18 at 10:34 am: Minor edits
Bailey: Chapter 8 & Chapter 11

21 Oct Ordered Structures Lecture 17
Updated 10/21 at 10:10 am: Minor edits
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
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 Binary Search Tree Code Fragment
Lecture 24
Bailey: §§14.1-14.4

8 Nov Binary Search Trees II
Problem Set 3 Due Today!
Lecture 25
Updated 11/8 at 8:45 am: Minor edits
Bailey: §§14.4-14.8

11 Nov Graphs I Lecture 26
Updated 11/11 at 10:30 am: Minor edits
Bailey: §16.1, 16.4.1

13 Nov Graphs II Lecture 27
Bailey: §16.2

15 Nov Graphs III BFSComponentSize.java
DFSComponentSize.java
RecDFSComponentSize.java
Lecture 28
Bailey: §16.3

18 Nov Graphs IV MapDemo.java
Lecture 29
Bailey: §16.3

20 Nov Graphs V Lecture 30
Bailey: §16.3

22 Nov Graphs VI FindComponents.java
ShortestPathsByEdgeCount.java
Lecture 31
Bailey: §§16.4.2-16.4.4

25 Nov Graphs VII Dijkstra's algorithm
for finding a set of shortest paths from a given vertex Prims's algorithm
for finding a minimum-cost spanning tree
Lecture 32
Bailey: §16.4.5

27-29 Nov Thanksgiving Break

2 Dec Maps & Hashing I NaiveProbing.java GetHash.java Lecture 33
Updated 12/3 at 11:05 am: minor typos
Bailey: §§15.1-15.4

4 Dec Maps & Hashing II Lecture 34
Updated 12/4 at 11:05 am: minor typos
Bailey: §§15.4-15.7

6 Dec Wrapping Up Lecture 35
Updated 12/6 at 8:45 am: minor typos

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