CISC4080, Computer Algorithms,
Spring 2024

     

Home

Schedule
  & Notes

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:

  • (CLR) T. Cormen, C.E. Leiserson, R. L. Rivest, Introduction to Algorithms (MIT Press) (Link to Amazon entry)
  • (DPV) Dasgupta et al., Algorithms (McGraw-Hill, 2006) (link to pdf).
  • (Erickson) Jeff Erickson, Algorithms, Online resource

Lectures: Tuesday/Friday, 1-2:15pm, JMH330

Instructor: Dr. Xiaolan Zhang

  • Email: xzhang at fordham.edu
  • Office: JMH 332
  • Phone: 718-817-4484
  • Office hours (tentative): in-person: Tuesday 2:30-3:30pm, Friday 10-11am; Zoom by appointment
Discussion/Q&A This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. Find our class page at: Piazza for CISC4080 R01.

Resources: Here is a collection of resources for learning.

Policy:

  • Attendance: Attendance of lecture and lab section is mandatory.

  • 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 (mostly from CLR and DPV) 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 more than one week) for reasons such as illness, extremely heavy workload or other reasons. The maximum number of extensions per person is three.

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

  • Academic Integrity: You should only hand in your own work for assignments (written or programming). Copying solutions from others, or from the Internet will be penalized as violation of academic integrity. 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): 25%
  • Projects (1-2): 10%
  • Participation/Attendance: 5%
  • Quizzes (bi-weekly):10%
  • Midterm: 25%
  • Final Exam: 25%