Is using built-in chips considered to be "cheating"?
At risk of sounding pedantic, I just have got to ask this as I am very curious to know. The key thing about this course is that we build a computer from scratch (from individual nand gates).
However I've reached Chapter 2 now and was a little surprised we were told to use the built-in chips for the next project. So since it says to use the built-in chips (for efficiency reasons) for this project rather than the chips we actually implemented ourselves in Project 1 I was wondering if you could strictly speaking be said to have built a computer from scratch?
Because we aren't technically building a computer from scratch if we aren't using our own chips? We are using the work of other people who have optimised our implementations of those 15 chips in Project 1 (is this considered "cheating"? Using other people's work?).
I can see the reason behind it, and I understand that the main point of Project 1 is to understand the abstractions which are more important than specific implementations themselves, but if someone could shed more light regarding this, I'd really appreciate it, as it bugs me a little.
Re: Is using built-in chips considered to be "cheating"?
I think that the point is that you have learned enough so that you could build the Hack Computer out of Nand gates. It would, howerver, take a far more powerful computer than a typical PC to simulate the more than 5,000,000 Nand gates required to do so.
There is a small missing piece when you get to chapter 3. You are given the DFF as another primitive to use.
D flip-flops can be made out of Nand gates. If you would like to know how, take a look at this page about Sequential Logic on play-hookey.com. There's a lot of other good stuff on play-hookey, too.
Alto missing from a complete Hack Computer are the frame buffer (Screen memory) and display and keyboard interfaces.