CS Primer – Programming: Beyond the Basics

CS Primer – Programming: Beyond the Basics

English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 35 Lessons (27h 57m) | 6.93 GB

There are countless ways to write any given program. This course is designed to ensure that you have all the tools at your disposal to fully express yourself with code, including functional composition and recursion, object oriented programming, and a basic understanding of concurrency.

If you are already familiar with the concepts covered below, you may prefer to cherry pick any interesting problems or skip ahead to Computer Systems

I will also use this course as an opportunity to share some of my philosophy of programming, as well as some of preferences for how I like to approach the practice of programming. I won’t pretend to have the final word on these topics: there is no one correct way. But others have found these thoughts helpful in the past, and you might too.

At the core of this course however 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.

As a supplementary text, I recommend Composing Programs by John DeNero, or the classic SICP upon which it is based, either in the original Scheme or newer JavaScript version. For a more playful, problem-oriented approach, I also highly recommend The Little Schemer, particularly on the topics of higher order functions and recursion.

I will mostly use Python as the language of choice below, but you’re welcome to work in another language if you prefer. Those that don’t support higher order functions and/or classes may find some problems more challenging to adapt.

Table of Contents

1 Luhn algorithm
2 Tic-tac-toe
3 A quick tour of iterators in Python
4 Reduce everything
5 Memoize
6 Basic recursion
7 Pretty print
8 Trampoline
9 Refactor life
10 Vector class
11 DIY objects
12 DIY basic inheritance
13 A brief tour of Pythons object implementation
14 AoC 2024 day 1
15 AoC 2024 day 2
16 AoC 2024 day 3
17 AoC 2024 day 4
18 AoC 2024 day 5
19 AoC 2024 day 6
20 AoC 2024 day 7
21 AoC 2024 day 8
22 AoC 2024 day 9
23 AoC 2024 day 10
24 Meta strategy list rank iterate
25 Example exploring nodejs streams with strace
26 Learning through fast feedback
27 Learning through small experiments
28 Learning through (fearless) direct inspection
29 Bytecode interpreter
30 FAQ should I stick to one course or jump around
31 The two most common mistakes I see in data modeling
32 A complete beginners guide to deploying web applications
33 Looking inside the Python interpreter
34 How to be precise
35 The only software development methodology I recommend cut the enemy

Homepage