Sorry! Online
This project was to create a version of the game Sorry! on android devices. I worked in a team of 4 people. Two of them worked on the front-end development using Android Studio. The other 2 worked on backend development using springboot and SQL. I was one of the front-end developers so I mostly worked on making screens and making them communicate with the server. We decided to add many features to make it more enticing and fun for new players. We ​added a shop, clans, live chat, and a leaderboard. I had a hand in most parts of development, but my main contributions were the shop and the account creation and log-in.
I’ve learned many things through this project. I’ve become much more proficient at using SCRUM to maintain our pace and keep us focused on what needs done. I also have gotten a lot of experience using GIT to work efficiently in a team. This project has a lot of things that apply to the larger world. It is a full-fledged android app that taught me a lot about app development. I am now comfortable with working in Android Studio and can do basically anything I’d need to in it. I also worked a lot with Volley and Websockets, which are different ways to talk with the server. So I am able to send many different requests and am comfortable with making a program talk to a server. Most of the logic and data is stored on the server to reduce the overhead on the phone.
VHDL MIPS Processor
This project involved constructing multiple different versions of a MIPS processor using VHDL. I worked in a group with myself and one other person. We each contributed different components to the processor. I always would do the top level integration and testing to ensure proper construction and operation. The first iteration that we made was a single-cycle processor. I had to make an ALU and register file as well as all of the sub-components that those require. I did the majority of the testing and debugging for this part as well as the future parts. The next iteration was a multi-cycle design that relied on the programmer to handle scheduling and avoid any data or control hazards. The final version was a pipelined multi-cycle processor that included forwarding logic for both data and control hazards in order to avoid stalls when possible.
This project taught me about the construction of a processor and how all of the components interact. I gained a lot of in-depth knowledge about all of the individual components and their exact uses. I became very proficient at VHDL programming, as well as reading wave forms in Questa to debug the operation of components. I gained a lot of intuition about the inner workings of processors and how everything operates. I learned to program in assembly, as well as translate that assembly into binary and feed that into the processor.