Coder, developer, computer scientist

About Me

Welcome! My name is Creighton Harrington and this is my résumé website.

I am currently finishing my bachelors in computer science at IUPUI in Indianapolis (NYC background because I think it looks cool at night). In order to add some style to my resume, I built this simple website for prospective employers to look at some of my past projects' code.

Much of my development experience is academic, therefore most of the projects featured below are from previous classes. Getting more real world projects featured on here is kind of the point of the website!

Below, you will find descriptions and links to the various projects I've worked on so far as well as a formal copy of my résumé.

Feel free to email me and check out my GitHub or LinkedIn. Also, here is my public key.

Data Science

Overview

Excluding the obvious applicability of a general grasp of algorithms and data structures towards data mining and data science, I have taken courses that have focused specifically on the sub-field. This focus includes the use and creation of the actual methods of dimensionality reduction, supervised and unsupervised learning, predictive models, data visualization, and more.

Outside of specific coursework, I have participated in a research project that looked at text analysis of online review data. The idea was, using just text data, to extract specific topics and use those topics as well as the sentiment of a review to "rank" the reviews in the data set by their "helpfulness". The approach uses word2vec and kmeans to find the appropriate information.

I worked on this project all summer of 2017 with a team and plan to use other approaches for the same kind of idea. The code (and a readme) can be found at my github here.

Key Points

  • Additional data mining projects include:
    • a principle component analysis tool
    • a full and naive bayes classifier
    • a k means clustering tool
  • More general data science projects include:
    • Blind supervised learning in R (ie: domain of provided features was unknown)
    • Data visualization project involving movie data from IMDB
    • Two projects which involve predicting retweets, one of which utilized twitter api (the other used provided tweet data)

View the Projects

The code for these projects can be viewed at my GitHub here.

Software Design Patterns

Overview

A course in my academic career focused on the proper design of software using object-oriented principles that focused on extendablity and reusability. The running project through the course was a infix calculator. Before you roll your eyes at the simplicity of such a project, the project required the use of OO-design principles such as the command, abstract factory, composite, builder, and visitor patterns. In other words, don't judge the project too harshly, it did what it was supposed to do and taught me the fundamentals of OO-design.

Key Points

  • The expression evaluator utilized an expression tree. The Builder pattern assembled the tree by creating the appropriate node objects, but the actual traversal of the tree in order to evaluate the expression was done using the Visitor pattern.
  • While not covered in the projects directly, we also discussed patterns such as the Iterator, Wrapper Façade, Proxy, and Adaptor patterns as well as common design anti-patterns.

View the Project Code

You can find the code for this project at my GitHub here

JavaFx GUI

Overview

Decoding classical cryptography is a daunting task, so it can be helpful to have a tool. For a course on computing security, I built such a tool in Java using the JavaFx gui library. The tool, called "KapLite", provides a means to work messages encoded using various classical ciphers and then decode them once the solution algorithm is known.

Key Points

  • The code linked below includes a report on how to use the tool.
  • The tool can decode encoded messages, but isn't fully functional in encoding messages.
  • The idea with this project was more about coding something in Java, so while it doesn't cover every cryptographic technique, it does utilize a large range of the features of JavaFx.

View Projects

You can find the code for this project at my GitHub here

Data Structures & Algorithms

Overview

Computer scientists are supposed to be programmers, but this does not do the idea of algorithms and data structures any semblance of justice. Nowhere does the ingenuity and creativity possible within computer science emerge more fully than in a successful algorithm or data structure applied to a particularly annoying problem.

I have included below links to various projects from my data structures, operating systems, and algorithms courses. The full description of the purpose of the project can be viewed on my GitHub linked below.

Key Points

  • The language in most of the projects is C++, but the operating systems project code is in Java (on NachOS).
  • There are three projects from the data structures course:
    • A hash table and binary tree (it isn't very complicated, but I include it to show that I know how to use hash tables)
    • A minheap / quicksort / mergesort project.
    • A general graph algorithms project.
  • The project from my operating systems course is in three parts: scheduling policies, synchronization primitives, and virtual memory page replacement algorithms.
  • Algorithm design is within all of these examples, but I have also listed a few that demonstrate specific techniques.
    • Deciding which (associative) order to multiply matrices (dynamic programming)
    • Building a Huffman tree (greedy algorithms)

View Projects

You can find the code for these projects at my GitHub here

Database System Design

Overview

The final project for my database systems course is what is presented here. It was supposed to be emulate a real-world project by acting as a design request by a fake coffee-distribution business. We were given the parameters, a universal relation, and, from there, designed a fifth normal form relational database system.

Key Points

  • The "business" was in coffee production and distribution. The "business plan" can be found in the link to the project below which can give a better explanation of what the design was supposed to satisfy.
  • The database was built on Microsoft SQL Server.
  • The final report submitted for the project is included below. It contains all of the relevant information including sample queries.

View Project

The final report can be viewed here. It includes the project description to give you a little more background on what we were even trying to do.

Resume

Education

School of Science, IUPUI

Computer Science BS, December 2017

  • 3.961 GPA
  • Minor in Mathematics

Relevant Coursework

    Computer Science

  • Data Mining and Data Science
  • Data Structures
  • Database Systems
  • Object Oriented Software Engineering
  • Operating Systems
  • Algorithm Design
  • Computational Methods in Analysis

    Coding Experience

  • C++
  • Python
  • NumPy, SciKit-learn, Gensim
  • R
  • Java
  • Javascript
  • AngularJS
  • HTML/CSS

Achievements:

  • 2016 - 2017 Charles O. McGaughey Award Recipient
  • 2016 & 2017 IUPUI School of Science Scholar's List
  • 2016 & 2017 IUPUI School of Science Dean's List
  • 2015 - 2016 IUPUI Regatta Scholarship
  • Outstanding Junior Economics Award, 2013†
  • Robert Kirk Outstanding New Economics Major Award, 2012†
  • † from a previous major

Experience

IUPUI - Indianapolis, IN

Data Science Research Program, Summer 2017

Responsibilities

  • Team based research into multi-aspect sentiment analysis of online review data.
  • Primary tool was word2vec which was used to identify topic dimensions in raw text data and use this information to rank reviews by their "helpfullness"
  • Code and project overview is available above in the Data Science section.

Indiana University - Indianapolis, IN

Mathematics Tutor, Jan. 2016 - Present

Responsibilities

  • Tutor calculus, linear algebra, and differential equations to college students.