Course: CSE 595: Algorithmic Problem-Solving

State University of New York at Stony Brook, Fall 2023

Classes
MoWe 2:30PM - 3:50PM, Old Computer Science-2-Room 2120
Instructor
Prof. Pramod Ganapathi
Office hours: Mo 10:30AM - 01:30PM, Room 105 New Computer Science
TA's
Google sheets

Course Description
This course covers: (i) several interview/technical/programming problems/puzzles and their multiple algorithmic solutions through student presentations, and (ii) practical algorithms from real-world applications.
Prerequisites
Undergraduate algorithms and undergraduate data structures. Students should NOT take this course if they have not taken and passed undergraduate algorithms and data structures courses.
Credits
3
Course Outcome
At the end of the course, the students should have the following knowledge, skills, and wisdom:
  • An ability to appreciate the beauty of our world full of algorithms.
  • An ability to understand where/how/why to apply different algorithmic design techniques.
  • An ability to use algorithmic thinking and problem-solving to attack and solve computational problems.
Resources
This is the main resource we will use for learning algorithmic problem-solving. The following textbooks are recommended for learning on algorithms and data structures, respectively.
Grading
Course requirements and grading are as follows:
  • Presentations: 60%
  • Assignments: 20%
  • Final exam: 20%
Presentations
The course is majorly based on supervised peer-learning. Each student will be in a group of specified size. Each group will be assigned a set of problems related to a specific algorithm design technique or data structure or problem. The group has to understand those problems and solutions in detail, try to generalize the solutions, implement all the solutions, and present and record the presentations. The presentations will be graded for organization, story telling, clarity, simplicity, lots of diagrams, pseudocodes, examples, clear-cut explanation, generalizations of solutions, implementations, empirical analysis, plots, team collaboration, summarization of all results, proper usage of time duration, etc. If the group also present nontrivial generalized solutions (for example, nontrivial generalized solutions to higher dimensions) that cannot be found online, then more points are awarded for novelty.

We will have various presentations on different topics throughout the course. Presentation details will be communicated via Brightspace. Late submissions will have a penalty.
Homework
Homework will be posted on Brightspace. Homework must be written on plain sheets of paper, scanned using a good scan app, and a single scanned PDF must be submitted on Brightspace. The PDF must have the student ID as the file name. Late submissions will not be graded for any reason (including oversleeping, forgetting, PC issues, technical issues, Brightspace issues, traveling, etc), except in the case of medical emergencies (with documentation submitted to and verified by the Student Support Team) and on the discretion of the instructor based on a case-by-case basis. It is strongly recommended to submit at least one version three days before the deadline. A student can submit an infinite number of versions of the answer sheets PDF to the Brightspace. We only evaluate the last/final version of the solutions PDF uploaded on Brightspace before the deadline.

Students should not submit the first version of their homework at the exact deadline or later or a few seconds/minutes just before the deadline. Because, we do not consider the time at which a homework was submitted, we consider the time at which the homework was successfully up on Brightspace (with all pages in human-readable form) and it takes a few seconds/minutes to upload on Brightspace. If Brightspace flags the homework as late, it is late.

Regrade requests deadline is 1 week after getting the homework/exam results on Brightspace.
Makeup Exams
Makeup exams will not be given for any reason (including oversleeping, forgetting, PC issues, technical issues, Brightspace issues, traveling, etc), except in the cases of medical emergencies (with documentation submitted to and verified by the Student Support Team) and on the discretion of the instructor based on a case-by-case basis; student participation in university sponsored events (with documentation); and religious absences (with documentation).
Additional Resources

Academic calendar
The tentative lecture/class schedule is as follows.
Lectures
Class Schedule
Study Materials
More Resources
2 sessions Introduction, crash course on CSE 582 [Slides]
4 sessions Practical algorithms → PageRank, Gale-Shapley, String matching (Rabin-Karp, Horspool, Aho-Corasick), Bit tricks [Slides]
1 session Streaming algorithms → Boyer-Moore [Slides]
2 sessions Probabilistic algorithms → Miller-Rabin, Bloom filter, Count-Min sketch, Hyperloglog [Slides]
2 sessions External-memory algorithms → Merge sort [Slides]
3 sessions Interview problems → Maximum subarray, Palindromic substrings, First missing positive [Slides]
Oct 25, 30 Presentations → 1. Arrays, Lists, Trees [Program] [GFG-bst]
Nov 01, 06 Presentations → 2. Decrease-and-conquer, Divide-and-conquer [Slides], [Slides] [GFG-dec]
Nov 08, 13 Presentations → 3. Dynamic programming [Slides] [GFG-dp]
Nov 15, 20 Presentations → 4. Puzzles [Our puzzle book]
Nov 27, 29 Presentations → 5. Advanced algorithms/DS
Dec 04, 06 Presentations → 6. System Design [Slides]
Dec 12 (Tu) Final → Time: 5:30-8:00 PM, Venue: Class, Schedule

Academic Integrity
Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Any suspected instance of academic dishonesty will be reported to the Academic Judiciary. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the academic judiciary website at https://www.stonybrook.edu/commcms/academic_integrity/.
Students are allowed/encouraged to:
  • learn the subject from any book/website/video/resource in the world
  • contact TAs/instructor to understand the subject matter
  • discuss generic ideas and concepts related to the subject with friends/classmates
Students are NOT allowed to:
  • search for solutions for the homework/exam questions on books/websites/videos/resources
  • discuss the homework/exam questions with friends/classmates/seniors
  • copy homework/exam solutions from Internet/books/friends/classmates/seniors
Student Accessibility Support Center
If you have a physical, psychological, medical, or learning disability that may impact your course work, please contact the Student Accessibility Support Center, ECC (Educational Communications Center) Building, Room 128, (631) 632-6748, or at sasc@Stonybrook.edu. They will determine with you what accommodations are necessary and appropriate. All information and documentation is confidential. Students who require assistance during emergency evacuation are encouraged to discuss their needs with their professors and the Student Accessibility Support Center. For procedures and information go to the following website: https://ehs.stonybrook.edu/programs/fire-safety/emergency-evacuation/evacuation-guide-people-physical-disabilities and search Fire Safety and Evacuation and Disabilities.
Critical Incident Management
Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of University Community Standards any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn. Further information about most academic matters can be found in the Undergraduate Bulletin, the Undergraduate Class Schedule, and the Faculty-Employee Handbook.