Computation Structures 2: Computer Architecture

Provided by:
8/10 stars
based on  4 reviews
Provided by:
Cost FREE
Start Date On demand

Course Details

Cost

FREE

Upcoming Schedule

  • On demand

Course Provider

edX online courses
Harvard University, the Massachusetts Institute of Technology, and the University of California, Berkeley, are just some of the schools that you have at your fingertips with edX. Through massive open online courses (MOOCs) from the world's best universities, you can develop your knowledge in literature, math, history, food and nutrition, and more. These online classes are taught by highly-regarded experts in the field. If you take a class on computer science through Harvard, you may be tau...
Harvard University, the Massachusetts Institute of Technology, and the University of California, Berkeley, are just some of the schools that you have at your fingertips with edX. Through massive open online courses (MOOCs) from the world's best universities, you can develop your knowledge in literature, math, history, food and nutrition, and more. These online classes are taught by highly-regarded experts in the field. If you take a class on computer science through Harvard, you may be taught by David J. Malan, a senior lecturer on computer science at Harvard University for the School of Engineering and Applied Sciences. But there's not just one professor - you have access to the entire teaching staff, allowing you to receive feedback on assignments straight from the experts. Pursue a Verified Certificate to document your achievements and use your coursework for job and school applications, promotions, and more. EdX also works with top universities to conduct research, allowing them to learn more about learning. Using their findings, edX is able to provide students with the best and most effective courses, constantly enhancing the student experience.

Provider Subject Specialization
Sciences & Technology
Business & Management
22043 reviews

Course Description

Digital systems are at the heart of the information age in which we live, allowing us to store, communicate and manipulate information quickly and reliably. This computer science course is a bottom-up exploration of the abstractions, principles, and techniques used in the design of digital and computer systems. If you have a rudimentary knowledge of electricity and some exposure to programming, roll up your sleeves, join in and design a computer system!

This is Part 2 of a 3-part series on digital systems, teaching the fundamentals of computer architecture and is based on a course offered by the MIT Department of Electrical Engineering and Computer Science. Topics include instruction set architectures and assembly language, stacks and procedures, 32-bit computer architecture, the memory hierarchy, and caches.

Using your browser for design entry and simulation, you’ll implement a 32-bit computer using our gate library and write ...

Digital systems are at the heart of the information age in which we live, allowing us to store, communicate and manipulate information quickly and reliably. This computer science course is a bottom-up exploration of the abstractions, principles, and techniques used in the design of digital and computer systems. If you have a rudimentary knowledge of electricity and some exposure to programming, roll up your sleeves, join in and design a computer system!

This is Part 2 of a 3-part series on digital systems, teaching the fundamentals of computer architecture and is based on a course offered by the MIT Department of Electrical Engineering and Computer Science. Topics include instruction set architectures and assembly language, stacks and procedures, 32-bit computer architecture, the memory hierarchy, and caches.

Using your browser for design entry and simulation, you’ll implement a 32-bit computer using our gate library and write assembly language programs to explore the hardware/software interface.

 

Learner Testimonial

“If you look back, we've done sooooo much: assembly programming, stack crawling (detective work), building a 32-bit computer, for crying out loud, and also learnt about caches as the cherry on top (which really helped me because I always had trouble understanding how temporary memory worked). And to top it off, they're promising us more exciting courses in the future.” -- Previous Student

Computation Structures 2: Computer Architecture  course image
Reviews 8/10 stars
4 Reviews for Computation Structures 2: Computer Architecture

Ratings details

  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.

Sort By
Fedor Bublikov profile image
Fedor Bublikov profile image

Fedor Bublikov

