Resources 
Staff Contact Information 


Instructor
Curriculum Assistants: Fempke, Sreeja, Daniel 

Lecture Schedule 

Lecture 
Date 
Lecture Topic 
Readings ( Java = "Java in a Nutshell") 
Lecture Slides and Code Examples 
Homeworks and Tests 
Labs 
1 
M 5/23 
Overview of Course & Course Policies; Motivational Lecture: Two algorithms for searching an arrayalgorithm, implementation, analysis, and experiments 
Syllabus 
Lecture: PDF


2 
T 5/24  Introduction to Java: compiled languages (Java) vs interpreted languages (Python); types, operators, and expressions. Java statements, conditionals, and loops;  Read Chapter 2 of In At LearningJavaOnline: go through exercises for
Install Dr. Java from the Dr. Java Web Site and from the Help menu, read through the Tutorial on "Using Dr. Java, The Basics," OR look at the following YouTube video by Aaaron Stevens, one of our 111 instructors: YT You could also look at the following lectures on the topics for today: Stevens YouTube videos: 10, 17,18,25 If you get the message "'Dr Java.app' is damaged and cannot be opened. You should move it to the trash," go to System Preferences > Security & Privacy and change the "Allow apps" to "Anywhere." 
Lecture A: PDF Lecture B: PDF (we will see how far we get with this) 
HW 01: HTML Solution to Part A: HTML 

3 
W 5/25  Java statements, conditionals, and loops; break and continue; arrays; methods and fields and the structure of basic Java programs. Scope of local variables, fields, and methods. 

Used the board! 


4  R 5/26 
Java program structure continued: breaking a Java program into separate classes and separate files; more on scope (public vs private); static vs nonstatic members. 
PlPlease read about methods in the Java text; please read about the difference between local and instance variables here: HTML For scope of declarations, take a look at this set of notes: HTML Read "Classes and Objects" and "Java File Structure" in the Java text. 
Used the board!  HW 02: HTML HW 02 Part A Solution: HTML 

5  T 5/31  Analysis of algorithms, "Big TOh" notation, experimental verification by timing analysis; Interative sorting algorithms: Selection sort, Insertion sort Complexity analysis of iterative sorts;

With this lecture, we will start to use our main textbook. Please read Chapter 3. Here is a good Youtube tutorial on Selection Sort; Here is a good one on Insertion Sort. There are 1000's of Youtube lectures on sorting algorithms: here is a creepy visualization of Insertion Sort, and here is a downright strange visualization of Insertion sort. Here is a nice Youtube minilecture on sorting, with associated lectures on all the major sorting algorithms. 
Lecture: PDF B&W: PDF  HW 03: HTML Part A Solutions: HTML 

6  W 6/1  OOD and Abstract Data Types; Stacks and Queues  Chapter 4 of textbook.  Lecture: PDF (Ignore the material on Exceptions, we will do this later).  
8  R 6/2  Queues implemented as Ring Buffers 
Read the first half of the Wiki Article on Circular Buffers ("How it works" and look at the animated gif). 


9  F 6/3  Deques and Priority Queues; Reference types  Read the section on Reference Types (pp.7481) CAREFULLY in the Java Text.  HW 04: HTML There was no Part A for this homework. 

10  M 6/6  Linked Lists 
Chapter 5 of textbook. There are probably 1000 videos on YouTube about Linked Lists, take a look...... You might want to check out the classic Binky Pointer Fun video on YT, but bear in mind it is written for a different language (C or C++).


11  T 6/7  Stacks and Queues with LLs. Java: Generics

Here is a very short, clear tutorial on Linked Lists: YouTube There are a number of such tutorials on YouTube, so look around a bit for others if you wish! 
Lecture: PDF  HW 05: HTML Part A Solutions: HW05ASolutions.java Part B Solutions: HW05Solution.java Here are some practice problems (with solutions) on pointers: PDF 

12  W 6/8  Basics of List Processing: Iterative Algorithms;

Notes on Iterative LL Algorithms  Used the board!  
13  R 6/9  Iterative LL algorithms; Structure of Java Programs using LLS: ADT and Static Library Examples.  Used the board!  Midterm Study Guide: HTML Sample Midterms: 2013: PDF 2014: PDF WARNING: These exams are provided as samples of the FORMAT and general type of exams and the answers I would expect. Some topics covered in the exams above were not covered this year (or not yet) and so you should not use these as practice problems. For that, use the Part A solutions above. For example, the exams cover recursion, but we will not have recursion on the exam. 

14  M 6/13  MIDTERM EXAM 
Midterm Solution: PDF 

HW 06: HTML (No Part A) 

15  T 6/14  Java: Generics, Exceptions, Recursive algorithms on LLs  Chapters 6 and 7 in textbook  
16  W 6/15 
Recursive algorithms on LLs;  Chapter 6 in textbook 
Used the board!  
17  R 6/16  Recursive algorithms on LLs; Doublylinked lists, multilists.  HW 07: HTML Part A Solution: HTML 

18  M 6/20  Binary Trees, Binary Search Trees; Searching, Insertion, and Deletion in BSTs.

Chapter 8 in textbook 
Lecture: PDF  
19  T 6/21  Recursive tree traversals; Iterative tree traversals using an explicit stack  Chapter 8 in textbook Please read the following WikiP article on Tree Traversals: HTML and follow the link to read about breadth first search. 
Lecture: PDF  
20  W 6/22  23 Trees; BTrees and external data structures  Chapter 10 in textbook Here is a good explaination of 23 Tree Insertions: YT Here is a good animation you can play with to verify your understanding: HTML

Lecture: PDF  
17  R 6/23  The (nearly) Perfect Data Structure; Perfect Hashing, Hash Functions; Hash Tables with Separate Chaining; Hash Tables with  Chapter 11 in textbook, first four sections (Introduction through Hashing Efficiency) 
Used the board! 
HW 08: HTML Solution: HTML 

18  M 6/27  Linear Probing; Performance of Hash Tables Array representation of binary trees; Binary Heaps, 
Chapter 12 in textbook  I will use the board for the lecture on heaps. There are many videos about binary heaps, here is a good one: YT 

19  T 6/28  Finish Binary Heaps; Heapsort; Graphs: Basic notions, graph traversals: depth first, breadth first 
Chapter 13 in textbook  Lecture: PDF
Search for "undirected graph" on YouTube, if you want to see some lectures, there are 1000's! 

20  W 6/29  Graph traversals concluded; summary and review for final exam. 


21  R 6/30  Final Exam 