and then part 2: https://www.coursera.org/learn/nand2tetris2
[Both courses are free]
These are fantastic courses, by far the best MOOCs I have ever taken. I went into them knowing nothing about computer architecture, and by the end of the first course I was able to design a fully-working digital computer in Logisim.
While other courses consist of lectures + text content, with Nand2Tetris the course is practical. The authors have developed a complete software system to allow you to complete the course:
* A simplified hardware programming language to design the ALU, CPU, clock, RAM, etc..
* A hardware simulator and debugger to allow you to test the hardware that you develop
* An assembler for the assembly programs you write for the computer
* A compiler for the higher-level programs you write for the computer
I'm probably banging-on about this course more than I reasonably should, but that's just because I enjoyed the course so much!