CSC17: Fundamentals of Computer Science III, Spring 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: Monday-Wednesday 12:30-1:30pm, Thursdays 1-2pm


Course Syllabus

Online Resources:

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

Astar project (lab 9) files:

  1. coord.java. (study carefully). RELOAD
  2. astar.java. (study carefully). RELOAD
  3. myastar.java. (subclass of astar that you'll have to write)
  4. Hexagon.java
  5. pathfinder.java. (contains main and graphics code). RELOAD
  6. man15.gif, gem1.gif, boat.gif. (animated gifs)
  7. grass1.gif, Water.gif, flames.jpeg. (terrain textures)

Support files for lab 8b: drooler.dna, A.dna, M.dna, R.dna, S.dna

Files for lab 7: Bst.java and Bstgraph.java
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 Generics.
Alternate version of linked lists (LinkedList.java) and 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
spaghetticode.java and 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.)

Additional programs:
use of static variables and methods, use of exceptions, various forms of IO


Announcements:

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.