Matthew Robson
Coursework
Through an independent study program with a professor, I explored quantum computing and built labs for the Advanced Computer Science course. In the course of the quantum computing study I focused on the physical principles of trapped-ion quantum computers and built a C++ simulation of low-qubit quantum computers. I then cross referenced the results of my simulation with the Qiskit/AER and presented my finding to the Oden Institute at UT Austin. The primary lab that I built for the Advanced Computer Science course was a parallel computing lab that focused on teaching students how to use tools like SLURM and OpenMPI to run parallel computing, along with the aspects that are less obvious, like how to build the physical cluster down to the wiring and how to setup many linux computers to work together as a cluster. The lab was very hands-on and students were able to build their own 4-node Raspberry Pi cluster and run parallel computing workloads on it. I can't include this lab here publicly because it was built for a specific course, but I can provide more details if you are interested.
This course focused on advanced data structures and the software development lifecycle (SDLC). Through the course I created projects such as a custom implementation of MALLOC and FREE and a basic relational graph database for a custom mapping application for my school. The course also focused on the SDLC and how to work in medium sized teams to develop software projects. We used tools like Kanban boards, GitHub actions, and the Agile framework to manage our projects and work in teams. This course also included a significant focus on unit testing and test driven development.
This course is a Python based introduction to data science and statistical modeling. We used model packages like PyMC, Bambi, TensorFlow, and SciPy to build and evaluate our own statistical models. This course focused on allowing students to explore any dataset and build progressively more advanced models to predict the data. In the course I focused on a few different sets of financial data and scientific data. We used model types like mixture models, splined polynomials, linear regressions, and random forests to predict the data and evaluate the models using ELPD LOO.
This course begins with the basics of electronic circuits and the physics that governs modern transistors. We then move on to building logic gates and more complex circuits with these transistors. The course then piviots to building a Turing-complete computer in Logisim using these basic logic gates. From there we learn how to interface with the computer, writing our own assembly and to run on this simulated computer. We then focus on writing optimized ARM assembly code and finally learning the basics of Verilog and implementing it on an FPGA. This course was very hands-on and we had the experience of working with professionals at NXP by going in the clean rooms to see how they manufacture the chips that we were working with in class and working with professionals at Silicon Labs to learn how they design and test their chips.
This course covered content from matrix algebra and linear transformations to vector spaces and inner product spaces. The course was very based on proofs and personal discovery of the theorems.
This course covered all of the basics of multivariable calculus, including partial derivatives, multiple integrals, and vector fields, but went further into requiring students to prove the theorems ourselves and understanding these concepts at a deeper level. The course was highly collaborative and we worked in groups to derive the theorems with guidance from the professor on how to add rigor to our proofs.
I helped teach a course on introductory Python to highschool students of all grades. The focus of the course was on breaking down complex problems and helping students develop solutions. We covered a very wide range of topics, starting with the basics in Scratch and Python, but by the end of the course, students made physically interactive light displays using very basic C++ and Arduinos. I served as a TA for two semesters and helped teach a total of 30 students. I helped organize the students, grade assignments, and provide one on one help to any students that had questions.
Computer Science A, Calculus BC, Physics I/II, Physics C Mech/EM, Statistics, World History, US History, US Government, Macro Economics, and English Lit/Lang.
Projects / Experience
As a part of an Internship with the Institute for Computing in Research, I worked on a research project to analyze the long tail impacts of subprime lending on the current US housing market. I worked closely with a PHD student to analyze government data and build statistical models to predict the long term impacts of subprime lending on the current housing market. I developed a research paper on my findings and am currently in the process of improving the paper with my mentor to submit it to a journal for publication. (note the paper on the github is not up to date with my current research)[github]
I built a lab for the Advanced Computer Science students at my school to learn about parallel computing and distributed systems. The lab primarily included building the physical cluster down to the wiring and how to setup many linux computers to work together as a cluster. The lab was very hands-on and students were able to build their own 4-node Raspberry Pi cluster and run parallel computing workloads on it. I focused on making this lab cover every aspect of parallel computing, from the setup of the physical hardware, to the deployment of SLURM and OpenMPI for computing, DHCP for networking, and NFS for file sharing between nodes. (this lab is not publicly available because it was built for a specific course, but I can provide more details if you are interested)
Developed a C++ Schrödinger-model simulator and CLI gate executor, presented at the UT Austin Oden Institute. I worked through basic quantum computing algorithms in Qiskit and then translated them into my own simulation tool in C++. This simulation was very naive, but allowed for a clear distinction between the real physical processes of the trapped-ion computer, and the abstract perfect processes of the Qiskit simulator.[github]
I created a 4D complex number graphing calculator in Java using the swing library for graphics. The calculator takes in raw LaTeX input and parses it using a custom parser to tokenize and turn the equation into a form that can be evaluated. I then used analytical continuations of equations to evaluate the input equation in 4D space and graph the results. The form of plotting used by the calculator is completely novel and allows for a very intuitive understanding of 4D complex numbers. This project was advised by one of my math professors and won first place in a local computer science expo.[github]
As a part of my Data Science coursework, I developed a Bayesian prediction model for NVIDIA stock prices using PyMC and ELPD LOO-CV validation. Through the project I was able to predict NVIDIA stock prices with a high degree of accuracy and understand how different subsections of the tech stock market impacted NVIDIA stock prices. I used mixture models and splined polynomials to model the data.[github]
Designed and built a microcontroller-driven quadcopter with custom 3D printed components. This project involved selecting appropriate hardware and constructing and repairing the quadcopter. Through this project I learned about the engineering repair and design process. Additionally I learned more about the integration of hardware and software in embedded systems.
Through my work in my Digital Electronics course, I designed a turing-complete computer and optimized its ALU and pipeline for efficiency. This project was done in almost completely in Logisim Evolution, and the compiler was written in python. This project really introduced my into the extremely low level development that is required for modern computers. [github]
As a final project for my Advanced Computer Science course, I developed a web application with a C++ backend and Python django frontend framework. This project was done in a team of 5 students and focused on developing a tool for students to map the fastest route between classes on campus. The project used common DSA concepts such as the Bellman-Ford algorithm and a graph data structure to model the campus and find the fastest route.
Organizations
I was the chapter captain for my high school that oversaw 15 teams (75 students) and the Linux engineering lead for my team. Our team saw success in multiple competitions, including a 1st place internationally in round 1 and receiving the 2nd place state award during the state competition. During my time in CyberPatriot I focused primarily on Linux system administration and security through system hardening and application specific security. I also focused on developing sets of Bash and Python scripts to automate the process of hardening the most important services and configuration of Linux systems. I primarily focused on Ubuntu, Mint, and Debian based systems. As the chapter captain, I also focused on developing the technical abilities of the other student in my chapter. This included teaching students how to use Linux system and the basics of security and system hardening. Through my work in the club I successfully mentored 10 teams to the platinum division in their first year of competition. Additionally, I mentored middle school students to successfully compete and develop their technical skills in cyber security.
I founded and captain the competitive computer science club, leading teams to district championships. I placed first individually and as a team at the district level of UIL computer science. Additionally, I led the weekly club meetings covering algorithms, data structures, and problem identification commonly found in competitive programming.
I competed in PicoCTF two years, placing top 85 in the high school division both years. I primarily focused on reverse engineering, cryptography, and cryptocurrency challenges. I used tools such as Ghidra and Python to solve advanced challenge and develop my own tools to solve challenges. I also held meetings with other students prior to the competition to introduce some of the most common concepts and tools used in the competition.