ECE 551D: Programming, Data Structures, and Algorithms in C++