# Coursera: Data Structures and Algorithms Specialization

## Table of Content

- Course 1: Algorithmic Toolbox
- WEEK 1: Programming Challenges
- Welcome! 3m
- Solving the Sum of Two Digits Programming Challenges (screencast) 6m
- Solving the Maximum Pairwise Product Programming Challenge: Improving the Naive Solution, Testing, Debugging 13m
- Stress Test - Implementation 8m
- Stress Test - Find the Test and Debug 7m
- Stress Test - More Testing, Submit and Pass! 8m
- Companion MOOCBook 10m
- What background knowledge is necessary? 10m
- Optional Videos and Screencasts 10m
- Acknowledgements 2m
- Solving Programming Challenges 20m

- WEEK 1: Programming Challenges

https://www.coursera.org/specializations/data-structures-algorithms

Master Algorithmic Programming Techniques. Learn algorithms through programming and advance your software engineering or data science career

Offered By

- UNIVERSITY OF CALIFORNIA SAN DIEGO
- NATIONAL RESEARCH UNIVERSITY HIGHER SCHOOL OF ECONOMICS

# Course 1: Algorithmic Toolbox

The course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second). 5 hours to complete 6 videos (Total 48 min), 4 readings, 2 quizzes

## WEEK 1: Programming Challenges

Welcome to the first module of Data Structures and Algorithms! Here we will provide an overview of where algorithms and data structures are used (hint: everywhere) and walk you through a few sample programming challenges. The programming challenges represent an important (and often the most difficult!) part of this specialization because the only way to fully understand an algorithm is to implement it. Writing correct and efficient programs is hard; please don’t be surprised if they don’t work as you planned—our first programs did not work either! We will help you on your journey through the specialization by showing how to implement your first programming challenges. We will also introduce testing techniques that will help increase your chances of passing assignments on your first attempt. In case your program does not work as intended, we will show how to fix it, even if you don’t yet know which test your implementation is failing on.

- 6 videos
### Welcome! 3m

### Solving the Sum of Two Digits Programming Challenges (screencast) 6m

### Solving the Maximum Pairwise Product Programming Challenge: Improving the Naive Solution, Testing, Debugging 13m

### Stress Test - Implementation 8m

### Stress Test - Find the Test and Debug 7m

### Stress Test - More Testing, Submit and Pass! 8m

- 4 readings
### Companion MOOCBook 10m

### What background knowledge is necessary? 10m

### Optional Videos and Screencasts 10m

### Acknowledgements 2m

- 1 practice exercise
### Solving Programming Challenges 20m