This. Our goal was to build a toy OS, from scratch, in x86 assembly, that could multitask execution of DOS COM files. God help you if you didn't already know ASM.
Fortunately we were graded at milestones, and our sins (bugs) were forgiven by replacing our individual buggy implementations with known working implementations that covered the concepts up to that point.