Course Schedule
This schedule is tentative and subject to change. The readings are from the course textbook(Koffman/Wolfgang). Keep in mind that the slides may not include all the material discussed in lecture. You are responsible for any material we present in lecture, even if it does not appear in the posted slides.
| Week | Topics | Reading | Slides/Code | Work |
|---|---|---|---|---|
| Week #1 Aug 28 |
Introduction to OOP (Abstraction, Encapsulation), Java Language Features (Enumeration, Generics, Enhanced for Loop, etc.). |
Chapters 1.2, 4.1→4.3, Appendix A |
Lect1 (1page,
2page) Lect2 (1page, 2page) JavaExamples01.jar |
Eclipse installation |
|
Week #2 Sep 4 |
Program Correctness (Errors, Exceptions, Debugging), Algorithm Complexity (Benchmarks, Big-O) |
Chapters 2.1, 2.6, 2.8 |
Lect3 (1page,
2page) Lect4 (1page, 2page) JavaExamples02.jar |
Project #1 Out (Fri/Sep 8) |
|
Week #3 Sep 11 |
Algorithm Complexity (Critical Sections), Java Collections, Linear Data Structures (Linked lists, Stacks, Queues) |
Chapters 2.8, 4, 5, 6 |
Lect5 (1page,
2page) Lect6 (1page, 2page) Lect7 (1page, 2page) JavaExamples03.jar |
Quiz #1 (Wed/Sep 13) Project #1 Due (Fri/Sep 15) HW #1 Out (Fri/Sep 15) |
|
Week #4 Sep 18 |
Recursion, Sets, Maps, Generic Classes |
Chapters 7, 8.1, 9.1, 9.2, 9.5 |
Lect8 (1page,
2page) Lect9 (1page, 2page) JavaExamples04.jar 09-SetsMapsGenericsCode.jar |
Quiz #2 (Wed/Sep 20) Project #2 Out (Fri/Sep 22) HW #1 Due (Wed/Sep 20) |
|
Week #5 Sep 25 |
Hashing, Trees, Binary Search Trees, Heaps, Priority Queues |
Chapters 8.1→8.5, 9.3→9.5, 10.8 |
Lect10 (1page,
2page) Lect11 (1page, 2page) Lect12 (1page, 2page) |
Project #2 Due (Fri/Sep 29) |
|
Week #6 Oct 2 |
Compression, Huffman Trees, Software Development, Software Life Cycle |
Chapters 1.1, 8.6 |
Lect13 (1page,
2page) Lect14 (1page, 2page) |
Midterm #1 (Wed/Oct 4) Project #3 Out (Wed/Oct 4) |
|
Week #7 Oct 9 |
Software Process Models, Problem Specification, Problem Design, Program Testing | Chapters 1.1, 1.3, 2.5 |
Lect15 (1page,
2page) Lect16 (1page, 2page) Lect17 (1page, 2page) |
Project #3 Due (Fri/Oct 13) Project #4 Out (Fri/Oct 13) |
|
Week #8 Oct 16 |
Object-Oriented (OO) Design, Unified Modeling Language (UML) |
Chapters 1.4→1.7, 3, Appendix B |
Lect18 (1page,
2page) Lect19 (1page, 2page) Lect20 (1page, 2page) |
Quiz #3 (Wed/Oct 18) Project #4 Due (Fri/Oct 20) Project #5 Out (Fri/Oct 20) |
|
Week #9 Oct 23 |
Java Support for OOP, Graphs, Graph Representations, Traversals, Shortest Path Algorithm |
Chapter 12 |
Lect21 (1page,
2page) Lect22 (1page, 2page) Lect23 (1page, 2page) |
Project #5 UML Design Due (Wed/Oct 25) |
|
Week #10 Oct 30 |
Minimum Spanning Tree Algorithms, Threads in Java |
Chapter 12 |
Lect24 (1page,
2page) Lect25 (1page, 2page) |
Project #5 Implementation Due (Mon/Oct 30) Midterm #2 (Wed/Nov 1) Project #6 Out (Wed/Nov 1) |
| Week #11 Nov 6 |
Synchronization in Java, Networking Fundamentals, Networking Support in Java | Appendix C Online Material |
Lect26 (1page,
2page) Lect27 (1page, 2page) Lect28 (1page, 2page) |
Quiz #4 (Wed/Nov 8) Project #6 Due (Fri/Nov 10) Project #7 Out (Fri/Nov 10) HW #2 Out (Wed/Nov 8) |
|
Week #12 Nov 13 |
Regular Expressions, Automata, Event-Driven Programming, GUIs (Graphical User Interface), MVC Model, Java Support for GUIs |
Appendix C |
Lect29 (1page,
2page) Lect30 (1page, 2page) Lect31 (1page, 2page) |
Quiz #5 (Wed/Nov 15) HW #2 Due (Tue/Nov 14) |
|
Week #13 Nov 20
|
Inner classes, Thanksgiving |
Appendix C |
Lect32 (1page,
2page) |
Project #7 Due (Tue/Nov 21) |
|
Week #14 Nov 27 |
Sorting, Algorithm Strategies |
Lect33 (1page,
2page) Lect34 (1page, 2page) |
Quiz #6 (Wed/Nov 29) Project #8 Out (Mon/Nov 27) HW #3 Out (Wed/Nov 29) |
|
|
Week #15 Dec 4 |
Design Patterns, Exceptions, Serializability, Effective Java, (Advanced Trees, 132H only) |
|
Lect35 (1page,
2page) Lect36 (1page, 2page) Lect37 (1page, 2page) Lect38 (1page, 2page) |
Project #8 Due (Wed/Dec 6) HW #3 Due (Fri/Dec 8) |
|
Week #16 Dec 11 |
Final Exam Review
|
|
Final Exam: Friday Dec 15, 4:00 pm-6:00 pm CSIC 1115 |
