Even though this was an intermediate level class, Dr. Brezeale held us to a very high standard throughout this course and went above and beyond the subject of the course. During the course of this class, I completed heavy C programming assignments with tight deadlines. The class was heavily focused on data manipulation using C programs. This was a perfect introduction for my algorithms and data structures class as I got to practice my C programming skills and learn about the basics of C programming, such as pointers and lists. Some of the projects for this class involved going through multiple CSV formatted files with partially predefined file names and extracting thousands of numerical values (located randomly within the file) and make calculations or sort the data and finally output the processed results in a very specific format. To make things more challenging, the output would have to match a very specific format for it to be considered valid. I am very thankful to have taken this class with Dr. Brezeale as I got to challenge and push myself and learn.
Algorithms & Data Structures
CSE 2320 | Fall 2015 | Dr. Alexandra Stefan
In this class I learned about programming algorithms and their real-life applications. I worked on assignments that would require me to comprehend complex algorithms is C or C++, and modify them by adding features. Working on someone else's code was a challenge, as first I would have to understand what the code was designed to do, then make the necessary modifications. I explored different sorting algorithms and the philosophies behind each, such as merge sort, quick sort, bubble sort and radix sort. I realized the importance of time complexity and how time analysis can be used in real life scenarios to minimize the running time of an application and optimize the code. In addition I learned about practical algorithms such as word distance finder, which has applications is auto correction. I also learned about algorithms for finding shortest paths, such as the Prim's algorithm, which works by construction a minimum spanning tree and Dijkstra's algorithm which constructs a shortest path tree starting from a single node and evaluating different possibilities from there. Finally, I developed a deep understanding of data structures and how they are implemented, such as lists, binary trees, 2-3-4 trees and graphs (both the list implementation and the matrix implementation of graphs).
Computer Organization & Assembly Language Programming
CSE 2312 | Fall 2015 | Dr. Christopher McMurrough
The CSE 2312 is my favorite course of all time. Dr. McMurrough helped me develop a deep understanding of computer architecture and how computers work at the hardware level. We explored the structure of the CPU and how instructions are executed at the CPU level. Dr. McMurrough showed us in detail, how the 0's and 1's travel through the CPU and demonstrated all the various components within the CPU such as the Control Unit, ALU, registers and multiplexers . We also discussed different strategies for improving performance such as parallelism and instruction pipe-lining. For the second half of the course, we got to practice assembly programming on a Raspberry Pi. I designed and implemented programs written in assembly language, such as sorting algorithms. This was a great experience as I got to work on the hardware and gain practical experience programming at a low level, manipulating the CPU registers and utilizing system calls. I passed the class with a letter grade of A.