CSC17: Fundamentals of Computer Science III, Spring 2019
Dr. Chuck C. Liang
Professor of Computer Science,
Hofstra University .
102 Adams Hall
Hempstead, NY 11550
Office Phone: (516 463) 5559
(<- click to send me mail)
Official Office Hours: MW 2-3:30pm
lab 1, lab 1b,
lab 2, lab 3,
lab 4, lab 4b,
lab 5, lab 6,
lab 7, lab 8,
Astar project (lab 9) files:
- coord.java. (study carefully).
- astar.java. (study carefully).
- myastar.java. (subclass of astar that you'll have to write)
- HeapVal interface for Position Correcting Heap (in case you don't trust your own)
- pathfinder.java. (contains main and graphics code).
- man15.gif, gem1.gif,
Water.gif, flames.jpeg. (terrain textures - make sure windows doesn't change file name)
Files pertaining to lab 8: Bst.java (interface), bst19.java (classes), BstDisplay.java
Files associated with lab 6: Abstract finite state machine and sample finite automaton (additional automaton for matching parentheses).
CAT FSM diagram
Lab 4 support files: PriorityQ superclass,
HeapVal interface, graphical display program
Submit all programming assignments on blackboard, CSC 17
Sample C++ program and corresponding Java program
Some examples of recursion
Recursive algorithm triangles fractal, contains
both versions with and without recursion.
More basic examples of classes in Java with
Condensed Notes on Interfaces, Inheritance and
Generics. (REQUIRED READING)
QuickSort implementation, with and without recursion
Linked List implementation (LinkedList.java)
Circular Queue, implements Iterable interface
Priority Queue (base class for lab 4)
Notes and examples of polymorphism. (REQUIRED READING)
team sports simulation with subclass further illustrates inheritance, importance of dynamic dispatch.
Abstract Class and Example
oopfood.java (examples of oop).
Program with notes explaining where dynamic dispatch occurs
non-polymorphic hash table (code from 3/11 class),
abstract version, association array version
invest.java: example of the observer design pattern
Notes on Lambda Expressions
Infinite sets using predicates
Dynamic programming notes and simple example (routes)
Dynamic programming and the Knapsack Problem
Subtle points about type casting
traditional and modern implementations of (unbalanced) binary search trees, with graphical display for the modern version
Notes on Dijkstra's algorithm, with additional
8-puzzle program (application of algorithm Astar) and its graphical animation
Notes on use of exceptions and various forms of IO
Final Exam Friday 5/17, 10:30am-12:30pm, Adams 204: study guide with practice problems and solutions
lab1b and extra exercise sample solutions.
Please note that Friday Lab session of this class will also be in Adams 204
(change from Adams 208).