## Graduate Algorithms (CSCI 5454), Fall 2018## InstructorSriram Sankaranarayanan (srirams@….) Office Hours: To be announced.
## Course StaffJessica Finocchiaro (Graduate TA). Ilam Subbiah (Graduate Course Assistant). S.S.L (Grader – anonymous to students. All grade related questions should be addressed to the instructor or the other course staff.).
## Course SyllabusThis is a ## Topics Covered“Concrete” Mathematics: Solving Recurrences, Basic Combinatorics (review) and Probability Theory.
Algorithm Design Approaches Divide and Conquer Dynamic Programming Greedy Algorithms Randomized Algorithms Approximation Algorithms
Data Structures Balanced Trees Hashtables Amortized Analysis Union-Find Data Structures Fibonacci Heaps
Graph Algorithms Shortest Path (Review) Flow Problems.
Complexity Theory: P vs NP Advanced Topics (Subject to Change) Combinatorial Optimization: Randomization and Approximation. Geometric Algorithms String Algorithms Quantum Algorithms
## PrerequisitesWe will assume that the student has already taken an undergraduate level course on algorithms, and is therefore familiar with the following topics from day one. Students lacking these pre-requisites are strongly encouraged to take CSCI 3104 first. Stuff you should already have learned and reviewed for this course. Big-O, Big-Omega, Big-Theta notations, and their meanings. Basic data structures: Heaps, and Binary Search Trees. Algorithm Design Approaches: Divide and Conquer including analysis using recurrences Greedy Algorithms Dynamic Programming Algorithms
Algorithms for the following primitives: Sorting: bubblesort, mergesort, heapsort, quicksort. Searching Graph Algorithms: Depth/Breadth First Search, Shortest Paths, Spanning Trees.
P vs NP: definitions and familiarity NP complete problems.
## ProgrammingWe will set programming assignments in Python3. These assignments will require basic knowledge of writing programs in Python3. Python3 functions, and control loops. Data structures: lists, dictionaries and sets. Classes and Inheritence. Ability to write small projecs in Python3, test and debug.
## TextbookWe will use the textbook by Cormen, Leiserson, Rivest and Stein (CLRS). https://mitpress.mit.edu/books/introduction-algorithms. ## Schedule
## Course Work/GradesThe course work will consist of (a) weekly problem sets that will involve solving algorithmic problems and some coding; (b) spot exams; (c) final project; and (d) participation. ## Problem Sets (45% of the grade)Each week, we will have a problem set provided to you as a Jupyter (IPython) notebook. This will include questions that involve writing small python3 programs and answering more descriptive questions that may involve algorithm design, mathematical analysis or proofs. To do this: you should first download and install Jupyter on your machine. See Jupyter Notebook Install Guide You must also download and test out some notebooks we will provide. ## Spot Exams (25% of the grade)We will have 2 spot exams spread out through the semester. They will test material that you have learned and go on for one hour each. Tentatively we have scheduled spot exams for the following dates (subject to change). Thursday, October 18, 2018. Tuesday, November 13, 2018.
## Logisitics for Exams1. The exam will be delivered in-class for students in the regular on-campus section. 2. Students enrolled in the distance section, but are resident on/near campus will attempt the exam from 6:30 - 7:30 PM on campus. 3. Students who live too far away will need to email the instructor and agree on a setup by week two. For such students, this may involve signing up for a proctoring service. 4. Accomodations such as alternative exam timings will only be provided for students with a letter from the campus disability services or valid documented medical reasons (a doctor's note is needed). Students receiving the accomodation will need to be mindful of the instructor's limited time and the overall resource limitations. ## Final Project (25% of the grade)A final project will account for 25% of the grade. It will involve working in teams of up to two students who will understand and implement an algorithm beyond what has been covered in class. The project may be presented in class over a 15 minute slot, or submitted as a 15 minute video produced by the students, that can be posted on youtube. If the student is unable to post a video, they can produce a PDF writeup of upto 4 pages. ## Logistics for Final Project1. Teams of two and topics will be finalized by November 1, 2018. 2. All projects will be due on December 8, 2018. No extensions are possible. 3. Presentations will be held in class for 15 minutes starting the week after the thanksgiving break. In class presentations are voluntary but highly appreciated. We expect about 16 projects to be presented. 4. All projects not presented in class, will be posted as a video so that the instructor and course staff may grade them. More details will be available as the deadline nears. ## Participation (5% of the grade)Participation will be judged for on campus students in terms of attendance in class and asking questions. For students in the distance section, participation will be in terms of helpful posts on the forums asking questions and responding to them. ## Final GradesFinal grades will be calculated using the cumulative scores with the appropriate weightage. ## Collaboration PolicyYou are welcome and encouraged to work together in learning the material. However, please read the following statement clearly. Violating the course policy will result in a failing grade in the entire class and a trip to a honor code hearing. It may also debar you from being a TA or RA in the department for at least a semester. 1. 2. 3. 4. 5. 6. ## Standard Course Policies## Honor CodeAll students enrolled in a University of Colorado Boulder course are responsible for knowing and adhering to the academic integrity policy of the institution. Violations of the policy may include: plagiarism, cheating, fabrication, lying, bribery, threat, unauthorized access, clicker fraud, resubmission, and aiding academic dishonesty. All incidents of academic misconduct will be reported to the Honor Code Council (honor@colorado.edu; 303-735-2273). Students who are found responsible for violating the academic integrity policy will be subject to nonacademic sanctions from the Honor Code Council as well as academic sanctions from the faculty member. Additional information regarding the academic integrity policy can be found at http://www.colorado.edu/honorcode/ ## Disability AccommodationsIf you qualify for accommodations because of a disability, please submit your accommodation letter from Disability Services to your faculty member in a timely manner (for exam accommodations provide your letter at least ## Religious ObservancesCampus policy regarding religious observances requires that faculty make every effort to deal reasonably and fairly with all students who, because of religious obligations, have conflicts with scheduled exams, assignments, or required attendance. If you have an exam or assignment conflict due to a religious observance please notify your instructor in a timely manner. See the campus policy regarding religious observances for full details. ## Classroom BehaviorStudents and faculty each have responsibility for maintaining an appropriate learning environment. Those who fail to adhere to such behavioral standards may be subject to discipline. Professional courtesy and sensitivity are especially important with respect to individuals and topics dealing with race, color, national origin, sex, pregnancy, age, disability, creed, religion, sexual orientation, gender identity, gender expression, veteran status, political affiliation or political philosophy. Class rosters are provided to the instructor with the student's legal name. We will gladly honor your request to address you by an alternate name or gender pronoun. Please advise me of this preference early in the semester so that I may make appropriate changes to my records. For more information, see the policies on classroom behavior and the Student Code of Conduct. ## Sexual Misconduct, Discrimination, Harassment and/or Related RetaliationThe University of Colorado Boulder (CU Boulder) is committed to maintaining a positive learning, working, and living environment. CU Boulder will not tolerate acts of sexual misconduct, discrimination, harassment or related retaliation against or by any employee or student. CU's Sexual Misconduct Policy prohibits sexual assault, sexual exploitation, sexual harassment, intimate partner abuse (dating or domestic violence), stalking or related retaliation. CU Boulder's Discrimination and Harassment Policy prohibits discrimination, harassment or related retaliation based on race, color, national origin, sex, pregnancy, age, disability, creed, religion, sexual orientation, gender identity, gender expression, veteran status, political affiliation or political philosophy. Individuals who believe they have been subject to misconduct under either policy should contact the Office of Institutional Equity and Compliance (OIEC) at 303-492-2127. Information about the OIEC, the above referenced policies, and the campus resources available to assist individuals regarding sexual misconduct, discrimination, harassment or related retaliation can be found at the OIEC Website |