Ian Char

About Me


I was born and raised in Lakewood, Colorado and am currently attending University of Colorado at Boulder to study Computer Science and Applied Mathematics (Class of 2017). Aside from computer science and math, I am very passionate about music. I have been playing music since the age of 6 and during that time have participated in several bands, playing several instruments such as the drums, clarinet, and piano. I also love to play tennis and was on the varsity team for three of my four years in high school.


In terms of computer science and mathematics, I have been able to apply my skills in numerous ways. Throughout my time at CU, I have had the privilege of working with Professor Tom Yeh in the computer science department as a research assistant. For the summer of 2015, I will be working at Google as an intern. Additionally, I have participated in several events such as CU's hackathon and represented CU in the Mathematica Modeling Competition (MCM). What excites me most is how we can apply mathematical concepts to computer science in areas such as data mining and machine learning. I hope to learn more about these subjects in the future.


Twitter Feels
UIST Competition
Spectral Clustering


Most Comfortable

Some Experience

  • Python
  • Javascript
  • Java

  • HTML
  • CSS
  • NodeJS
  • Django
  • Bootstrap

  • C++
  • jQuery
  • BASH Scripting
  • Mathematica
  • Scala

  • Matlab
  • SQL
  • MongoDB
  • Tableau

Google Intern

Summer 2015

Over the summer of 2015, I worked at Google's Mountain View office. I was part of the front end AdWords team.

Research Assistant

Fall 2013 - Present

During my time at CU, I have been fortunate to work with Professor Tom Yeh on a variety of projects. I have worked on a myriad of projects with Professor Yeh including the following:

  • Nature Net
  • In the spring of 2015, I helped work on the Nature Net project: a platform in which nature enthusiasts can share and, in the future, analyze data that they upload. I worked on using NodeJS to build tools to analyze data from the ebird data set. I presented my work at the 2015 CU Discovery Learning Apprenticeship Symposium.

  • Sikuli Bot
  • I worked with a group of people to make a robot that takes advantage of Sikuli software to automate interacting with android devices. The prototype of the device was a makeshift Maker-Bot. I specifically worked on the component that converted pixel coordinates to G-Code instructions in Java. I also helped present our prototype at the 2014 UIST demo session with Jeeeun Kim (shown right).

  • Data Management Tool
  • I created a command line tool using NodeJS and Google Cloud Storage that would help manage my Professor's data across all of his teams.

  • Active Authentication
  • Active Authentication was a DARPA funded project I helped contribute to in my freshman year that sought to find new ways to verify users for mobile security. My duty was to collect data from users and make qualitative observations about our results.

Computer Science

GPA: 4.0

  • Algorithms
  • Covers advanced data structures, computational geometry, cryptography, dynamic programming, greedy algorithms, divide-and-conquer, graph algorithms (e.g., depth-first search), network algorithms (e.g., shortest paths), approximation algorithms.

  • Computer Systems
  • Covers how programs are represented and executed by modern computers, including low-level machine representations of programs and data, an understanding of how computer components influence performance and memory hierarchy.

  • Software Engineering Methods and Tools
  • Focuses on software engineering methods and tools for application development, including design and system organization; using and creating reusable libraries; building, testing, and debugging; and performance evaluation.

  • Data Structures
  • Studies data abstractions (e.g., stacks, queues, lists, trees) and their representation techniques (e.g., linking, arrays). Introduces concepts used in algorithm design and analysis including criteria for selecting data structures to fit their applications.

  • Principles of Programming Languages
  • Study fundamental concepts on which programming of languages are based, and execution models supporting them. Topics include values, variables, bindings, type systems, control structures, exceptions, concurrency, and modularity. Learn how to select a language and to adapt to a new language.

Applied Mathematics

GPA: 4.0

  • Matrix Methods
  • Introduces linear algebra and matrices, with an emphasis on applications, including methods to solve systems of linear algebraic and linear ordinary differential equations. Discusses computational algorithms that implement these methods. Explores applications in operations research.

  • Applied Probability
  • Studies axioms, counting formulas, conditional probability, independence, random variables, continuous and discrete distribution, expectation, moment generating functions, law of large numbers, central limit theorem, Poisson process, and multivariate Gaussian distribution.

  • Complex Variables and Applications
  • Introduces methods of complex variables, contour integration, and theory of residues. Applications include solving partial differential equations by transform methods, Fourier and Laplace transforms, and Reimann-Hilbert boundary-value problems, conformal mapping to ideal fluid flow and/or electrostatics.

  • Differential Equations
  • Introduces ordinary differential equations, systems of linear equations, matrices, determinants, vector spaces, linear transformations, and systems of linear differential equations.

  • Calculus 3
  • Covers multivariable calculus, vector analysis, and theorems of Gauss, Green, and Stokes.


Find me on GitHub @IanChar

Find me on LinkedIn

Email me at ianchar4@gmail.com