Spring Quarter, 2019

Syllabus: Intermediate Data Structures and Algorithms



instructor: Stefano Lonardi, office hours: Thursday 10am-11pm; WCH 325; email: stelo@cs.ucr.edu
teaching assistant: Tanmay Shah, office hours: TBA WCH 110; email:tshah015@ucr.edu
Lixiao Li, office hours: TBA WCH 110; email:lli132@ucr.edu
Anuja Patil, office hours: TBA WCH 110; email:apati027@ucr.edu
prerequisites: CS 014 with a grade of "C-" or better, calculus, CS/MATH 111
lecture: TR 2:10pm-3:30pm, Watkins 1000
final exam: Thursday, June 13, 8-11am
textbook: Algorithms by Dasgupta et al.

Material to be covered

Chapters 0, 2-6 of the textbook, plus some additional materials covered in the slides.

Course objectives

Homework

Seven written homework assignments, due every Thursday (except the weeks in which we have midterms). Homework papers should be prepared in LaTeX or some other word-processing system that can handle equations (figures can be hand-drawn), then converted/scanned to pdf format and turned in via Gradescope.

Discussion Sessions

Attendance in discussions sections is strongly encouraged, but not mandatory.

Collaboration

The point of the homework is to help learn the material by doing, and to get feedback on the correctness of your ideas and the clarity of your written communication. In this spirit, it's fine to ask for, and provide, useful ideas and pointers to help yourself and others. But please do not ask for or provide complete solutions. Collaborate in the spirit of helping everyone to learn fully, so that all will do well on the quizzes and exams.

All work that you submit must be fully authored by you. That is, you must write your own homework. If you incorporate ideas from another source, you must appropriately cite the source.

Honor code

Each student's work should be fully authored by his or her self, in his or her own words - that is, each student should turn in only text authored by his or her self. Each student is responsible for understanding all text that they submit. Finally, in each turned-in work, each student should appropriately cite any help or ideas that came from any other source. Violation of this policy is plagiarism and will be referred to the UCR student conduct office.

Grading

Quiz1 20%, Quiz2 20%, Final 40%, Homework 20%. The homework with the lowest score (out of 9) will be dropped form the average. Course grades are expected to be determined roughly as follows: A = 80-100%, B = 70-80%, C = 60-70%, D = 55-60%. Minor adjustments of this scale may be made during the quarter.
Grading is an approximate process, intended primarily to give you feedback about your work. Grading mistakes happen. Please check your graded work to find out what you missed, and for grading mistakes, when the work is returned to you via Gradescope. If you find a mistake, please send a grading request via Gradescope.
Per university policy, changes to your final grade will be made only in the event of a clerical error. Asking your instructor how far you were from a cutoff and what extra work you can do to improve the grade is not appropriate.

Late assignments and missed exams

Unless explicitly noted, assignments cannot be turned in past their deadlines, and missed exams cannot be made up. Exceptions may be made under extreme (and documented) circumstances. If you anticipate missing an assignment deadline, a quiz, or the final, contact the instructor as soon as possible before the deadline.

List of topics

chapter 0

chapter 2 - Divide and conquer (2.1-2.4, problem 2.32)

chapter 3 - Graphs and DFS (3.1-3.3)

chapter 4 - shortest paths (4.1,4.2,4.3,4.4,4.6,4.7)

chapter 6 - dynamic programming (6.1,6.2,6.3)

chapter 5 - greedy algorithms (5.1,5.2)