Pick a markdown and code style:

CSC 17 Course Syllabus

Dr. Chuck C. Liang

Office Hours: Mondays and Tuesdays 1-2pm, Thursdays 11am-12p, or by email appointments. Office hours are both in-person in Adams 116 and Zoomed. Hours are subject to change: always check the Office Hours folder on blackboard for the lastet hours and zoom links.

Office Phone: (516 463) 5559

Email: chuck.c.liang@hofstra.edu

Information Specific to this Semester

The class will be taught in-person and in the classroom. NO ZOOM IS AVAILABLE except for office hours. Classes will not, in general, be recorded. In case you come under Covid protocols and cannot attend class, you must inform the university. The university will send me an email stating that you cannot attend classes in person. Only then will I make online course materials available to you on a case-by-case basis. All major exams must be taken in-person: even if you come under protocol, the exam must be made up when you're cleared to attend classes again.

Special Measures Against Cheating

Academic cheating was a huge problem with online and hybrid modes of teaching, and unfortunately some students have retained old habits even with in-person classes resuming. 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. Advanced Object Oriented Principles using Java:

Exams, Assignments and Grading

Assignments will be given regularly. There will be a midterm exam and a final. The final exam will be cumulative (the final is scheduled for ). Periodic quizzes, including one-on-one quizzes may also be given. 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.