Cost:
- Free for a limited time (this may change in future iterations of the course)
Instructors:
- Gordon Zhu (lead instructor): Founder at Watch and Code. Previously at Google and the University of Pennsylvania.
- Lily Gentner (assistant instructor): Instructor at Watch and Code. Previously at Uber, Square, and Harvard University.
Format:
- Live weekly Zoom classes, which consist of lectures, discussion, and exercises.
- Weekly homework assignments to help you dig deeper into important concepts.
- Weekly office hours if you need help or want to engage more deeply with the material.
Preface:
The typical programming course has a frustrating fixation with the least important part of programming, syntax. Here is a programming language feature and a buzzword-laden, barely intelligible definition. Now you must understand it, right?
Why do reasonable teachers, even very experienced ones, keep doing this? It's because there are real barriers to doing anything else—namely cost and skill. Deviating from the established pattern is expensive and time-consuming.
It's worthwhile to focus on the skill barrier for a moment. You can't just create something new, it must also be better. When I say this is devilishly challenging, I speak from first-hand experience. Making something better is an inherently unnatural act—most innovations are worse than what they seek to replace.
Essentially, taking a list of language features and supplying definitions is cheap. That's why you see so much of it. Our approach is rare because it's prohibitively expensive.
A course in effective thinking:
Unlike other courses that obsess over the syntactical details of a language, our goal is to teach you specific intellectual habits and tendencies that are especially useful in programming. In other words, we want you to understand and practice a particularly powerful way of thinking about programming.
Two programmers of equal experience and intelligence encounter the same problem. Programmer X struggles and ultimately gives up. They cope with their deficiency by being dependent on an outside authority: a helpful colleague, Stackoverflow, or ChatGPT, pick your poison. When they are lucky enough to scavenge what might be a solution, they force it into places where it doesn't fit. As they work more on a problem, they get more lost. The complexity explodes.
Programmer Y is challenged, but is able to methodically work through the problem. Instead of trying to force copy-pasted solutions into inappropriate places, they craft elegant ones that fit neatly. As they dig deeper, their understanding compounds, and the growing complexity is deliberately managed to be as minimal as possible.
Programmer X and Y are different species. One is the person is who everyone turns to for help. The other is the one everyone tries to avoid. The goal of this course, is to begin the hard work of nudging you towards one side and away from the other.
A prerequisite for the most difficult topics in computer science:
On a more practical note, we want to provide you with a foundation that will allow you to study the most difficult topics in computer science. More concretely, you can think of this course as a prerequisite for serious study in algorithms and data structures.
For reasons both practical and personal, our main interest is in helping students develop powerful problem-solving skills. In programming, abstract data structures and algorithms problems are the natural place for students to develop these skills.
Even though most of you will focus on the more mundane aspects of programming (simple websites, user interfaces, etc), having a strong foundation in computer science will be helpful no matter what, because it will allow you to understand everything more deeply. You’ll be able to wield mundane tools with more power :)
Pedagogical methods:
Live sessions are centered around problems that are meant to expand your thinking in specific, often counterintuitive ways. For this reason, the idea of "lecture" should be thrown out. What we are doing is much closer to training sessions in athletics. Each session is a stimulus designed to elicit a specific adaptation—in our case, intellectual rather than physical.
Since the act of doing problems is at the heart of each session, the sessions are inherently interactive, enabling an n-way conversation between everyone in the room. The great benefit of this format is that you can closely examine perspectives that would otherwise be hidden. You'll be able to closely observe how I think and you'll see how your peers think. But that's not the most important part. When you see that I've taken a radically different approach from yours, you can't help but ask yourself, "how could I have come up with that?".
Our goal is to aggressively kick off this introspective process in you. You’ll be pushed to reflect on your own thinking, compare it to other approaches, and modify it to counteract weaknesses. You'll often hear me talk about the idea of a self-correcting machine. It is the process of natural selection, applied to intellectual processes.
Schedule (6 weeks):
We'll meet every Tuesday for 6 weeks. Optional office hours immediately follow each class (7-8PM Pacific Time).
- Week 1: Tuesday 10/01/24: 5-7PM Pacific Time
- Week 2: Tuesday 10/08/24: 5-7PM Pacific Time
- Week 3: Tuesday 10/15/24: 5-7PM Pacific Time
- Week 4: Tuesday 10/22/24: 5-7PM Pacific Time
- Week 5: Tuesday 10/29/24: 5-7PM Pacific Time
- Week 6: Tuesday 11/05/24: 5-7PM Pacific Time
Admissions:
- To be considered, you must apply by 9/15/24.
- We'll admit students on a rolling basis until we reach capacity. Because of this, it's in your best interest to apply as soon as possible.
- If accepted, you'll get a nice email with more information and a special orientation video.
Syllabus:
FAQ:
- How much time should I devote to the course?
A minimum of 3 hours per week (2 hours of live class and 1 hour for homework). If you are interested in joining our Premium Membership Program, you'll want to devote more time because we'll only extend interview invitations to the strongest performers in each cohort. - Are there any prerequisites?
No prior programming experience is required. In terms of mindset, we suggest reading this short essay. - When will I get an admissions decision?
If you're admitted into the program, you'll hear back by 9/17/2024 at the latest. - What is your attendance policy?
If you miss one session, we'll send you a recording so that you can catch up. If you miss more than one session, you will be dropped from the class. - What programming language(s) do you use?
We use a language-agnostic subset of JavaScript we call FoundationScript. We do this because we want our students to learn programming in a way that's broadly applicable and not language-dependent. - Do I need to purchase any course materials?
No, all required materials will be provided. - How is this different from the self-paced (non-live) version?
The main differentiator is obviously the live component. From a curriculum standpoint, the core parts are the same. However, the contexts are slightly different. The self-paced version approaches programming from a web development angle. The live version takes a more abstract approach, that's inspired by algorithmic problem-solving and mathematics. - How will doing this course affect the admissions process for the Premium Membership Program?
After completing the live course, top performers (based on live sessions and homework assignments), will be invited to interview for our Premium Membership Program and will have their application fee waived. Students that need a bit more time to master the concepts will need to go through the usual admissions process (self-paced course > entrance exam > live interview). - Are there mastery-based assessments or quizzes?
Yes and no. Yes in the sense that you won't be admitted to our Premium Membership Program unless you demonstrate mastery of key course concepts. No, in the sense that we won't block you from attending the live sessions as long as you meet the attendance requirements. - How big will the class be?
In the ballpark of ~20 students. We want a size that's big enough to feel lively, but small enough to feel intimate. - I can't make it this cohort due to a scheduling conflict. When is the next one?
Tentatively, we're planning to start another cohort 1-2 months after this one ends (likely in January after the holidays). - How are you able to offer this for free?
If a sufficient number of free participants join our Premium Membership Program, then we can sustainably offer this course for free (this is our hope). If our business cannot fully subsidize the cost, we'll have to charge something, likely in the ballpark of a few hundred dollars, which is on the low end for live classes like this. Either way, from the student side, this is an advantage because there's a large subsidy in either case. - Still have a question?
Send us a note at [email protected].