CSC17: Fundamentals of Computer Science III, Spring 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: Monday-Wednesday 12:30-1:30pm, Thursdays 1-2pm
lab 1, lab 1b,
lab 2, lab 3,
lab 4, lab 5,
lab 6, lab 7,
lab 8a, lab 8b,
Astar project (lab 9) files:
- coord.java. (study carefully). RELOAD
- astar.java. (study carefully). RELOAD
- myastar.java. (subclass of astar that you'll have to write)
- pathfinder.java. (contains main and graphics code). RELOAD
- man15.gif, gem1.gif,
Water.gif, flames.jpeg. (terrain textures)
Support files for lab 8b:
Files for lab 7: Bst.java and
Files related to lab 6: Abstract finite state machine and sample finite automaton and counter automaton.
FSM diagram for a 2-counter automaton. You can also use
this alternate version which uses 3 counters instead of 2 and recognizes embedded patterns.
Lab 2 sample solution
Submit all programming assignments on blackboard, CSC 17
Sample C++ program and corresponding Java program
Linked lists in java: first version,
second version, test
program, third version and polymorphic mergesort
Condensed Notes on Interfaces, Inheritance and
Alternate version of linked lists (LinkedList.java)
mergesort (uses LinkedList.java: STUDY THIS VERSION)
Sorting algorithms for arrays and test program.
Some examples of recursion
Recursive algorithm (triangles) without recursion
and with recursion.
team sports simulation further illustrates inheritance.
Priority Heap implementation and
program that draws graphical representation of any array as complete binary tree
A slightly more advanced version of polymorphic heaps
Examples of classes that implement Comparable
Infinite sets. (Advanced program)
Notes and examples of polymorphism.
Abstract class and example
oopfood.java (examples of oop).
Extra oop practice assignment
Hash tables (CIHash.java) (contains non-polymorphic and
polymorphic versions) - use as basis for lab 5.
Abstract finite state machine and sample finite automaton. Associated with Lab 6.
Type casting rules in Java
traditional and modern implementations of (unbalanced) binary search trees.
Graphical representation of (modern) Bst.java and
interactive GUI program (now fixed).
Simple dynamic programming example (routes)
Dynamic programming and the Knapsack Problem
8-puzzle program (example of algorithm Astar) and graphical animation
Quad tree implementation and test program. (Some improvements made since lecture.)
use of static variables and methods,
use of exceptions,
various forms of IO
The DNA program is due before class on Monday 5/8 (firm deadline).
The A* search program is due at the time of the final exam.
Final Exam Wednesday 5/17, 1:30-3:30pm. Study guide with practice problems and sample solutions available. Review Session Monday 5/15, 2-3pm, Adams 204.
Tutoring Schedule for Spring 2017. The
recommended tutors for csc17 are Christopher and Jay.