{"id":18339970,"url":"https://github.com/mxagar/accelerated_computer_science_coursera","last_synced_at":"2025-04-09T20:39:31.907Z","repository":{"id":106856954,"uuid":"446773777","full_name":"mxagar/accelerated_computer_science_coursera","owner":"mxagar","description":"This repository contains my notes on the Specialization \"Accelerated Computer Science Fundamentals\" from Coursera / University of Illinois.","archived":false,"fork":false,"pushed_at":"2023-03-02T07:35:42.000Z","size":57305,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-15T12:50:38.186Z","etag":null,"topics":["algorithms","data-structures"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mxagar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-11T10:24:27.000Z","updated_at":"2023-02-28T13:43:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"8ce979ee-3571-4b1a-818f-f9dc28da55fa","html_url":"https://github.com/mxagar/accelerated_computer_science_coursera","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxagar%2Faccelerated_computer_science_coursera","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxagar%2Faccelerated_computer_science_coursera/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxagar%2Faccelerated_computer_science_coursera/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxagar%2Faccelerated_computer_science_coursera/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mxagar","download_url":"https://codeload.github.com/mxagar/accelerated_computer_science_coursera/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248109382,"owners_count":21049302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","data-structures"],"created_at":"2024-11-05T20:20:07.970Z","updated_at":"2025-04-09T20:39:31.885Z","avatar_url":"https://github.com/mxagar.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Accelerated Computer Science Fundamentals - Coursera\n\nThis repository contains the notes I made when following this Specialization offered in Coursera by University of Illinois at Urbana-Champaign (Prof. Wade Fagen-Ulmschneider):\n\n[Accelerated Computer Science Fundamentals](https://www.coursera.org/specializations/cs-fundamentals)\n\nI have forked the original repository to my Github account; additionally, I use the material from the course and the original repository on this repository.\n\n- Original repository: [wadefagen/coursera](https://github.com/wadefagen/coursera).\n- My repository, forked from the original: [mxagar/coursera-cs400](https://github.com/mxagar/coursera-cs400).\n- Repository of the current notes: [mxagar/accelerated_computer_science_coursera](https://github.com/mxagar/accelerated_computer_science_coursera).\n\nThis Coursera Specialization is divided into 3 courses, each one contained in a specific folder:\n\n1. [Object Oriented Data Structures in C++](https://www.coursera.org/learn/cs-fundamentals-1?specialization=cs-fundamentals): [`01_OOP`](01_OOP)\n\n    1. Week 1: Introduction to Writing C++ Programs\n       - 1.1 Introduction\n       - 1.2 C++ Classes\n       - 1.3 C++ Standard Library: STD / STL\n    2. Week 2: C++ Memory Model\n       - 2.1 Stack Memory and Pointers\n       - 2.2 Heap Memory\n       - 2.3 Heap Memory Puzzels\n       - 2.4 Additional Notes\n    3. Week 3: C++ Classes\n       - 3.1 Copy Constructors\n       - 3.2 Copy Assignment Operator `=`\n       - 3.3 Summary of Constructor and Copying Functions\n       - 3.4 Variable Storage: Creating, Passing and Returning by Value / Reference / Pointer\n       - 3.5 Class Destructor\n       - 3.6 Summary of Types of Constructors \u0026 Destructors\n       - 3.7 Errors due to Missuse of Pointers\n       - 3.8 Modern Range-based `for`-Loops\n       - 3.9 Unsigned Integers\n    4. Week 4: C++ Software Solutions: Templates, Class Inheritance\n       - 4.1 Tower of Hanoi: Game Explanation\n       - 4.2 Tower of Hanoi: Solution 1\n       - 4.3 Tower of Hanoi: Solution 2\n       - 4.4 Templates\n       - 4.5 Inheritance\n       - 4.6 Week 4 Assignment\n    5. General Notes on Classes (Excurs)\n       - Object-Oriented Programming in C++\n       - Polymorphism\n       - Additional Glossary\n\n2. [Ordered Data Structures in C++](https://www.coursera.org/learn/cs-fundamentals-2?specialization=cs-fundamentals): [`02_Ordered_DS`](02_Ordered_DS)\n\n   1. Week 1: Linear Structures\n      - 1.1 Arrays\n      - 1.2 Lists = Linked Memory\n      - 1.3 Run Time Analysis: Access, Insert\n      - 1.4 Array and List Operations: Find, Insert After\n      - 1.5 Queue (Data Structure)\n      - 1.6 Stack (Data Structure)\n      - 1.7 Week 1 Assignment: Linked Lists and Merge Sort\n   2. Week 2: Binary (Search) Trees\n      - 2.1 Tree Terminology\n      - 2.2 Binary Trees\n      - 2.3 Tree Traversals\n      - 2.4 Binary Search Trees (BST)\n      - 2.5 BST Analysis\n   3. Week 3: AVL Trees and B-Trees\n      - 3.1 AVL Trees\n        - 3.1.1 AVL Trees: Self-Balancing BSTs\n        - 3.1.2 AVL Analysis: `avl::insert()` and `avl::remove()`\n      - 3.2 B-Trees\n        - 3.2.1 B-Tree Introduction\n        - 3.2.2 B-Tree Insert\n        - 3.2.3 B-Tree Properties\n        - 3.2.4 B-Tree Remove/Delete: Not considered in this course, because it is considerably more complex\n        - 3.2.5 B-Tree Search\n      - 3.3 Week 3 Challenge\n      - 3.4 Week 3 Assignment\n   4. Week 4: Heaps\n      - 4.1 Motivation: Priority Queues \u0026 Heap Definition\n      - 4.2 Heap Insert\n      - 4.3 Heap Remove (Min)\n      - 4.4 Heaps: `buildHeap()`\n      - 4.5 Heaps: Runtime Analysis, Heap Sort\n\n3. [Unordered Data Structures in C++](https://www.coursera.org/learn/cs-fundamentals-3?specialization=cs-fundamentals): [`03_Unordered_DS`](03_Unordered_DS)\n\n   1. Week 1: Hashing\n      - 1.1 Introduction\n      - 1.2 Hash Function\n        - Examples of Hash Functions\n        - Properties\n      - 1.3 Collision Handling\n        - 1.3.1 Separate Chaining\n        - 1.3.2 Linear Probing and Double Hashing\n        - 1.3.3 Load Factor and Re-Hashing\n      - 1.4 Hashing Analysis\n      - 1.5 Hash Tables in C++\n      - 1.6 Week 1 Challenge: Linear Probing Inserting in a Hash Table\n      - 1.7 Week 1 Assignment: `std::unordered_map`\n   2. Week 2: Disjoint Sets\n      - 2.1 Introduction to Disjoint Sets\n      - 2.2 Disjoint Sets: Implementations\n        - Version 1: Naive\n        - Version 2: UpTrees\n        - Version 3: UpTrees with Smart Union and Path Compression\n      - 2.3 Week 2 Challenge: Path Compression in an UpTree\n   3. Week 3: Graph Data Structures\n      - 3.1 Graphs: Vocabulary \u0026 Notation\n      - 3.2 Graph ADT (Abstract Data Structure)\n      - 3.3 Graphs: First Implementation -- Edge-List Implementation\n      - 3.4 Graphs: Second Implementation -- Adjacency Matrix Implementation\n      - 3.5 Graphs: Third Implementation -- Adjacency List Implementation\n      - 3.6 Graphs: Implementation Comparison\n      - 3.7 Week 3 Challenge: Union of Graphs Represented as Disjoint Sets\n      - 3.8 Week 3 Assignment: Breadth-First-Search in a Graph\n   4. Week 4: Graph Algorithms\n      - 4.1 Graph Traversal\n        - 4.1.1 Breadth-First Search Traversal (BFS)\n        - 4.1.2 Depth-First Search Traversal (DFS)\n      - 4.2 Minimum Spanning Trees (MST)\n        - 4.2.1 Kruskal's Algorithm for Building a MST\n        - 4.2.2 Prim's Algorithm for Building a MST\n      - 4.3 Shortest Path Algorithms\n        - 4.3.1 Dijkstra's Single Source Shortest Path Algorithm\n        - 4.3.2 The Landmark Path Problem\n      - 4.4 Week 4 Challenge: Breadth-First Search in a Graph with Distance Computation Using Disjoint Sets\n\n\nMikel Sagardia, 2021.  \nNo guarantees.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmxagar%2Faccelerated_computer_science_coursera","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmxagar%2Faccelerated_computer_science_coursera","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmxagar%2Faccelerated_computer_science_coursera/lists"}