Summa Cum Laude (with Highest Honors)
Business Foundations Certificate with Highest Distinction
Endowed Presidential Scholarship Recipient
Graduation: Spring 2018
Immigration/Visa Status: US Citizen
I have taken Artificial Intelligence, Data Mining, Network Security And Privacy, Big Data Programming, Cloud Computing, Algorithms and Complexity, Software Engineering, Principles of Computer Systems (better known as Operating Systems), Computer Architecture, Data Structures and Discrete Math. Apart from all of this, I have been involved in independent research as part of a Computional Intelligence research lab.
Spring 2018CS361S: Network Security And Privacy with Cameron Beasley
Conducted by the UT Information Security Office, this course consisted of lectures on common security vulnerabilities, and four large Capture the Flag challenges. In class, various lecturers from the security team discussed the theory behind certain vulnerabilities and talked about the ways in which each vulnerability could be exploited. The projects were then left intentionally open-ended. 100% of our final grade came from Capture the Flag projects. I spent a lot of time on but also deeply enjoyed these projects.
Although I do not have plans to work in security, I think it is crucial for all software engineers to consider security vulnerabilties when building their applications.CS378: Cloud Computing with Devdatta Kulkarni
This course discussed the theory behind common Cloud products. Most notably, we read papers and talked about the architecture behind Dynamo, Kubernetes, Docker, and PaaS solutions.
Fall 2017CS343: Artificial Intelligence with Dr. Risto Miikkulainen
This was largely a project-based class. We worked on OpenNERO, "an open source software platform designed for research and education in Artificial Intelligence." Personally, I did not find a large portion of the projects to be particularly useful. The slides and content of the course was still interesting. The topics covered can be viewed at https://www.cs.utexas.edu/users/risto/cs343/schedule.html.
We talked about and worked a lot with MapReduce techniques and design patterns. The first half of the course focused purely on Java Hadoop MapReduce with some tools such as Avro and Maven. In the second half, we switched to using Spark and talked about some other current Big Data Tools.
This was one of my favorite courses last semester. The course was split up into Classification, Clustering, and Association Analysis. We tried to go into as much depth as possible while covering a broad range of topics and data mining techniques. There were assignments to implement algorithms such as creating and pruning decision trees, nearest neighbors, DBSCAN, hierarchical clustering, FP Growth, sequence mining, and more. We covered a lot and I certainly enjoyed the course.
Spring 2017CS373: Software Engineering with Dr. Glenn Downing
Overall, this is a fantanstic class and it is a must-take, not because of the content specifically, but because of the teaching style of Professor Downing. That said, the content is oriented towards getting students prepared for modern software engineering. We focus on testing and using tools such as AWS, ReactJS, SQLAlchemy, coverage, Docker, CI, Pylint, and PostgresSQL.
CS331: Algorithms and Complexity with Dr. Dana Moshkovitz
This class focuses on Algorithm design and complexity theory. We learn about Dynamic Programming, Divide and Conquer, Graph Theory, Network Flow, Linear Programming, NP, Approximation, and Computability to name a few.
Fall 2016CS439: Principles of Computer Systems (OS) with Dr. Alison Norman
This has been one of my favorite courses at UT. This intensive class convers topics related to systems programming in general (synchronization, deadlocks, security, etc.) and the development of operating systems. As projects, we had to design and implement various parts of the OS (User Programs, Virtual Memory, File System). It was a lot of work and a lot of fun.
This course lasted two semesters and was offered as part of the
FRI (Freshman Research
Initiative) program. The course covers evolutionary algorithms with
a focus on genetic algorithms, neural networks, 3D printing, and surrogate-based
optimization. In the first semester, we learned about these techniques and used
them in short projects.
The second semester, though, was left as independent research. We were free to choose any current topic within machine learning and with guidance from Dr. Tutum, we were to work on the project for the semester. My partner and I worked on converting chess videos to text. There are several challenges here. First, we need to be able to recognize and remove the background from an image. Next, we need to split the chess board into 64 squares. Then, we need to be able to figure out the square color, presence of a piece, piece color, and piece type for every square. This requires a large data set and a convolutional neural network. After this step, we need to be able to decide which frames to pick from a video so that we have a before and after picture of the board without any interference (hands). Comparing the two images, we then figure out what squares have changed, feed the sqaures to the neural network again and maybe update our previous guesses on what each piece on the board really is. For example, if we think that a piece is a rook but it moves both diagonally and side-to-side during a game, it must actually have been a queen. Of course, if the video starts from the beginning of the game, we can be sure what each piece is.
Midterm Report Final Report
In this manner, there were many challenges that we had to solve during the semester while working on the project. While the GitHub repository is still private, I have exported my reports from iPython Notebook and published them here. Feel free to check them out. The report is certainly not complete and there have been a number of updates to the project since the time of writing the report as it was rushed to be ready in time for the presentation. I will update this page if the actual GitHub repository is made public.
Spring 2016CS429: Computer Organization and Architecture with Dr. Bill Young
The focus of CS429 was the low-level workings of computers. Of course, when I say low-level, it is relative to the other CS courses. We worked with x86, y86, and C. There were a number of exciting projects in this class such as the Bomb Lab where you had to use GDB to debug and solve problems in an interactive lab. The answers could be as simple as a 5 letter word or as complex as a long alpha-numeric mess. Everytime we submitted a wrong answer, we would lose points on our grade but with the right technique, such labs were a great experience.
Fall 2015CS314: Data Structures with Dr. Gordan Novak
Having skipped the first CS class using high school credits, this was the first Computer Science class I took at UT. It covers the fundamentals of CS and of course, data structures. We talked about Big O, recursion, trees, linked lists, arrays, stacks/queues, etc. Apart from this, we also covered Dijkstra's, Prim's, A* search, and MapReduce.