I'm a contract embedded systems / firmware programmer with thirty years in the industry. It sure has changed over the years!
I recently spent 3 years teaching High School Geometry and Algebra II to gifted middle schoolers. Alas, the school went bankrupt last year and I'm back to programming; teaching was a lot more fun.
I was looking for some materials for one of my past students who has become interested in computer hardware when I stumbled on TECS. I wish I'd found it 5 years ago. I had a couple other students who might have found it useful, too.
I spend evenings last week working up through chapter 6 (it's been 30+ years since I wrote an assembler!). I'm really impressed at how streamlined and well organized TECS is.
So, why "cadet1620"? My first PC was an IBM 1620 computer. 2 buddies and I bought it from a Junior College that was upgrading. It cost us $2000 plus about $500 to get it from La Junta to Boulder (Colorado, USA). It took up half of a two car garage. The IBM 1620 did not have any add or multiply hardware; it used lookup tables that had to be hand loaded in its memory. Thus its nickname "Can't Add Doesn't Even Try".
Oh, and that thing in my avatar -- that's a 1960's pocket calculator!
Great story and great name. It really helps me less frustrated that I can't pick up all this stuff in just two weeks! In my lifetime there was a no-adding computer that was a humongous mess of hardware! Wow!
I learned a serious amount by taking this course. Logic gate, Boolean algebra, RAM/ROM, and Von Neumann architecture are all completely new to me. That said, I have decided to shift my goals for my two weeks. I completed all the video lectures and previewed the projects. I completed the first three projects but kept finding myself thinking that the only way I was really coming up with the logic of the gates was using online supports for images, examples. Then, I was able to really think through my notion of cheating. I kept wondering if I was cheating. Then, I found that people publish their .hdl codes and realized that THAT was cheating. Seems like a good thing to put out to my colleagues as we increase our CS offerings.
In order to complete the course projects I would have far exceeded the time I have to complete the work and still don't fully understand the capability of the high-level programming languages. Without understanding the framework at the bottom of the hardware and software the computer uses to complete tasks, I agree that the high level languages would have much less context.
So to achieve both a view from the top and the bottom I am now moving on to Code.org 20 hour course for programming in Blockly.
At the end I will be able to share what I've learned with my colleagues and consider how I want to proceed down the line. I foresee many areas where what I've learned will help me establish more interdisciplinary projects and work with my colleagues in CS and engineering.