CSC17: Fundamentals of Computer Science III, Fall 2017

Dr. Chuck C. Liang
Professor of Computer Science, Hofstra University .

Office Address:
102 Adams Hall
Hofstra University
Hempstead, NY 11550
Office Phone: (516 463) 5559

Email: (<- click to send me mail)

Official Office Hours: Mon. 1-3pm, Tues,Wedn 2-3pm

Course Syllabus

Online Resources:

lab 1, lab 1b, lab 2, lab 3, lab 4, lab 5, lab 6, lab 7, lab 8, lab 9, lab 10, lab 11

Astar project (lab 11) files:

  1. (updated from original version).
  2. (study carefully).
  3. (subclass of astar that you'll have to write)
  4. HeapAware interface for Position Correcting Heap
  6. (contains main and graphics code).
  7. man15.gif, gem1.gif, boat.gif. (animated gifs)
  8. grass1.gif, Water.gif, flames.jpeg. (terrain textures - make sure windows doesn't change file name)

Files pertaining to lab 9:,, 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: 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 (
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 (, 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 and (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 example: 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