I am from Taipei, Taiwan, but have been a resident of California since I was a child, so I am fluent in both Mandarin Chinese and English.
I am a third-year undergraduate student majoring in Mathematics, Computer Science at the University of California, San Diego, with a minor in Business.
My fields of interest include: Computations, Algorithms, Full Stack Web Development, Machine Learning, and AI.
I aim to become a software engineer and eventually a software project manager, so this is a site I made to showcase my projects!
I work as a Supplemental Instruction Leader at Teaching and Learning Commons at UC San Diego. I have received a lot of help on the way, therefore, I would also want to be able to provide that for others when I am able to.
In my free time, I love to watch and play basketball with friends. My favorite player is Kevin Durant, which explains why my nickname is EasyMoneySniper. I am also always down to go on hiking and food adventures with all my friends.
Leads a team of 4 in building a mobile web application that takes in user's preferences, and outputs food recommendations to users and their friends.
Uses Node, Express, JavaScript, JSON and Yelp API to implement the app features to display recommendations based on users preferences on the server side.
Uses HTML, CSS, JavaScript, jQuery, and jTinder API, Facebook API to implement the swiping features and user interactions.
San Diego, CA
Fall 2017
Worked in a team of 11 to develop a UCSD Maps Android Application for the students.
Used Java to implement Dijkstra's Algorithm for the back end of the application and helped design how to represent the map with edges and vertices.
Maintained and contributed to documents such as Use Cases, System Requirements, Design Use Cases, Sample Screens, and System Test Plan.
San Diego, CA
Sept 2016 – June 2017
Prepared lesson plans and hands-on teaching to teach introductory concepts of computer science.
Utilized online tools such as code.org to introduce basic for loop, methods, and code execution to elementary school students.
Instructed and oversaw mini coding projects for over 50 students.
San Diego, CA
Dec 2016 - April 2017
Virtual Reality Experience and an education tool where you can learn a lot of concepts and data structure of computer science.
Implemented the back end and the design of interactive data structure, such as stack and hash table in three different collision strategies in Unity using C#.
San Diego, CA
June 2017 - Present
Prepares lesson plans and use collaborative learning techniques to present harder math concepts students struggled with.
Hosts problem solving session to further the students understanding of the material.
Instructs and oversees over 15 students.
Hacienda Heights, CA
June 2017
Volunteered as the instructor at the high school I used to attend for an organization that’s dedicated introduce high school students with computer science and programming.
Lectured on the basics of web development, such as HTML, CSS, and JavaScript to 20 students ranging from 7th grade to 12th grade.
Coordinated and organized with the organization to make sure the camp runs smoothly and timely.
La Jolla
Sept 2015 - June 2019
GPA: 3.51 | Provost’s Honors List
James R. Bunch Scholarship Awardee 2017-2018
I came into UCSD with a strong passion for problem-solving. At first, I was unsure about which major I would be interested in. But quickly, I have discovered that computer science was the right field for me. I love the thrill of solving a problem, coming up with an algorithm, and turning it into a piece of code, building projects and making magical things happen. I have been intrigued by these new topics I was introduced in the field of Computer Science and Math ever since.
Software engineering and design. Work on a team to develop an mobile web application using technologies such as Node, Express, JavaScript, HTML, CSS.
Java
Hands-on experience with designing, editing, compiling, and executing programming constructs and applications. Explore topics such as inheritance and exception handling. Using existing libraries and frameworks to create photo filters, games such as 2048.
Java, C, C++
Implemented and used binary search trees, hash tables, stacks, linked lists. Learned about and used object-oriented design including interfaces, polymorphism, encapsulation, abstract data types, pre-/post-conditions. Recursion.
Git, Linux, VIM, GDB, Valgrind
Hands-on exploration of software development tools and techniques. Investigation of the scientific process as applied to software development and debugging. Emphasis is on weekly hands-on laboratory experiences, development of laboratory notebooking techniques as applied to software design.
C, ARM Assembly
Introduction to organization of modern digital computer. Understanding the various components of a computer and their interrelationships. Study of a specific architecture/machine with emphasis on systems programming.
C++
High-performance data structures and supporting algorithms. Use and implementation of data structures like (un)balanced trees, graphs, priority queues, and hash tables. Also memory management, pointers, recursion. Theoretical and practical performance analysis, both average case and amortized.
Implemented Binary Search Tree, Hash table, Ternary Search Tree, and Multiway Trie for dictionary look ups and autocompletion of a word. Used Huffman encoding and decoding to compress and uncompress large binary files. And given a data lists of actors and movies they were in, built a program to find how the actors are connected to each other (Six Degrees of Kevin Bacon).
Design and analysis of efficient algorithms with emphasis of nonnumerical algorithms such as sorting, searching, pattern matching, and graph and network algorithms. Measuring complexity of algorithms, time and storage. NP-complete problems.
Topics studied in this class include graph search, depth first search (DFS), breadth first search (BFS), directed acyclic graphs (DAG), strongly connected components (SCC), Disjkstra’s algorithm, Greedy Algorithms, minimum spanning tree (MST), Kruskal’s algorithm, Divide and Conquer algorithm, backtracking, and dynamic programming.
An introduction to the mathematical theory of computability. Formal languages. Finite automata and regular expression. Push-down automata and context-free languages. Computable or recursive functions: Turing machines, the halting problem. Undecidability.
This is a machine learning class that focuses on topics such as reasoning with probabilities (prediction problems), reasoning and learning with Bayesian networks, decision making under uncertainty, sequential decision making, statistical learning methods, and reinforcement learning.
Software engineering topics associated with large systems development such as requirements and specifications, testing and maintenance, and design. Specific attention will be given to development tools and automated support environments. Work on a team to develop an android application.
A continuation to theory of computations. This group reading seminar is intended to explore topics such as Register machines, recursive functions, lambda-calculus, Post correspondence systems.
Basic discrete mathematical structures: sets, relations, functions, sequences, equivalence relations, partial orders, and number systems. Methods of reasoning and proofs: prepositional logic, predicate logic, induction, recursion, and pigeonhole principle. Infinite sets and diagonalization. Basic counting techniques; permutation and combinations.
Learned about discrete mathematical tools needed to analyze algorithms and systems and enumerative combinatorics: basic counting principles, inclusion-exclusion, and generating functions, applied discrete probability.
Foundations of differential and integral calculus of one variable. Functions, graphs, continuity, limits, derivative, tangent line. Applications with algebraic, exponential, logarithmic, and trigonometric functions. Introduction to the integral.
Integral calculus of one variable and its applications, with exponential, logarithmic, hyperbolic, and trigonometric functions. Methods of integration. Infinite series. Polar coordinates in the plane and complex exponentials.
Vector geometry, vector functions and their derivatives. Partial differentiation. Maxima and minima. Double integration.
Matlab
Matrix algebra, Gaussian elimination, determinants. Linear and affine subspaces, bases of Euclidean spaces. Eigenvalues and eigenvectors, quadratic forms, orthogonal matrices, diagonalization of symmetric matrices.
This course uses a variety of topics in mathematics to introduce the students to rigorous mathematical proof, emphasizing quantifiers, induction, negation, proof by contradiction, naive set theory, equivalence relations and epsilon-delta proofs.
Probability spaces, random variables, independence, conditional probability, distribution, expectation, variance, joint distributions, central limit theorem.
A two quarter course on group theory and ring theories. Group theory topics include: definitions and basic properties of groups, properties of isomorphisms, subgroups. Ring and field theory topics include: definitions and basic properties of rings, fields, and ideals, homomorphisms, irreducibility of polynomials..
Introduction to the theory and applications of combinatorics. Enumeration of combinatorial structures. Ranking and unranking. Graph theory with applications and algorithms. Recursive algorithms. Inclusion-exclusion. Generating functions. Polya theory.
Python
Concepts of data and its role in science will be introduced, as well as the ideas behind data-mining, text-mining, machine learning, and graph theory, and how scientists and companies are leveraging those methods to uncover new insights into human cognition.