There will be 6 regular programming labs required for all. On the first two labs only, you may work with a partner. Work on the other 4 regular labs must be your own (this means no cheating, copying, contracting, consulting, …). In this series of labs you will “build” a simple processor from the ground up, including support for interrupts and virtual memory for interaction with software. You will program in C to make the learning curve smoother and your work more productive. Yet, the labs will take time.

One critical aspect of these labs is that you are responsible for testing them well. Write good and comprehensive tests and don’t settle for the very minimal functionality tests we will provide you. When grading, we use a comprehensive array of tests, but we do not make those available to you. Writing good tests requires understanding the architecture well and is a crucial part of the learning experience. Borrowing, copying, consulting, … on the tests is also cheating.

Useful Links


General Submission Instructions

You will find detailed instructions within each lab assignment. General instructions below.

Labs

  • See Assignments on Canvas