My first exposure to C was through Software Systems in my undergrad, taught by Prof. Steve Matsumoto.
We covered foundational concepts (reversing linked lists, mutex construction etc.) and assembled those into more complex projects (a wave function collapse image-generation implementation).