5

I watched the Crash Course playlist of Computer Science. It was teaching about RAM, CPU, Storage etc but I felt it was way too fast and only people who have studied the course first hand understood it better.

So I wanted to ask what CS couse actually teaches the details of CPU, RAM and how it is build from the scratch with the help of Logic Gates.

Rifat
  • 59
  • 3

2 Answers2

16

The subject you're describing often goes under the names computer architecture, computer systems, computer organization and design, and the like. One example is Elements of computing systems, based on a course From Nand to Tetris originating in the Hebrew University. The Amazon page on the book links to other popular textbooks on the topic.

Generally speaking, this area is at the intersection of computer science and electrical engineering. Some aspects are much closer in spirit to electrical engineering, for example the physics behind memory and storage architectures. Other aspects, such as cache coherence algorithms and error-correcting codes, are more likely to be considered an integral part of both disciplines.

Yuval Filmus
  • 276,994
  • 27
  • 311
  • 503
  • I'm a student of Electrical & Electronic Engineering. Haven't quite came across this course. I'm in sophomore though. – Rifat Sep 12 '20 at 13:32
  • @Rifat : If your school has a "computer engineering" degree, look there. You may also see some of this in a course named something like "digital logic design". – Eric Towers Sep 12 '20 at 22:25
  • 3
    My school called this particular class "computer architecture" and it's one of the few classes that EEs, CPEs, and CS majors had to take together. – CL40 Sep 13 '20 at 02:29
  • Adding to that: This area also has some intersection with Algebra (twos complement comes to mind), language theory, and, when it comes to "designing", software engineering best practises. Depending on where you are, sometimes security engineering might have a critical too; it really brings many disciplines together. – ljrk Sep 13 '20 at 09:20
  • @Rifat: I've got a Computer Engineering degree (also known as Electronics Engineering (Computing) ) and at my school regular Electronics Engineers don't normally take the Computer Engineering course which covered computing hardware. FWIW the course was taught by teaching us 3 different assembly languages then comparing the difference between architectures. For actual hardware most of it is covered by the Digital Design course but there wasn't a single course that led you through the design of an entire computer – slebetman Sep 13 '20 at 09:25
  • 1
    ... to be honest, I only fully understood how computers really work around 2 years after graduation while in a foreign country on a work assignment feeling bored in my hotel room and downloading a copy of Logisim and deciding to design my own CPU. I started with a simple design that copied data from one address in RAM into another address based on the content of another part of RAM. I evolved my original design from there. In some colleges such as Tu Delft and UC Berkeley if you happen to be there at the right time you can be involved in designing CPUs (TTA at Tu Delft, RISC at Berkeley) – slebetman Sep 13 '20 at 09:31
  • "Generally speaking, this area is at the intersection of computer science and electrical engineering" and neither discipline teaches it well. A number of years ago I was working at a university with a very good first-degree course, I think it was called "EE and Computing". The IEE (as it was in those days) threatened to withdraw accreditation since it didn't include sufficient study of electrical machines (i.e. motors/generators etc.). – Mark Morgan Lloyd Sep 13 '20 at 13:35
-1

The basic concepts without gates goes under Operating Systems course, and with gates, clocks etc. goes under Digital Logic Design or (mostly) Microprocessors as I experienced.

ayasin
  • 11
  • 1
    The part complementing logic design and implementation would be computer architecture rather than OS. – greybeard Sep 14 '20 at 06:45