In this capstone project we’ll combine all of the skills from all four specialization courses to do something really fun: analyze social networks!
The opportunities for learning are practically endless in a social network. Who are the “influential” members of the network? What are the sub-communities in the network? Who is connected to whom, and by how many links? These are just some of the questions you can explore in this project.
We will provide you with a real-world data set and some infrastructure for getting started, as well as some warm up tasks and basic project requirements, but then it’ll be up to you where you want to take the project. If you’re running short on ideas, we’ll have several suggested directions that can help get your creativity and imagination going. Finally, to integrate the skills you acquired in course 4 (and to show off your project!) you will be asked to create a video showcase of your final product.
Introduction and Warm up
Welcome to our capstone project! In the last four courses in this specialization you've learned many core data structures and algorithms, and applied them to three different real-world projects. In this capstone project you'll be doing a project very much like the projects from these other courses, only it will be almost entirely directed by you! In this first week you'll get warmed up by playing around with the data that will form the backbone of this project: social network data. Then you'll get back into writing code by implementing a couple of graph algorithms to answer questions about this data.
Project Definition and Scope
Now that you're warmed up, it's time to get started planning for the bulk of your capstone project. This week you will identify several questions you'd like to answer about the social network data. For each of these questions, you'll research and evaluate data structures and algorithms that would be useful in implementing a solution. Defining the scope of your project and anticipating bottlenecks and tricky spots is tough but extremely valuable. You'll use asymptotic analysis to guide and refine your design.
Capstone Implementation: Mini-project
Now that you've identified the two problems you want to solve, this week you'll work to solve the easier of the two. This week you are predominately on your own to work independently. To solve the problem, you'll likely create small datasets for testing, research existing solutions to related problems, implement a solution, test your solution, and analyze the algorithmic runtime of the solution. You can optionally write-up a report of your work for peer-review feedback.
Capstone Implementation: Full project checkpoint
This week, you will work on your own on the larger problem you aim to solve. You'll have two weeks (this and the next) to solve the larger problem and submit a report for peer feedback. For this week, you should aim to create small test datasets, research exist solutions, and analyze the runtime of your potential solutions. You should also research datasets which might be particularly interesting for your problem.
Capstone Implementation: Full project final deadline
Now you get to finalize your project! This week, you will finish your solution to the larger problem and submit a report for peer feedback. This is also an opportunity for reflection about what went well and what went poorly in the process of completing the project. It is also an opportunity to reflect on how far your technical skills have advanced since the beginning of this specialization.
Capstone oral report
In this week, you get to present your project to the learner community! This will combine all the skills you've learned in the specialization: algorithm analysis, object oriented programming, design and use of data structures, and presenting your work with confidence. We look forward to seeing what you've created!