# COSC201 - Algorithms and Data Structures ## 1 Lectures - [[Merge sort - divide and conquer]] - [[Lecture 8 Merge sort 2]] - [[Lecture 9 Stacks queues and heaps]] - [[Lecture 10 Heaps and heap sort]] ## 2 Notes ### 2.1 Algorithm Complexity - [[Big-O]] - [[Big theta]] - [[Induction]] - [[analysis of recursive algorithms]] ### 2.2 Algorithms - [[Minimal spending tree]] - [[Union Find-Disjoint set]] - ### 2.3 Fundamental Data structures - [[Objects]] - Stacks queues, List/arrays - [[Union Find-Disjoint set]] - Graphs and networks - Priority queue (heap) - Weighted - Unweighted - Trees (search and optimisation) - Maps (link between 'keys' and 'values') - Sets (Unstructured) (no repetition allowed) ## 3 Assignments [[assignment 1]] ## 4 Information **Staff** Role | Name | Email | Location | Hours -----|------|-------|----------|-----| Lectures | Michael Albert | michael.albert@otago.ac.nz | owheo g.52 | na | Labs | Reuben Crimp | reuben.crimp@otago.ac.nz | owheo g.37a | na | **Resources** [blackboard](https://blackboard.otago.ac.nz/webapps/blackboard/execute/modulepage/view?course_id=_45042_1&cmp_tab_id=_508507_1&mode=view+) [intro to algorithms book](https://otago.hosted.exlibrisgroup.com/permalink/f/1ihp3dt/OTAGO_ALMA51297974690001891) **Assessment** - Internal - two asignments - end of week 5 10% - end of week 10 20% - labs total 10% - Exam - 60% **Course_plan** - Extension and refinement of Big-O notation for algorithmic analysis. - The union-find data structure (a case study) - Merge sort - Priority queues and heap sort - Search trees and balancing - Hashing and hash maps - Graphs and graph algorithms (shortest paths, minimal spanning trees) - String algorithms