CSC17: Fundamentals of Computer Science III, Fall 2017
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: Mon. 1-3pm, Tues,Wedn 2-3pm
lab 1, lab 1b,
lab 3, lab 4,
lab 5, lab 6,
lab 7, lab 8,
lab 9, lab 10,
Astar project (lab 11) files:
- coord.java. (updated from original version).
- astar.java. (study carefully).
- myastar.java. (subclass of astar that you'll have to write)
- HeapAware interface for Position Correcting Heap
- 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 9: Bst.java, Bstgraph.java, testbst.java
Trie.java: string-keyed Trie implementation related
to lab 8.
Files associated with lab 7: Abstract finite state machine and sample finite automaton (additional automaton for matching parentheses).
CAT FSM diagram
Files relevant to lab 6: TDHash.java and
sample concrete subclass
Lab 3 solution
Submit all programming assignments on blackboard, CSC 17
Sample C++ program and corresponding Java program
Condensed Notes on Interfaces, Inheritance and
Generics. (REQUIRED READING)
Linked List implementation (LinkedList.java)
Some examples of recursion
Recursive algorithm triangles fractal, contains
both versions with and without recursion.
Sorting algorithms on linked lists, including insertion sort, mergesort and quicksort, more examples of when to use or not use recursion.
Sorting algorithms on arrays
Notes and examples of polymorphism.
More examples of interfaces and higher-order programming
Examples of classes that implement Comparable
team sports simulation further illustrates inheritance, solution to lab 1b problem
My implementation of the heap data structure (Heap.java), also uses
Comparator in addition to Comparable.
program that draws graphical representation of any array as complete binary tree
Abstract Class and example
2D abstract hash table and sample concrete subclass
Subtle points about type casting and dynamic dispatch
oopfood.java (examples of oop).
Extra oop assignment
Infinite Sets (advanced program)
traditional and modern implementations of (unbalanced) binary search trees.
Dynamic programming notes and simple example (routes)
Dynamic programming and the Knapsack Problem
Notes on Dijkstra's algorithm, with additional
8-puzzle program (application of algorithm Astar) and its graphical animation
Reading day review to be held 12/12 at regular class times
Final Exams: Section 01: Tuesday 12/19, 1:30-3:30pm (Adams 204)
Section A: Tuesday 12/19, 4-6pm (Adams 204).
Exam Study Guide with practice
problems and sample solutions