CS 218: Design and Analysis of Algorithms

Winter Quarter, 2020

News

  • (Mar 13) Problems in the practice exam posted
  • (Mar 13) Homework 7 solution posted
  • (Mar 11) Final syllabus posted
  • (Mar 10) In-person finals not allowed due to COVID-19, evaluating alternatives
  • (Mar 10) Location of final is now Bourns Hall B118
  • (Mar 4) Network flow slides posted
  • (Mar 4) Homework 7 posted
  • (Mar 4) Midterm II posted
  • (Mar 1) Practice problems for Midterm II posted
  • (Feb 27) Homework 6 solution posted
  • (Feb 26) Midterm 2 practice posted
  • (Feb 26) Midterm 2 syllabus posted
  • (Feb 24) The final is Wed, Mar 18 2020, 11:30am-2:30pm in Boyce Hall 1471
  • (Feb 20) Homework 6 posted
  • (Feb 19) Homework 5 solution posted
  • (Feb 19) Homework 4 solution posted
  • (Feb 15) Dyn Programming slides posted
  • (Feb 13) Homework 5 posted
  • (Feb 8) Midterm I posted
  • (Feb 4) Practice problems for Midterm I posted
  • (Jan 30) Hw3 solution, hw4, posted
  • (Jan 29) Greedy slides posted
  • (Jan 29) Midterm I syllabus, mock midterm, posted
  • (Jan 23) Midterm I postponed
  • (Jan 23) Hw 3 posted
  • (Jan 23) Hw 2 solution posted
  • (Jan 20) Slides posted
  • (Jan 16) Homework 1 solution posted
  • (Jan 15) Homework 2 posted
  • (Jan 14) Entrance exam posted
  • (Jan 6) Homework 1 posted
  • (Jan 5) Intro slides posted
  • (Jan 1) Happy New Year! The first lecture is Monday Jan 6th, 10am
  • Overview

    Catalog description: Design and Analysis of Algorithms (4) Lecture, 3 hours; outside research, 3 hours. Prerequisite(s): CS 141. Study of efficient data structures and algorithms for solving problems from a variety of areas such as sorting, searching, selection, linear algebra, graph theory, and computational geometry. Worst-case and average-case analysis using recurrence relations, generating functions, upper and lower bounds, and other methods.

    Basic information

    Instructor: Stefano Lonardi (stelo AT cs.ucr.edu)
    Office hours: Monday 3-4pm or by appointment. Office: MRB 3130.

    Teaching Assistant:
  • Huong Luu (huong.luu AT email.ucr.edu)
    Huong's office hours: Tuesday 3-4pm or by appointment. Location: Chung Hall 362.

  • Lectures:
  • MWF, 10:00am-10:50am, Boyce Hall 1471

  • Text Book:
  • Introduction to Algorithms (3rd Edition) by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliff Stein, MIT Press.

  • Prerequisites:
  • Graduate standing, undergraduate courses in algorithms and data structures. Students without an undergraduate courses in algorithms (CS 141 equivalent) and basic data structures (CS 14 equivalent) will not allowed to enroll.

  • Prerequisites by topic:
  • Discrete Math: asymptotic notation, basic summation formulas, sets (operations on sets, relations, functions), counting (permutations, sets, combinations, binomial coefficients), probability (independence, random variable, expected value)
  • Basic Data Structures: array, list, queue, stack, binary search trees, balanced binary search trees, heap
  • Sorting and Searching: quicksort, mergesort, heapsort, radix-sort, binary search
  • Graph algorithms: DFS, BFS, connected components, biconnected components, transitive closure
  • Digraph algorithms: DFS, BFS, strongly connected components, topological sorting
  • Lectures

    Tentative list of topics

  • Intro to Analysis: recurrence relations, master theorem, lower bounds, amortized analysis
  • Divide and conquer: linear-time selection, FFT, integer multiplication
  • Randomized: selection in expected linear time, polynomial verification
  • Greedy: task scheduling, Dijkstra, Prim, Kruskal
  • Union-Find: list and tree implementation, union by rank and path compression, analysis
  • Dynamic programming: Subset sum, LCS, matrix chain multiplication, Floyd-Warshall
  • Graph algorithms: Network Flow and Bipartite Matching
  • Actual list of topics

    WEEK 1
  • M, Jan  6: Course overview, Analysis (1-12)
  • W, Jan  8: Analysis (13-30) [HW1 posted]
  • F, Jan 10: Analysis (31-47)
  • WEEK 2
  • M, Jan 13: Analysis (48-49) [Entrance quiz (30mins, in class, closed book, closed notes)]
  • W, Jan 15: Analysis (50-62) [HW1 due, HW2 posted]
  • F, Jan 17: Analysis (63-73)
  • WEEK 3
  • M, Jan 20: HOLIDAY - MLK Jr Day
  • W, Jan 22: Analysis (74-end), Divide and Conquer (1-8) [HW2 due, HW3 posted]
  • F, Jan 24: Divide and Conquer (9-26)
  • WEEK 4
  • M, Jan 27: Divide and Conquer (27-51)
  • W, Jan 29: Divide and Conquer (52-66)[HW3 due]
  • F, Jan 31: Divide and Conquer (67-75)
  • WEEK 5
  • M, Feb  3: Divide and Conquer (76-end), Greedy (1-14)
  • W, Feb  5: Midterm I review [HW4 posted]
  • F, Feb  7: [Midterm I (50mins, in class, closed book, closed notes)]
  • WEEK 6
  • M, Feb 10: Greedy (15-34)
  • W, Feb 12: Midterm review, Greedy (35-41) [HW4 due, HW5 posted]
  • F, Feb 14: Greedy (42-43, 71-82)
  • WEEK 7
  • M, Feb 17: HOLIDAY - Presidents' day
  • W, Feb 19: Greedy (83-102, 44-55)[HW5 due, HW6 posted]
  • F, Feb 21: Greedy (55-end)
  • WEEK 8
  • M, Feb 24: Dynamic programming (1-25)
  • W, Feb 26: Dynamic programming (26-57, skipped Linear-space LCS)[HW6 due]
  • F, Feb 28: Dynamic programming (58-)
  • WEEK 9
  • M, Mar  2: Midterm II review
  • W, Mar  4: [Midterm II (50mins, in class, closed book, closed notes)][HW7 posted]
  • F, Mar  6: Network Flow (1-27)
  • WEEK 10
  • M, Mar  9: Network Flow (28-42)
  • W, Mar 11: Network Flow (43-end)[HW7 due]
  • F, Mar 13: Practice test on-line via gradescope
  • FINALS' WEEK
  • Wed, Mar 18 2020, 11:30am-2:30pm: Final on-line via gradescope[Final (180 mins, closed book, closed notes)]
  • Slides

  • Intro [PDF 2pages/slide]
  • Algorithm Analysis [PDF 2pages/slide]
  • Divide and Conquer (and randomized) algorithms [PDF 2pages/slide]
  • Greedy algorithms [PDF 2pages/slide]
  • Dynamic Programming algorithms (updated) [PDF 2pages/slide]
  • Network flow algorithms [PDF 2pages/slide]
  • Homework

    Homework papers should be prepared in LaTeX (figures can be hand-drawn), then converted/scanned to pdf format and turned in via Gradescope. A very good LaTeX editor is Overleaf. 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.

    Exams

    Policies