CS252 Algorithms Monday, 12 September 2022 https://cs.carleton.edu/faculty/jondich/courses/cs252_f22/ + Hi! - Jeff, Olin 301A, jondich - Office Hours: 301A + Zoom see my Carleton-only Google doc w/ Zoom link that I mostly remember to turn on - Masks in Olin and here + Moodle & the course website: what's the deal? + Prefect: Lily Haas + Where we're heading - *Articulating computational problems clearly, precisely, formally - Devising algorithms to solve those problems and *articulating the solutions clearly, precisely, formally - Analyzing algorithms runtime, memory use, correctness - Important classes of algorithms greedy, divide-and-conquer, dynamic programming... - (Not intractability--that's in CS254 Comp & Comp) * This is in part a writing class, with a specialized audience + Articulating a computational problem - Pick a problem that is solved algorithmically in software/hardware that you use - What are the inputs? - What are the outputs, and what relationship do they bear to the inputs? - Internet search in: search string, user's search history, GPS coords of browser, time, possible results (all the URLs), cookies, ad ID, user metadata, results of google-bot crawling (which pages point to which other artifacts) - The word game "ghost" (what problem are we solving?)(AI's optimal strategy) in: current word; dictionary; whose turn; number of players ...fix this... out: - YouTube recommendation in: data about user's video watching history data about current popularity of videos likes, etc. what videos are there? out: list of videos to recommend that optimizes something? (goal biz-wise: engagement time; computationally--what's the proxy?) - Google maps (route-finding) in: start and end point traffic info current location mode of transportation road information (where's the road; intersections;...) (i.e. the map) + Coming up this week - Getting our homework and communication system up and running - First problem set - Articulate the problem formally (assuming it's only informal in the problem statement) - Devise and articulate a solution - Analyze your solution - Repeat - Using LaTeX - "Review" of computational complexity - O, Ω, ϴ - worst-case analysis - common complexity classes (e.g., O(n log n)) + For Wednesday - Two readings and reading responses