Noah M. Daniels, Ph.D University of Rhode Island

CSC 411 is an unorthodox approach to the classic computer science topic of Computer (or Machine) Organization (or Structure or Architecture).

This course has its origins in Tufts University's (in)famous Comp 40, which I co-taught with my teaching mentor, Norman Ramsey, in 2010, and then taught in 2012. Since then, I have redesigned this course to use the Rust language, and made significant changes to assignments. However, the core concept of the course is one that begins with an introduction to programming with multiple modules, and works "downward" through layers of abstraction towards the machine representation of code and data. It then builds back up through a virtual machine and an assembler for that virtual machine.

This is one of the most programming-intensive courses in our department, and one which students routinely credit for their ability to thrive in their first industry job (or in academic research).

An example syllabus is available.

I will endeavor to build up a persistent collection of Rust programming resources here, so we will start with the "cheat sheet." Learning Rust With Entirely Too Many Linked Lists is an excellent resource, especially for those comfortable with C++. There is also The Rust Book, the Rustlings Course, and Rust By Example.

A selection of assignments, largely adapted from Norman Ramsey's course at Tufts: