# Coursework management ## Design & Analysis of Algorithms ECS 222A - [Planner schedule and recordings](https://canvas.ucdavis.edu/courses/562076/pages/planned-schedule-and-recordings) - [Syllabus](https://canvas.ucdavis.edu/courses/562076/assignments/syllabus) - [Gradescope](https://www.gradescope.com/courses/258761) - [Final Project](https://canvas.ucdavis.edu/courses/562076/assignments/669058) - [Lecture Slides for Algorithm Design](https://www.cs.princeton.edu/~wayne/kleinberg-tardos/) --- ### Lectures - **Week 1: Divide and Conquer** - **Lecture 1: 3/29 Intro, and review** - [Tiny Math Primer](https://drive.google.com/file/d/1NyyYnK21z4g7Cn9nelwFm574Ez99v009/view?usp=sharing) - Asymptotic Analysis: [Big-O, limit lemma theorem Introduction to Divide and Conquer solving recurrences via ](https://drive.google.com/file/d/1Ndc04MKD1DzUX2QXHWlKTONL18KZD36k/view?usp=sharing) - [substitution  (Links to an external site.)](https://drive.google.com/file/d/1XmIuHTf1TDfxNUJ8DxTLACF9vF0Hq_C9/view?usp=sharing) - [unwrapping/recurrence tree method  (Links to an external site.)](https://drive.google.com/file/d/1g9yi1pfN9TR9M2fViR-FBiyWH5wWHbkm/view?usp=sharing) - [Masters theorem](https://drive.google.com/file/d/1_NR16nOXPTuRVZNvsxhtqBKlQlVGTyyo/view?usp=sharing) - **Lecture 2: 3/31** - [Deterministic selection in linear time  (Links to an external site.)](https://drive.google.com/file/d/13vDhBinGKVU2XX3Q4E4xyIqk5xvuFA_8/view?usp=sharing) --- ## Quizes ### Quiz 1 **Think of something like that:** A disorganized carpenter has a mixed pile of  n  nuts and  n  bolts. The goal is to find the corresponding pairs of nuts and bolts. Each nut fits exactly one bolt and each bolt fits exactly one nut. By fitting a nut and a bolt together, the carpenter can see which one is bigger (but the carpenter cannot compare two nuts or two bolts directly). Design an algorithm for the problem that uses  nlog n  compares (probabilistically). - **Some resources** - http://seanzhou1023.blogspot.com/2017/04/quiz-6-princeton-algorithm.html - https://github.com/ekalachev/nuts-and-bolts - http://www.wisdom.weizmann.ac.il/~naor/PUZZLES/nuts.html - https://www.geeksforgeeks.org/nuts-bolts-problem-lock-key-problem/ ``` Quiz 1: 4/5  Quiz 2: 4/12  **Midterm 1: 4/26** Quiz 3: 5/3  Quiz 4: 5/10  Quiz 5: 5/17  **Midterm 2 : Last day of class 6/2** ``` --- ## Theory of Computation - [Syllabus](https://canvas.ucdavis.edu/courses/556243/assignments/syllabus) ## Book Chapters - [chapter 1: PrologueLinks to an external site.](https://video.ucdavis.edu/playlist/details/1_6f35d59n) - [chapter 2: The BasicsLinks to an external site.](https://video.ucdavis.edu/playlist/details/1_92gxymmw) - (There are no lectures for chapter 3.) - [chapter 4: Needles in a Haystack: The Class **NP**Links to an external site.](https://video.ucdavis.edu/playlist/details/1_tc2y5uwz) - [chapter 5: Who is the Hardest One of All? **NP**-CompletenessLinks to an external site.](https://video.ucdavis.edu/playlist/details/1_7rjn2t74) - [chapter 6: The Deep Question: **P** vs. **NP**Links to an external site.](https://video.ucdavis.edu/playlist/details/1_ffeye37x) - [chapter 7: The Grand Unified Theory of ComputationLinks to an external site.](https://video.ucdavis.edu/playlist/details/1_jb9526ok) - [chapter 8: Memory, Paths, and GamesLinks to an external site.](https://video.ucdavis.edu/playlist/details/1_3x0aawln) ### Live Lectures 1a: [Lec 1a](https://ucdavis.zoom.us/rec/share/JXlnrYNJ1En4ryx1_ip_0nDrMru0GaGn7zmomWZaZjCj5oLoUTUYcHGG0emNCSJw.8GI5peokc3VZcPuT) 1c: [Lec 1c](https://ucdavis.zoom.us/rec/share/EsMILy8Nvngt6aUByQScDtKMlyXtGsn_CJ8PJHVCvkWFnxCXp6bSzNnIX0-hWxgC.mANNLQbNK8sRxrbM) 2a: [Lec 2a](https://ucdavis.zoom.us/rec/share/O-7_7ftD3kQNIXMYwUsJHSMvtU4pqq_CmFVWK28xDzA2adTZ0M-N55iAh7enhLru.2oC9hhW4XUY73x2A) ### Lectures - [lecture-schedule](https://canvas.ucdavis.edu/courses/556243/pages/lecture-schedule) --- ## Software Engineering ### Lectures