The Human Computer
The Human Computer is a tool designed for use in computer-science education. It uses (reasonably) large groups of people to illustrate how basic computations can be broken into simple parts. We have thought of/created the following use cases:
- simple binary communication
- Demonstrates how voltage can carry information over time.
- bitwise communication
- Really just a formalism of the simple communication framework
- Binary addition
- Performs addition of binary numbers, an actual computation
- Each user performs an operation equivalent to a single full adder (3 bits -> output, carry)
- Carry bits are sent from user to user, and an overall result is gathered
Due to lack of time, we were unable to implement many use cases, but in the future, this platform can be easily augmented to connect users send bits among them in numerous additional ways:
- more minimal binary addition (in which users simulate each logic gate directly)
- networking
- Each person can simulate a router
- A message is given to some user with a goal and several paths are calculated
- The user must either copy the payload directly (slow) or split it into packets that are each sent on separate paths (fast)
We see this project as a potential complement to current education in CS: it shows that even operations as basic addition have a simpler way to be broken up and considered at a hardware level.
This project was very much a learning experience for us: nobody on the team had an understanding of all technologies used before Hacktech. Whether it was multithreading, CSS, or web sockets, the team was constantly teaching and learning from each other. In terms of technology:
- The webpages are static HTML, hosted with Heroku.
- The pages use JavaScript to connect to a websocket server hosted on Amazon AWS. This server keeps the proper bits in sync and, in the case of the binary adder, generates random numbers to be added.
Log in or sign up for Devpost to join the conversation.