Hi, my name is

Andrew Li.

I write and build software.

I'm a Computer Science student based in Chapel Hill. I love solving problems, learning new skills, and pushing myself to be the best I can.

headshot

Resume

Education

The University of North Carolina - Chapel Hill

Computer Science BS | Statistics and Analytics Minor | Expected May 2022

Experience

Secmation
Software Developer Intern | June 2021 - August 2021
Freelance
Software Developer | May 2020 - Present
PT Wired
Physical Therapy Model | June 2019 - Present
Chipotle Mexican Grill
Take-Out Specialist | June 2017 - June 2019

STEM Courses

MATH 233 - Multivariable Calculus - Fall 2018
Prof. Elizabeth McLaughlin

Vector algebra, solid analytic geometry, partial derivatives, multiple integrals.

MATH 547 - Linear Algebra - Spring 2020
Prof. Jeremy Marzuo

Algebra of matrices with applications: determinants, solution of linear systems by Gaussian elimination, Gram-Schmidt procedure, eigenvalues.

MATH 381 - Discrete Math - Spring 2020
Prof. James Choi

This course serves as a transition from computational to more theoretical mathematics. Topics are from the foundations of mathematics: logic, set theory, relations and functions, induction, permutations and combinations, recurrence.

PHYS 118 - Mechanics and Relativity - Spring 2019
Prof. Duane Deardorff

Mechanics of particles and rigid bodies. Newton's laws; mechanical and potential energy; mechanical conservation laws; frame-dependence of physical laws; Einstein's Theory of Relativity.

COMP Courses

COMP 530 - Operating Systems - Fall 2021
Prof. Brent Munsell

Types of operating systems. Concurrent programming. Management of storage, processes, devices. Scheduling, protection. Case study. Course includes a programming laboratory.

COMP 524 - Programming Languages - Fall 2021
Prof. Prasun Dewan

Concepts of high-level programming and their realization in specific languages. Data types, scope, control structures, procedural abstraction, classes, concurrency. Run-time implementation.

COMP 555 - Bioalgorithms - Spring 2021
Prof. Leonard McMillan

Bioinformatics algorithms. Topics include DNA restriction mapping, finding regulatory motifs, genome rearrangements, sequence alignments, gene prediction, graph algorithms, DNA sequencing, protein sequencing, combinatorial pattern matching, approximate pattern matching, clustering and evolution, tree construction, Hidden Markov Models, randomized algorithms.

COMP 521 - Files and Databases - Fall 2020
Prof. Gary Bishop

Placement of data on secondary storage. File organization. Database history, practice, major models, system structure and design.

COMP 550 - Algorithms and Analysis - Fall 2020
Prof. John Majikes

Formal specification and verification of programs. Techniques of algorithm analysis. Problem-solving paradigms. Survey of selected algorithms.

COMP 426 - Modern Web Programming - Fall 2020
Prof. Ketan Mayer-Patel

Developing applications for the World Wide Web including both client-side and server-side programming. Emphasis on Model-View-Controller architecture, AJAX, RESTful Web services, and database interaction.

COMP 411 - Computer Organization - Fall 2019
Prof. Montek Singh

Digital logic, circuit components. Data representation, computer architecture and implementation, assembly language programming.

COMP 410 - Data Structures - Fall 2019
Prof. Paul Stotts

The analysis of data structures and their associated algorithms. Abstract data types, lists, stacks, queues, trees, and graphs. Sorting, searching, hashing.

COMP 401 - Foundations of Programming - Spring 2019
Prof. Ketan Mayer-Patel

Advanced programming: object-oriented design, classes, interfaces, packages, inheritance, delegation, observers, MVC (model view controller), exceptions, assertions.

Research

Week of 4/7/2022

Added new fact property in array form for each submission, then aggregated all fact arrays into one 2-d array to be passed into the K-Means function from the package found last week. Results stored in kmeansResult.json Also updating README.md

Resources:

Week of 3/31/2022

Researching ML packages to apply to our list of facts. Given a list of packages, trying to discern the strengths and weaknesses of Ridge, Lasso, and Elastic Net regression techniques for our use case. At the moment, Ridge seems to be more appropriate than Lasso/Elastic Net given the specificity of variable (fact) selection.

Resources:

Week of 3/3/2022

Added more problem specific facts for the fizzbuzz problem to be analyzed in the future. Took 3 more data sets from other semesters and processed the data to be in the same format to be converted to ASTs and parsed. If the first semester analyzed is training data, the other 3 can be used to test functionality.

Resources:

Week of 2/17/2022

Created the pcan.js package to collect facts from submission source code. Began with collecting universal facts such as number of alert statements, number of for loops initializations, etc. (5 total). Began adding problem specific methods for the fizzbuzz array problem to collect facts that could inform an unsupervised learning ML algorithm on what kind of issue is causing the submission to be incorrect. Also completed the linked k-means tutorial.

Resources:

Week of 2/10/2022

Filtered the problem data set by problems that had one input for simplicity, then sorted each of the submissions to the single input problems into correct and incorrect submissions. Chose two problems with many submissions (mostly incorrect) to analyze, and began brainstorming facts to analyze for ML purposes. Researched the list of ML packages/tools and noted thoughts on use case appropriateness.

Resources:

Week of 2/1/2022

Processed .bson files with MongoDB, then exported problem and submission data to json. Wrote some functions to process data into json arrays, and then into readable json arrays and json maps.

Resources:

Week of 1/20/2022

Read about and took notes on Abstract Syntax Trees this week. Attempting to determine if using the structure of each program's AST will be better than just the source code for pattern matching purposes by our ML program. Played around with AST parsers to better understand how they're built and parsed. Updated website formatting as well. Also explored some pattern matching resources and ML packages.

Resources:

Week of 1/11/2022

Read and compiled a list of introductory resources on knowledge graphs. Determined that knowledge graphs may not be most suitable for our use case, as they benefit from large datasets and are able to connect many different entities together with different types of relationships. The structured nature of our data (source code) doesn't lend itself to KG use.

Resources:

2048 Game

Built the game 2048 hosted by UNC's CS Department using Javascript, HTML, and CSS

Trivia 426

Created an online Trivia app using an external API, with over 20 categories to choose from. Utilized a React frontend and Google Firestore backend, hosted on Firebase.

Cloud Niners

Designed and built a website for Cloud Niners, a local Chinese dance group based in the triangle. My first web project built in vanilla HTML and CSS.

Twitter

Created a Twitter frontend that interacts with a RESTful API created by the UNC CS Department.

Get In Touch

I'm currently looking for new opportunities! Whether you have any questions about my background, skills, or experience, or simply just want to say hi, feel free to reach out!