This quarter I have been working on several side projects related to my courses in addition to the assigned programing. I am taking two relevant classes CMPS 101 - Abstract data types and CMPE 110 - computer architecture. Both classes have plenty of opportunities for side projects but the ones for CMPE 110 require a bit more creativity because it’s not a class about algorithms so we are necessary taught explicit algorithms to solve problems. Thus creating apps to help with problems in this class requires tinkering with the manual procedure to arrive at one that can be automated. But that is enough boring background. You probably just want to see the apps. All the apps can be found at cs.williamritson.com.

Cache Simulator

This is a simple cache simulator I wrote mirroring some of our assigned problems. It the results of memory accesses to a single level of a cache. It allows for the configuration of parameters like cache size, associativity, replacement policy, ect.

You can find it at cs.williamritson.com/#/cache.

MIPS Pipeline Diagram Generator

This is a program that generates pipeline diagram from mips snippets. It was probably the hardest of all three programs to get write as there are three different algorithms and lots of details to worry about. It can run in order execution, Tomasulo’s algorithm or scoreboarding and allows for the configuration of options like number of functional units, execution time per units and what instructions use memory.

You can find it at cs.williamritson.com/#/pipe.

Breadth and Depth first search visualizer

This is a visualization of graph or depth first search. It allows the user to input a graph then run one of those algorithms on it and see how the graph is colored and the various tables associated with those searches change with each step. It was probably the easiest of the three programs to write because I already had a good understanding of both algorithms and pseudocode. The interface was also relatively simple (less options).

You can find it at cs.williamritson.com/#/graph.