Programming and Computer Science Courses

Expand Your Thinking!

When coding, you're often focused on the details of a particular technology. What commands do you put in your script? How do you install a package? How do you deploy a website? Or write an app? There are thousands of online resources to help you with all of these things. However, technology is also fleeting--what's popular today might be gone tomorrow. It's a given that you will always be learning new technologies. However, if you're really want to advance your programming skills for the long haul, you should expose yourself to new ideas and projects that challenge your thinking and go beyond just the "technology." That is exactly the kind of course that I offer here.

I have been teaching computer science courses for over 20 years. These classes are intense in-person explorations of a topic taught to just 6 participants. This small class size is unlike any learning experience you are likely to find online, at a coding bootcamp, or at a university. It's a friendly, hands-on experience that allows for meaningful questions and group discussion. Plus, you'll experience the ammenities of Chicago's distinctive Andersonville neighborhood. You won't be disappointed.

"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."

Current Course Schedule

Write a Compiler (in Python).
Take on the challenge of writing a compiler for a new programming language.
June 10-14, 2019
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.
June 24-28, 2019 Chicago
Computer Science: The Good Parts.
The computer science course that aims to be unlike anything else. It's the course you wish you took.
July 8-12, 2019 Chicago
Structure and Interpretation of Computer Programs.
The famous computer textbook comes to life as you learn the foundations of programming languages.
May 13-17, 2019 Chicago

What Are Classes Like?

A typical course day starts with breakfast and coffee starting around 8:45am. The course then runs from 9:30-5:30pm with lunch and an afternoon coffee break. Course time is divided between prepared lecture and working on hands-on projects with an emphasis on the latter. 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 have a formal background in computer science. That said, courses are still rigorous. Learning is the ultimate goal and some of the subject material (depending on course), might be comparable to what one would cover in a graduate computer science course. You can find more about preparation here.

What's Included

About The Organzier

Courses are organized by Dabeaz LLC, a company operated by David Beazley. Since 2007, Dabeaz LLC has conducted over 400 training courses for a mix of corporate clients and individuals. Notable past clients have included NASA Jet Propulsion Laboratory, Los Alamos National Laboratory, and Hewlett Packard. Prior to founding Dabeaz LLC, David Beazley was a tenure-track assistant professor in the Department of Computer Science at the University of Chicago. Dave is a well known conference speaker having given numerous talks and tutorials. He has a Ph.D. in Computer Science and has more than 25 years of teaching experience.

More Information

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