We'll be studying the book Understanding Computation: From Simple Machines to Impossible Programs by Tom Stuart.
We'll learn important ideas from theoretical computer science, and along the way we'll get to build a compiler, a Turing machine, a simple type system, implement the lambda calculus and much more.
All this will be in Ruby, but knowing ruby is not a requirement to taking part and going through this book. You should be fine if you have experience in a modern programming language.
This week
This week, we will third chapter of the book, which looks into Finite Automatas and their computing power, including creating an automata based regular expression engine. You do not need to have read previous chapters to get started with this material.
Format
This is a hands-on, collaborative study group. We will be learning and solving problems together and writing code.
At the end of the evening, solutions can be posted as pull requests against this GitHub repository.
Schedule
This is a rough guide to the evening:
18:30 - Official start. Introductions, announcements and description of the problem
19:00 - First pairing session
19:40 - Break and discussion
20:10 - Second pairing session
20:50 - Discussion: what did you find interesting, surprising, difficult, etc.
21:00 - Close. Optional further networking/chat, etc
Preparation
As long as you know a modern programming language you'll be fine.
Equipment
Please bring a laptop with Ruby installed.
Where to find us
We'll be at BrewDog Sheffield. The place does good pizza, including vegetarian and vegan options, as well as a wide and ever changing collection of beers. You can find us there with laptops and the Understanding Computation book.
Helpful resources
• Example code from the book
• Discussion about the book
• Table of Contents
• CS Book Club recordings of discussions
Code of Conduct
This book has a code of conduct for all members and organisers. You can read it on the Code of Conduct page.