Balancing low-level vs. high-level programming knowledge in an undergraduate microprocessors course | IEEE Conference Publication | IEEE Xplore