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: cscccl@hofstra.edu
(< click to send me mail)
Official Office Hours: Mon. 13pm, Tues,Wedn 23pm
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:
 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
 Hexagon.java
 pathfinder.java. (contains main and graphics code).
 man15.gif, gem1.gif,
boat.gif.
(animated gifs)
 grass1.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: stringkeyed 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 higherorder 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
spaghetticode.java and
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
example:
8puzzle program (application of algorithm Astar) and its graphical animation
Announcements:
Reading day review to be held 12/12 at regular class times
Final Exams: Section 01: Tuesday 12/19, 1:303:30pm (Adams 204)
Section A: Tuesday 12/19, 46pm (Adams 204).
Exam Study Guide with practice
problems and sample solutions
