Hi,
Before we all forget, and for those who couldn’t make it this time, here’s a brief summary of what happened at last week’s London Computation Club meeting:
As agreed previously, we made a start on reading “The Elements of Computing Systems”. By my count there were about 14 of us (
https://www.flickr.com/photos/tomstuart/15096665303); after some initial introductions and discussion, we began looking through Chapter 1.
James Mead showed us a NAND gate he’d built from two transistors (
https://www.flickr.com/photos/tomstuart/15096053374) and we went on to design NOT, AND, OR, XOR and MUX chips on the whiteboard. This stimulated enough interesting discussion that we didn’t have time to get onto the DMUX, multi-bit or multi-way chips.
A few points of discussion:
* How should we approach the book? Should we do the reading at the meetings and work on the projects as homework, or vice versa? The general consensus seemed to be that the latter would be more fun, so for now we’re expecting to read the book at home and then work on the projects (whether on whiteboards or on the computer) together when we meet.
* What is the “best” or “most efficient” way to design these chips? Paul Mucur demonstrated the canonical construction of each chip from its truth table, and we talked about various techniques (e.g. De Morgan’s laws, Karnaugh maps) for refactoring the Boolean expression representing a chip.
* What does it mean for a chip to be “most efficient”? Do we mean fewest NAND gates, or fewest (previously defined) parts, or fewest wire crossings, or what? We didn’t decide.
* Should we write our own hardware simulator in Ruby and/or JavaScript? There was general enthusiasm for this idea, but we didn’t even make it through the Chapter 1 exercises, so the point was slightly moot. James Coglan has since argued convincingly (
https://groups.google.com/d/msg/london-computation-club/8mWclQpOu_Y/ptSazz4R_tAJ) that it wouldn’t be a good use of our time.
* What will the next meeting consist of, and what should we do as homework before then? We didn’t have time to agree this, and said we’d discuss on the mailing list. (This hasn’t happened yet, beyond Chris Lowis’s initial proposal at
https://groups.google.com/d/msg/london-computation-club/NexNGnv3FIo/q1aOLqxLaRoJ.)
There’s more information (photos, links, our Ruby implementations of the logic gates) in my earlier email to the list:
https://groups.google.com/d/msg/london-computation-club/xIwrj4I_oIw/O2D_tPweGWsJ
Cheers,
-Tom