Andrew Goldin

andgoldin@gmail.com // LinkedIn // GitHub // Résumé

Education School stuff.


 Columbia University Fu Foundation School of Engineering and Applied Science // Class of 2014 // Computer Science

Acquired skill set: Object‐oriented programming, data structures & algorithms, artificial intelligence, graphics programming, physical simulations, relational databases/SQL, web/UI design with HTML5/JavaScript/CSS, computer vision, linear algebra, discrete math, calculus, statistics

Languages: Proficient with Java, C/C++/C#, Python, practiced with JavaScript, SQL, familiar with Git
Senior Teaching Assistant, Spring 2014
COMS W1004: Intro to Computer Science and Programming in Java
OFFICE HOURS: Mondays, 12:30-2:30 PM, CS TA room (122 Mudd)
Course Listing // CourseWorks // Piazza // Professor's Home Page

Relevant Coursework All CS and CS-related courses I have completed.

Spring 2014 COMS W4731: Computer Vision COMS W4172: 3D User Interfaces & Augmented Reality GRAP E3115: Advanced 3D Modeling & Animation
Fall 2013 COMS W4111: Introduction to Databases
COMS W4701: Artificial Intelligence
COMS W4167: Physically Based Computer Animation
COMS W4733: Computational Aspects of Robotics
COMS W4444: Programming & Problem Solving
Spring 2013 COMS W4115: Programming Languages & Translators COMS W4160: Computer Graphics SIEO W4150: Introduction to Probability and Statistics
Fall 2012 COMS W4170: User Interface Design COMS W3251: Computational Linear Algebra COMS W3261: Computer Science Theory
Spring 2012 COMS W3137: Data Structures & Algorithms COMS W3157: Advanced Programming COMS W3210: Scientific Computation
Fall 2011 COMS W1007: Object-Oriented Design in Java COMS W3203: Discrete Mathematics COMS W3827: Fundamentals of Computer Systems
Spring 2011 COMS W1004: Intro to Computer Science & Programming in Java ENGI E1102: Engineering Design Fundamentals MATH V1201: Calculus III
Fall 2010 GRAP E1115: Engineering Graphics MATH V1102: Calculus II


Projects Some recent noteworthy projects.


NOTE: I'm always in the process of sifting through my project work, so this section is constantly under construction!


SouL & jsoul

Music programming language & Java MIDI API

Created by myself, Matt Kim, Kevin Walters, and Cindy Long under the supervision of Professor Alfred Aho, SouL is a language designed to make it easy to work with MIDI data to create music and other sounds. I've also created a supplemental Java API called jsoul that matches much of the functionality of our language.

GitHub: SouL , jsoul // Overview Slides (PDF) // Full Report (PDF) // Download jsoul Package (.jar) // Full jsoul Javadoc


Galactic Bounce

A physics-based arcade shooting game

This game is a fast-paced 2D arcade shooter with realistic gravity forces and collision detection/response. Playable on Windows, Mac, and Linux, and allows players to create custom levels! Created with Java and Slick2D, an OpenGL/OpenAL library for Java game development.

View Demo Video // GalacticBounce on GitHub // Download: Windows, Mac, Linux


Programming & Problem Solving

Projects for honing problem-solving skills

Projects for COMS W4444: Programming & Problem Solving. A unique course for a small group of 30 students, created and instructed by Professor Ken Ross. There are no homeworks or exams. Instead, students are arranged into groups of 3-4 and tasked with an open-ended project based on solving a realistic problem. The semester consists of 4 projects total, with groups shuffling members for each. The goal of the course is to develop problem solving skills in a time-sensitive group setting by applying any and all techniques learned during CS training.

P1: Report, GitHub // P2: Report, GitHub // P3: Report, GitHub // P4: Report, GitHub


TowAR Strike

An augmented reality tower defense game

Created by myself, Krista Kohler, Laurent Mazouer, and Nikita Nadkarni, TowAR Strike is a fresh take on classic tower defense, where the player tries to stop infinite waves of enemies from reaching a goal by building towers to shoot at them. The player earns cash for each enemy destroyed and uses that cash to build more towers or upgrade existing ones. TowAR Strike throws in augmented reality with a cool 3D perspective, and lets the player take part in the action by allowing them to take direct control of special turrets placed around the environment.

View on GitHub (with download links!) // Play in Web Browser! (coming soon) // View Demo Video


yelp!help

A friendly alternative to Yelp.com's bookmarking system

Created by myself, Shannon Lee, Siddhi Mittal, and Stephen Somuah, yelp!help is designed to be an easier way to create, search, and filter bookmarks from Yelp. It implements several convenient features that Yelp's bookmarking system lacks, such as parallel filters, additional sort options, and batch select/delete.

Try it out! // View Demo Video


RoboPathFinder

A pathfinding system for the iRobot Create

This program takes as input sets of coordinates to define the map, obstacles and start/goal points for the robot, and computes and visually displays the shortest path to the goal. Utilizes various algorithms in tandem, such as a Graham scan for growing obstacles, visibility graph construction, and Dijkstra's algorithm/A* search. Path is written out as a sequence of commands to be fed to the robot.

RoboPathFinder on GitHub (with screenshots)


TeapotSun

Fully explorable random solar system generator

Created in C++ using OpenGL and glut, this simple application generates a random solar system with a sun, 8 planets, and an asteroid belt. Each planet and asteroid is generated at a random distance and has its own size, texture, rotation speed and revolution speed. The system is explorable via first-person shooter style controls, and has keyboard shortcuts for changing speed, toggling orbit paths, and generating a new system.

TeapotSun on GitHub


PokeDex

A simple but useful Pokemon web app

Created by myself and Yufeng Guo, this project makes use of a relational database to create a wiki-style app that provides useful information about the first generation of Pokemon. Users can also create accounts and track their own personal Pokemon team and gym badges! Created using Java/JSP and SQL on Oracle servers.

4111-pokemon on GitHub


AI Games

Simple games with human and AI players

Artificial Intelligence projects: Games include: (1) Gomoku, a strategy board game similar to Tic-Tac-Toe except can be played on any size grid for any amount in a row. Has several modes, including human vs human and human vs AI. The AI player uses an alpha-beta adversarial search algorithm to determine moves. (2) Sokoban, a popular tile based puzzle game that involves pushing boxes into goals. Contains an interactive mode that allows humans to play, as well as an AI mode in which a solver uses various search algorithms (BFS, DFS, UCS, A*) to determine the shortest winning move sequence.

AIGames on GitHub


Thrown Controllers

Panel-based game show for video game trivia

An adaptation of the panel-based game show done by The Runaway Guys at PAX East 2013, Thrown Controllers is a game where two teams compete in a series of video game trivia challenges and single/multiplayer gaming challenges to get the highest score. It is panel based, in a similar style to Jeopardy. This desktop app was created with Java and Swing as an activity for students at iD Tech Camps during my time as an instructor. Best used in conjunction with a large screen or a projector!

ThrownControllers on GitHub



Created by Andrew Goldin, 2014