Computer Science BS | Statistics and Analytics Minor | Expected May 2022
Vector algebra, solid analytic geometry, partial derivatives, multiple integrals.
Algebra of matrices with applications: determinants, solution of linear systems by Gaussian elimination, Gram-Schmidt procedure, eigenvalues.
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.
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.
Types of operating systems. Concurrent programming. Management of storage, processes, devices. Scheduling, protection. Case study. Course includes a programming laboratory.
Concepts of high-level programming and their realization in specific languages. Data types, scope, control structures, procedural abstraction, classes, concurrency. Run-time implementation.
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.
Placement of data on secondary storage. File organization. Database history, practice, major models, system structure and design.
Formal specification and verification of programs. Techniques of algorithm analysis. Problem-solving paradigms. Survey of selected algorithms.
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.
Digital logic, circuit components. Data representation, computer architecture and implementation, assembly language programming.
The analysis of data structures and their associated algorithms. Abstract data types, lists, stacks, queues, trees, and graphs. Sorting, searching, hashing.
Advanced programming: object-oriented design, classes, interfaces, packages, inheritance, delegation, observers, MVC (model view controller), exceptions, assertions.
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
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.
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.
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.
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.
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.
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.
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.
Built the game 2048 hosted by UNC's CS Department using Javascript, HTML, and CSS
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.
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.
Created a Twitter frontend that interacts with a RESTful API created by the UNC CS Department.