CISC4080, Computer Algorithms,
Fall 2024

     

Home

Calendar

Syllabus
 

Course Description: The study of a broad variety of important and useful algorithms for solving problems suitable for computer implementation. Topics include mathematical algorithms, sorting and searching, string processing, geometric algorithms, graph algorithms, combinatorial optimization techniques, and other advanced topics; average and worst-case analysis, time and space complexity, correctness, optimality, and implementation.

Prerequisite: CISC2200 (Data Structure), and CISC2100/CISC2110 (Discrete Structure II and lab) or Math 2001 (Discrete Mathematics)

Topics covered:

  • Algorithm Analysis, Big-O notation
  • Divide and Conquer paradigm/algorithms, Master Theorem
  • Sorting: lower bound, O(n^2) sorting algorithms, merge sort, quicksort, radix sort, heapsort
  • Hash table
  • Graph traversal algorithms, minimal spanning tree algorithms, shortest distance path algorithms
  • Dynamic programming paradigm and algorithms
  • Classes P and NP problems

Reference Textbooks:

  • (KT) Jon Kleinberg, Eva Tardos Algorithm Design (Pearson, 2006), (Amazon Entry)
  • (DPV) Dasgupta et al., Algorithms (McGraw-Hill, 2006) (link to pdf).
  • (Erickson) Jeff Erickson, Algorithms, links to pdf
  • (CLR) T. Cormen, C.E. Leiserson, R. L. Rivest, Introduction to Algorithms (MIT Press) (Link to Amazon entry)

Lectures: Monday/Thursday, 11:30-12:45pm, JMH112

Instructor: Dr. Xiaolan Zhang

  • Email: xzhang at fordham.edu (Please include CISC4080 in your subject line for timely response).
  • Office: JMH 332
  • Phone: 718-817-4484
  • Office hours : Wednesday 7-8pm (on Zoom), Monday 1:30-2:30pm & Thursday 10-11am (JMH332), Friday 3:30-4:30pm (LL610F)

Resources: Here is a collection of resources for learning.

Logistics:

  • The course calendar (with links to slides) are available online at Calendar page. (Please bookmark this page on your browser!) All reading materials, and written or programming assignments are included in the calendar.
  • Most course materials are shared on a Google drive. Please email the faculty if you don't have access.
  • Blackboard announcement will be used to class-wide communication (about the posting of assignments, deadline changes and quizzes so on).
  • Blackboard gradebook is used to track students grades on assignments, quizzes, and so on. Please monitor it and email the instructor for any issues.
  • Attendance is taken by students sign-in sheet in class, and later recorded using Blackboard Attendance.

Policy:

  • Attendance: Attendance of lecture is mandatory. Attendance and participation in class discussion make up 5% of your grade.

  • Use of electrnoic device:You may NOT use laptops, tablets, or mobile phones during lectures.

  • Expectation: Students are expected to spend five to eight hours outside of class each week in the assigned reading, homework and lab/projects. Students are expected to read the assigned chapter of the textbooks (from the reference textbooks listed above) before the class.

  • Assignments: There will be around one assignment every 1-1.5 week, either programming lab assignments or written homework. No late submission is accepted unless you have asked and are granted an extension (no longer than two days) for reasons such as illness, extremely heavy workload or other reasons. The maximum number of extensions per person for the whole semester is three.

  • Extra Credits: No extra credits opportunity will be given after final exam.

  • Academic Integrity and Collaboration Policy: You are encouraged to form study groups, learn and discuss the course material jointly with others.

    You must do the quizzes, homework assignments, labs and exams on your own.

    You may collaborate with a few other students on challenge problems (as indicated with stars in homework), provided that (a) you indicate anyone with whom you worked and (b) the final presentation is entirely your own. As a guideline, to distinguish discussion from plagiarism, it is useful to divide work into an "ideas phase", in which you can discuss problems (verbally or perhaps using a whiteboard) but do not leave with shared written matter, and a "writeup phase", which you do entirely on your own. If you have questions about collaboration, please clarify with the instructor.

    All work submitted by you should be generated by yourself, working individually or in groups. Students should not have another person/entity do the writing of any portion of an assignment for them, which includes hiring a person or a company to write assignments and using artificial intelligence tools like ChatGPT. Equally important, you should not let other students copy your solutions to assignments.

    Please review Academic Integrity Poicy of Fordham.

Grading Criteria: Final grade is based on the weighted sum of the following courseworks. If you fail both midterm and final exams, you will receive a F in the class.
  • Written/Programming Assignments (every 1-1.5 week): 20%
  • Projects (midterm and final): 15%
  • Participation (in-class discussion) : 3%
  • Attendance: 2%
  • Quizzes (bi-weekly):10%
  • Midterm: 25%
  • Final Exam: 25%