ECE 2400 Computer Systems Programming

ECE 2400 includes five programming assignments that allow students to incrementally design, implement, test, and evaluate a high-performance handwriting recognition system to automatically classify handwritten letters. In the first programming assignment, students implement a recursive square root function in C. In the second programming assignment, students implement doubly linked list and resizable vector data structures in C. In the third programming assignment, students implement a variety of sorting algorithms in C. In the fourth programming assignment, students port their square root function, resizable vector data structure, and sorting implementations to C++ and then implement to classify handwriting digits using both a linear and binary search algorithm. In the final programming assignment, students implement either a table-based or tree-based search algorithm and also an algorithm of their own choice in C++. The above image shows the MNIST handwiting dataset along with a Python front-end which enables students to draw their own digits and then apply their C++ classification algorithms. For more information about the course see the ECE 2400 webpage.