View Source

CSC 17 Course Syllabus

Dr. Chuck C. Liang

Office: SIC 213 Office Phone: (516 463) 5559

Email: chuck.c.liang@hofstra.edu

Special Measures Against Cheating

Cheating in any form is strictly prohibited. Cheating include using AI to complete assignments as well as copying program code from online or in-person sources. Individuals caught cheating will face disciplinary actions from the university. There will be no warning. Individuals posting course materials and solutions online may also face legal action for violating the university and the instructor’s copyrights. No course materials may be shared with others without consent from the instructor.


Course Description:

Continues the introduction of fundamental computer science with emphasis on advanced data structures, algorithms, their formal analysis, comparative advantages, and implementation using object-oriented programming techniques in the Java programming language.

Textbook : Online reading materials will replace a regular textbook.

Blackboard Site : hofstra.blackboard.com. Only the lecture portal will be used.

List of Major Topics (tentative):

  1. Transitioning from C++ to Java

  2. Review of fundamental programming skills, loops, arrays, procedures and classes.

  3. Semi-formal analysis of algorithms

  4. Circular Queues and Priority Queues

  5. Hashing

  6. Dynamic Programming

  7. Trees (Binary Search Trees, Tries, Spanning Trees, etc ...)

  8. Graph Search Algorithms

  9. Advanced Object Oriented Principles using Java, Including:

    • Inheritance, Interfaces, Abstract Classes, Dynamic Dispatch
    • Basic Object Oriented Design Patterns
    • When to use and when not to use recursion.
  10. Functional Programming Concepts in Java:

    • Closures and lambda expressions
    • Monadic error handling

Exams, Assignments and Grading

Assignments will be given regularly. There will be a midterm exam and a final. The final exam will be cumulative. Periodic quizzes will be given. All exams and quizzes are closed book and monitored in-person. The grade distribution will be roughly 60% exams and quizes and 40% attendence, programming assignments and other homeworks. Grading will be curved but the exact curve can be modified by the instructor. Students are required to keep copies of all programming assignments throughout the semester. When working in a group, all group members must possess current versions of the assignment.

Final Note: The contents of this syllabus may be modified depending on the progress of the course.