CS Primer – Algorithms and Data Structures

CS Primer – Algorithms and Data Structures

English | MP4 | AVC 3840×21600 | AAC 44KHz 2ch | 41 Lessons (26h 32m) | 9.59 GB

Algorithms and Data Structures can be a particular rewarding area of study, because it drives at the core of computer programming: solving difficult problems.

In the course below, you’ll learn a number of important data structures and algorithms, which we’re sure will prove useful throughout your career. Just as importantly, you’ll develop a stronger ability to understand, break down and solve novel problems, whether inventing your own techniques or repurposing those which you learn here.

At the core of this course are the sequences of problems for each topic. You should aim to solve each problem, using the worked solutions and supplementary explainers as needed. For more suggestions on how to approach CS Primer, see the how-to guide.

Also included are seminars recorded with CS Primer students, which you may like to work through as well, by stopping and asking yourself each of the questions we cover together. These were typically recorded after the students completed 1-2 problems in that module, so are designed to reinforce the fundamental concepts and prepare for harder problems.

As a supplementary resources, I recommend Steven Skiena’s video lectures and book: The Algorithm Design Manual. This tends to be a little less heavy in theory, and has a more “problem solving” orientation than the typically recommended textbooks. There are plenty of other good resources available online, such as those from Tim Roughgarden. Generally I suggest just attempting the problems below, and reaching for the textbook if you feel conceptually stuck or would like further practice problems.

Table of Contents

1 Staircase ascent
2 Convert to Roman
3 Correct binary search
4 Splitting a chocolate bar
5 What a programmer can learn from Polya
6 Finding duplicates
7 Fizzbuzz sum
8 Just iterate
9 Analysis practice
10 The enormous difference between polynomial and exponential
11 Building an intuition for common running times
12 Best worst and average case
13 The benefits and pitfalls of asymptotic analysis
14 Big O big omega and big theta
15 Parenthesis match
16 Doubly linked list
17 Basic calculator
18 Practice using stacks
19 Hazards of using linkedlists
20 What is an abstract data type
21 Motivating stacks and queues and an intuition for when to use them
22 Motivating linked lists
23 Merge sort
24 Fast exponentiation
25 Quicksort
26 Divide and conquer intuition and convex hull problem
27 Process tree
28 Word ladder
29 Jug pouring
30 Knights tour
31 Maze solver
32 Trees graphs and flipping pancakes
33 Dijkstras algorithm and A search
34 Depth-first and breadth-first search
35 Helping Michael with Word Ladder analysis
36 House robber
37 Perfect squares
38 Minimal grid path
39 Edit distance
40 Introduction to dynamic programming
41 QA problem solving technique and wrapup

Homepage