CENG3420 Course Review
Term Taken: 2024 Spring
Instructor: Prof. Bei Yu
Grading Scheme
- Attendance: 5%
- Assignment: 15%
- Midterm: 20%
- Labs: 20%
- Final Exam: 40%
Textbook
- David A. Patterson, John L. Hennessy, “Computer Organization and Design”, Elsevier, 5th Edition, 2014
Review
I wasn’t planning to write a course review for this course, but since there’s not much information available and there are some things I want to say… here it is lol.
This course is about computer organization and design. As the name suggests, you can expect to learn a lot about how computers work in terms of hardware. You’ll cover topics like assembly language, instruction set architecture, and memory systems. The first half focuses more on assembly language, and the second half dives into memory. The content is quite straightforward — at least for me. I kind of enjoy learning which part is responsible for what, blah blah blah. So I’d say there are definitely some valuable things you can learn from this course.
In the tutorials, you’ll have three labs to complete. The first one is about assembly language, where you’re expected to write some RISC-V code (which is similar to MIPS, if you know what I mean). There’s nothing too surprising here—just break the code down based on the flow, and you’ll be fine.
Labs 2 and 3 are where things get more interesting (and harder). You’ll use C to write your own assembler. Sounds cool, right? But it’s not as easy as Lab 1. There is a binary file where you need to “fill in the blanks,” which is still manageable as long as you understand how the signals flow. The more difficult part is writing the actual C code to make the assembler work. That said, once you get the concept, it becomes pretty intuitive. And after finishing that lab, I believe you’ll truly understand what this course is about.
However, apart from the course content, there’s not much else I liked about the course. In tutorials, the tutor doesn’t give you much help—just reads out the slides, which also don’t have clear instructions on what to do or how to do it. But that’s fine—we’re CS students and supposedly smart enough to figure it out lol.
As for the lectures, you can learn something from them — if you can actually learn something from them. Sounds weird, right? That’s exactly what I got out of this course. Maybe the instructor is super successful in the field, but when it comes to teaching… you’ll know what I mean once you attend the lectures.
Overall though, the course is solid in terms of the knowledge you gain.
Resource
I’ve written some notes for this course, which you can find here. But I highly recommend referring to the textbook—it’s very clear and will help you really understand what this course is about.