I am very proud to be the only CS student in the department who has actually hand-coded a processor, part of an operating system and a compiler.
For the processor, I implemented a multi-cycle UniCore processor with pipelining in Verilog.
For the operating system, JOS is a teaching operating system used in MIT CS 6.828. It has a basic framework of a UNIX-like operating system in C and I have to write all the core functions myself including virtual memory, multiprocessing, interruption and system call, etc.
For the complier, the course is from UCLA CS 132. MiniJava is a subset of Java including all the core features like different variable types, arrays, function, class and class derivation, etc. Given a grammar tree, I implemented a compiler in Java which is able to compile MiniJava code to runnable MIPS assembly.