4/10 starsDropped
1 year, 4 months ago
"Well, you'll say, this all looks very complicated, Chris..." - jokingly drops professor Terman (still undeniably awesome) while dissecting another mind-boggling concept on the blackboard, which turns out not as impenetrable as it seemed for the first time. Unfortunately, things get complicated pretty fast here and sometimes I could not shake the feeling that difficulty curve of some later parts of the course has the slope that was amped up artificially, just for the sake of added difficulty. For example, all C listings (in this section course suddenly hijacks your regular course on low-level programming) in the procedure section feature recursive calls. Not just a few, ALL of 'em. In my opinion, it does not make the concept of stack frames/return points any more clear, just adds additional level of unnecessary complexity and possible confusion, just for the heck of it. Another example of artificial difficulty would be a section on ... "Well, you'll say, this all looks very complicated, Chris..." - jokingly drops professor Terman (still undeniably awesome) while dissecting another mind-boggling concept on the blackboard, which turns out not as impenetrable as it seemed for the first time. Unfortunately, things get complicated pretty fast here and sometimes I could not shake the feeling that difficulty curve of some later parts of the course has the slope that was amped up artificially, just for the sake of added difficulty. For example, all C listings (in this section course suddenly hijacks your regular course on low-level programming) in the procedure section feature recursive calls. Not just a few, ALL of 'em. In my opinion, it does not make the concept of stack frames/return points any more clear, just adds additional level of unnecessary complexity and possible confusion, just for the heck of it. Another example of artificial difficulty would be a section on low-level commands. Based on the data path of the existing commands, you must deduce the potential data path of the new ones. That would be a good exercise, indeed. The catch is, details on the existing commands, the ones you will be using as a reference, are not mentioned anywhere in any substantial detail. I believe this was done deliberately. Of course, you can put in tons of time and still do it, perhaps, with the sense of greater accomplishment. But as an actual engineer, this nasty feeling of "there's gotta be a better way" kept bugging me. Disbalance between the course content and graded labs escalates even more further on. First lab on BETA Assembly language took me about 1 hour to complete. Second one took about 25. Your milage may vary, of course. Some good news for the nerds: pipelining, Assembly code and BETA processor are thrown in the blender for a good measure. Not-so-good-news: flaws introduced by the broad scope escalate here. While I had no major problems following the lectures and doing ungraded exercises, laboratory assignments, especially if you missed ALU lab from the previous course, will vary from "hard", to "almost impossible". Near the end the course suddenly remembers about digital circuits (without any emphasis on digital electronics at this stage) and routinely throws "let's build a processor" lab at you. Needless to say, if you had trouble with building the ALU in the previous part of the course, this one will be much less doable. To add the insult to injury, course has no assigned textbook, so you really don't have anything to supplement the missing/incomprehensible information. Yes, I know that there WAS a textbook at some point. Not anymore. You can turn to the forum to get help and instructor will do her best to help you to get through exercises. However, support for the Jade-powered labs is much to be desired. Truth to be told, I had to stop the course and unsubscribe from Part 3 eventually. It's definitely not a 6 hr/week course. I would not recommend you to take this course in its current state, unless added frustration does not bother you, or you have some prior experience with the course scope.
Was this review helpful? Yes0
 Flag
Steven Frank profile image
Steven Frank profile image
10/10 starsCompleted
  • 59 reviews
  • 57 completed
1 year, 10 months ago
The plot thickens in this second of three modules that constitute the online version of MIT 6.004, Computation Structures. In part 1, we descended deep into the gate-level workings of digital circuits. In this installment we jump up a level to programmable architectures: the datapaths and control units that process assembly-level instructions into outputs. This is where you really begin to learn the design and operation of modern processors. Organized around a hypothetical, simulated processor called the Beta, the labs have you coding sorting algorithms in assembler and actually building, on the screen, a working implementation of the Beta from hardware components (which you previously built from transistors on up during the first course module). Building the Beta is a worthy and rewarding challenge requiring attention to detail, careful choices, and some creativity. The presentation, problem sets and labs in 6.004.2x are fl... The plot thickens in this second of three modules that constitute the online version of MIT 6.004, Computation Structures. In part 1, we descended deep into the gate-level workings of digital circuits. In this installment we jump up a level to programmable architectures: the datapaths and control units that process assembly-level instructions into outputs. This is where you really begin to learn the design and operation of modern processors. Organized around a hypothetical, simulated processor called the Beta, the labs have you coding sorting algorithms in assembler and actually building, on the screen, a working implementation of the Beta from hardware components (which you previously built from transistors on up during the first course module). Building the Beta is a worthy and rewarding challenge requiring attention to detail, careful choices, and some creativity. The presentation, problem sets and labs in 6.004.2x are flawless -- often dazzling to us nerdy types. The lectures are never boring and always understandable, with interesting digressions into the limits of computation, the design of compilers, and the building blocks of computer memory. In addition to instruction sets and basic processor architecture, this module covers stack operation and cache design. Once again, it's about four weeks of material from the residential class spread over 12 weeks of study. This can be awkward in terms of continuity -- re-learning complex topics studied months before in preparation for the final exam can feel like prying the lid of an old paint can -- but if the relaxed schedule means more people with busy schedules can participate, it's a price well worth paying.
Was this review helpful? Yes0
 Flag
Imran Khan profile image
Imran Khan profile image

Imran Khan

10/10 starsCompleted
1 year, 11 months ago
A passionate professor, an extensive curriculum and excellent tools make this course one of the best on edX.
Was this review helpful? Yes0
 Flag
James To ey profile image
James To ey profile image

James To ey

10/10 starsCompleted
2 years, 8 months ago
A fantastic course. The simulation-based lab exercises are extremely valuable and a lot of fun. The CPU design lab is challenging, but the feeling of accomplishment when you get it to work is tremendous.
Was this review helpful? Yes0
 Flag

Rating Details


  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.