Course Links




Note:  Lecture notes and lab assignment handouts may not be posted for all the classes. Information posted before the actual lecture or lab meeting is only tentative and may be changed at any time by the professor. Readings are for reference and are intended to provide an alternative viewpoint of the topics covered in class; they are not meant as a substitute for class attendence. The Murach text includes examples that may not exactly match the techniques shown in class; feel free to skim over them.

This schedule may prove too optimistic, and therefore might be pushed back as the semester goes on.

Day Topic Reading Notes
1 Intro to Java Murach: Chapter 2; review/skim rest of Section 1 (Chapters 1-5)  
2 Java Classes Murach: Chapter 7  
3 Inheritance, Interfaces, & Abstract Window Toolkit Murach: Chapters 8-9  
4 Graphical User Interfaces Murach: Chapters 15-16  
5 Layout & GUI Design Murach: Chapter 17  
6 Linked Lists Drozdek: Chapter 3  
7 Iterators    
8 Stacks Drozdek: Chapter 4  
9 Stack Applications & Implementation; Generics Murach: Chapter 12 Midterm
10 Queues & Exceptions Drozdek: Chapter 4; Murach: Chapter 14  
11 Sorting Drozdek: Chapter 9  
12 Program Analysis & Complexity Drozdek: Chapter 2  
13 Recursion Drozdek: Chapter 5  
14 Recursive Algorithms & I/O Murach Chapter 18  
15 Introduction to Trees Drozdek: Chapter 6 OTELIA CROMWELL DAY
16 Prefix Trees, Arithmetic Expression Trees, Tree Subclassing  
17 Tree Traversal & Decision Trees Drozdek: Chapter 6 (6.4, 6.10); Chapter 7 NRH Travel; Guest Lecture
18 Maps & Hash Tables Drozdek: Chapter 10 NRH Travel; Remote Lecture
19 Binary Search Trees Drozdek: Chapter 6 (6.2-6.3, 6.5-6.8) NRH Travel; Guest Lecture
20 Heaps Drozdek: Chapter 6 (6.9)  
21 Introduction to Graphs Drozdek: Chapter 8  
22 Graph Implementation Drozdek: Chapter 8 (8.1)  
23 Graph Traversal Drozdek: Chapter 8 (8.2-8.6)  
24 Advanced Graph Algorithms Drozdek: Chapter 8 (8.7-8.13))  
25 Final Review   Self-scheduled final

Note: Chapters 1-5 of Murach cover concepts that should be familiar to you from Python, but you may wish to review the differences in Java syntax.