jamiejamiebobamie / CS-2.2-Advanced-Recursion-and-Graphs

CS 2.2: Advanced Recursion and Graphs – Course Syllabus and Lessons
MIT License
0 stars 0 forks source link

CS 2.2 Advanced Recursion and Graphs

This course covers graph theory, data structures, algorithms, and analysis. Key concepts include recursion, greedy algorithms, memoization and dynamic programming. Students will build an original project whose underlying structure requires the use of graph structures and algorithms to solve real-world problems such as airplane routing, social networking, and board games.

Why you should know this:

Graphs can be used to model and solve a wide variety of problems, including systems of roads, airline flights from city to city, how the Internet is connected, or even the sequence of classes you must take to complete your degree here at Make School! Understanding graphs allows you to build models of these problems and use those models to find optimal or best case solutions.

Prerequisites:

Learning Outcomes

Students by the end of the course will be able to ...

Schedule

NOTE: Due to the shorter summer sessions, for some class sessions you will see multiple topics covered. This is to ensure that we cover the same material that we normally would in non-summer terms.

Course Dates: Monday, July 8 – Wednesday, August 14, 2019 (6 weeks)

Class Times: Monday and Wednesday at 1:30–3:20pm

Class Date Topics Assignments
1 Mon, July 8 No Class --
2 Wed, July 10 Introduction to Graph Theory Start Tutorial
3 Mon, July 15 Graph Properties & Modeling Challenge #1
4 Wed, July 17 Graph Traversals Challenge #2
Quiz #1
5 Mon, July 22 Paths and Routing Challenge #3
6 Wed, July 24 Paths and Routing Part 2 Challenge #4
Quiz #2
7 Mon, July 29 Topological Sorting and Scheduling Tutorial Due
Project Proposal Due
8 Wed, July 31 Graph Coloring Quiz #3
9 Mon, Aug 5 Algorithm Classification Challenge #5
10 Wed, Aug 7 Advanced Modeling Challenge #6
Quiz #4
11 Mon, Aug 12 Final Presentations Project Due
Project Presentations
Optional quiz retake
12 Wed, Aug 14 No Class - Mock Interviews -

Class Assignments

Challenges

Tutorials

Projects

Evaluation

To pass this course you must meet the following requirements:

Resources

The following resources were used in developing this course and are a great place to start for learning more. These resources are used through the Attribution / Share Alike license.

A note on code:

Much of the code you will be implementing in this class is for standard algorithms and thus is readily available from many sources. By using these resources, we can focus on deepening our understanding of the algorithms themselves and on the process of solving real world problems with these algorithms. This means it may be likely that class members will have relatively similar algorithmic implementations, however, in keeping with the Academic Honesty Policy, you are expected to always give credit to code sources (online or classmates), write each line of code yourself with full understanding, add appropriate comments, and fully test your code.

Make School Course Policies