Programming and Computer Science Courses

When I take Mabel out in the morning, I'll often fling a ball and she'll chase after it with the greatest of excitement--ears flapping with every leap. I then think that programming should make me feel like that. That is to say, it should be fun. And if not fun, at least it should be useful.

In a Nutshell...

Hi, I'm David Beazley, a computer scientist with more than 30 years of coding and teaching experience.

I teach advanced programming and CS courses that will challenge you, make you think dangerous new thoughts, give you confidence, and remind you of why you got into programming in the first place.

Current Course Schedule

Write a Compiler.
Take on the challenge of writing a compiler for a new programming language.
May 1-5, 2023
Rafting Trip.
The networks, concurrency, and distributed systems course that will test your wits as you struggle to implement a fault-tolerant service via the Raft distributed consensus protocol.
March 27-31, 2023 (sold out)
June 19-23, 2023
Advanced Programming with Python.
Take your programming skills to the next level as you learn about problem solving, abstraction, and design.
April 10-14, 2023 (sold out)
June 5-9, 2023
Structure and Interpretation of Computer Programs.
The famous computer textbook comes to life as you learn the foundations of programming languages.
May 15-19, 2023
The One.
The one.
July 24-28, 2023

A Different Kind of Course

There are a lot of courses that teach advanced looking programming "features." However, features don't solve problems--problem solving solves problems.

The courses I offer here are about that! A lot of programming and design is focused on how to decompose problems into parts, knowing how those parts interact, and understanding the ramifications of different coding decisions. My courses bring these issues to the forefront in different ways. Grounded in core topics from computer science, these courses will push you outside your comfort zone and provide something of value for the long haul. They're the kind of courses you wish you could take in graduate school, but without all of the exams and psychological trauma.

Courses are usually taught in an intense week-long immersion format to a small group (limited to about 12 participants online or 6 participants in-person). The immersion format works to provide structure and to focus your engagement with the material. The small class size is unlike the typical experience you are likely to find online or at a university. People are there to learn and it's a friendly, hands-on environment that allows for meaningful questions and group discussion.

"David's training classes are a unique and not-to-be-missed experience. They are an immersive exploration and the format ensures you leave the class with new knowledge, new understanding, new skills, and new friends. David has a gift for explaining hard concepts and making things interesting. He is one of the best teachers I have ever met."

What Are Classes Like?

Courses run from 9:30-5:30pm in US Central Time/Chicago with an hour lunch break. Course time is divided between group discussion and working on hands-on projects with a strong emphasis on the latter. Most courses are taught loosely in the style of "mob programming" where the entire group works together to figure out a problem solution. Come ready to code, to question, and to discuss.

Hands-on circuit building in "Computer Science: The Good Parts"

Am I Ready to Take a Course?

Classes are attended by professionals with a wide variety of backgrounds and interests. You should have prior programming experience, but you definitely do NOT need to be an "expert" programmer, have a formal background in computer science, or deep knowledge of advanced programming language "features." That said, courses are still rigorous. Learning is the ultimate goal and some of the subject material (depending on topic), might be similar to what one would see in a graduate computer science course. You can read more about preparation here.

Courses are open to everyone. There is no screening process--if you want to take a course, sign up. I trust you to be the best judge of your abilities. However, feel free to contact me if you're not sure.

Just Courses

I have been offering CS courses for more than 15 years. What you see here is exactly what it is--courses. I personally teach all of these courses in a live setting to a small group. I pick topics that I think are cool, intellectually deep, and worthy of study. I have a "no questions asked" cancellation and refund policy. I hope that you learn as much taking a course as I do by teaching it.

Last, but not least, your support of these courses makes it possible for me to make ongoing contributions to open source and free software. For that, I'm thankful.

More Information

For more information and general inquiries, please send email to You can also consult the Frequently Asked Questions.