I entered this hackathon knowing absolutely nothing about hardware. I'm a programmer and I really never learned much about computer components or anything like that; that bothered me. What better way to remedy such a problem than to build an entire 8-bit computer from scratch using nothing but basic logic gates?! Well, that's what I did.
Of course, building the entire computer is way too big an undertaking to finish within 24 hours (especially if you started out not even knowing how to use a breadboard like me). I Set out to build what I could - the Arithmetic Logic Unit (ALU). The ALU has an adder and a subtracter that, as their names suggest, add and subtract binary numbers. I ended up building the entire full-adder.
Beyond just having to learn everything from the basics of breadboarding to the make-up of logic gates, I had a lot of trouble with, well, troubleshooting. I guess, that's just the nature of the beast - when you have something complex, a lot of stuff can go wrong. The bulk of my time was taken up just figuring out what wasn't working.
I have never built something as complex as this. I've programmed a lot of pretty crazy things, but I've never actually put together anything nearly as complicated and advanced as a full-adder of an ALU. The fact that I was able to go from 0 knowledge of hardware, to a functional piece of a computer in just 24 hours is a pretty good source of pride for me.
I learned A LOT. I learned how and why electrical components such as transistors and resistors work. I learned how to prototype on a breadboard as well as several pretty cool practices for doing so. I learned all about how to build various logic gates as well as how they work. I learned all about the makeup and functioning of computers on the most basic level. I learned a lot about electrical engineering as well as how binary counting works.
After this hackathon, I will definitely be working more on the 8-bit computer. I will finish up the subtracter and put the adder together with it to form the ALU. I will then have to build the 555 clock, the bus, the memory and RAM, various registers, and the output "display." After all the hardware is finished, I will use an EEPROM programmer to give the computer a set of instructions and a basic OS (if you can call it that).