I am a first-year M.S. student at the University of Massachusetts Amherst studying computer science. I'm particularly interested in machine learning (specifically deep learning) and computational neuroscience. I am employed as a research assistant in the Biologically Inspired Neural and Dynamical Systems Laboratory, where I'm developing the use of spiking neural networks for machine learning. I did my undergraduate studies at UMass Amherst with a double major in computer science and mathematics.

I come from Dartmouth, which is located in south-eastern Massachusetts, and I currently reside near the center of town in Amherst. I am an avid reader / writer / programmer, coffee lover, and proud co-owner of a miniature Australian shepherd named Quinn.

- In the summer of 2015, I interned as a software developer with Epsilon Data Management, where I was able to contribute shipped code in a number of areas, including improved database routines, user interface design, and bug fixes.
- In the fall of 2015, I worked with professor David Mix Barrington on an independent study project in circuit complexity theory, in which we tried to characterize the computational power of constant-depth Boolean circuits with composite number counting gates.
- In the spring of 2016, I worked on an independent study project jointly with professors David Mix Barrington and Hava T. Siegelmann, in which we investigated the computational complexity of the memcomputing model of computation.
- I spent the summer of 2016 working in the BINDS lab, where I used machine learning methods to explore and explain datasets, designed a brain-computer interface experiment, and thought about computation with dynamical systems.
- I was the grader (in the fall of 2016) for the cross-listed computer science and mathematics course in combinatorics and graph theory.
- From the fall of 2015 until spring 2017, I was a lab technician and programmer in the Cognition and Action laboratory, in the department of Cognitive and Brain Sciences at UMass Amherst. There, I was responsible for developing human-participant experiment software, fixing and purchasing lab equipment, doing data analysis and processing, and a bizarre assortment of other computer-related tasks.
- In the summer of 2017, I worked as a research intern in the Air Force Research Lab's Automatic Target Recognition Center. I developed a neural network computational layer which updated its weights via a Hebbian learning rule instead of by SGD + back-propagation (as neural networks layers typically are).

- I am a graduate research assistant in the BINDS lab, where I am implementing unsupervised machine learning algorithms using spiking neural networks.
- I am working with Professor Christian Rojas on a NYC hotel and taxicab data mining project in the Department of Resource Economics at UMass.

You can reach me via e-mail here.

Here are links to some of my academic writings:

- A Review and Discussion of the Memcomputing Model of Computation
- Investigating the Power of Boolean Circuits with MOD_6 Gates
- Minds, Brains, and Programs: A computer science student's blog on machine learning, AI, brains, and math

select GitHub repositories:

- Experiments with Hopfield networks.
- Estimating and explaining Twitter engagement (ML course final project).
- Experiments and visualizations for UMass Amherst ResEcon NYC taxicab and hotel data project.
- Repository for Kaggle competition code.
- Code for this website (pretty meta!).
- MATLAB scripts for a cortical mapping task used in the COGNAC lab.
- A Java implementation of Conway's Game of Life.
- Java code for "Investigating the Power of Boolean Circuits with MOD_6 Gates."
- Extending work from Unsupervised learning of digit recognition using spike-timing-dependent plasticity.
- Collaborative repository for Data Science independent study: Career Path Analysis.
- A few TensorFlow tutorials.
- Simple brain-computer interface developed for the BINDS lab.

select Jupyter notebooks:

- Handwritten Digits Recognition - Kaggle Competition
- word2vec: Tensorflow Tutorial
- Experimenting with brian2 Spiking Neural Network Simulator

Here is a list of computer science courses I have completed:

- CS 187 - Data Structures
- CS 220 - Programming Methodology
- CS 230 - Computer Systems
- CS 240 - Reasoning Under Uncertainty
- CS 250 - Introduction to Computation
- CS 305 - Social Issues in Computing
- CS 311 - Introduction to Algorithms
- CS 320 - Software Engineering
- CS 383 - Introduction to Artificial Intelligence
- CS 445 - Information Systems
- CS 501 - Formal Language Theory
- CS 513 - Logic in CS
- CS 585 - Introduction to Natural Language Processing
- CS 589 - Machine Learning (undergraduate section)
- CS 590D - Algorithms for Data Science
- CS 591NR - S-Neural Networks - An Introduction
- CS 601 - Computation Theory
- CS 683 - Artificial Intelligence
- CS 697CA - Career Path Analysis (Independent Study with UMass Amherst Center for Data Science)
- CS 697L - Deep Learning

Currently taking:

- CS 689 - Machine Learning (graduate section)

Here is a list of mathematics and statistics courses I have completed:

- MATH 131 - Calculus I
- MATH 132 - Calculus II
- MATH 233H - Multivariate Calculus (Honors)
- MATH 235 - Linear Algebra
- MATH 331 - Differential Equations
- MATH 411 - Abstract Algebra I
- MATH 412 - Abstract Algebra II
- MATH 523H - Modern Analysis I (Honors)
- MATH 532H - Nonlinear Dynamics and Chaos with Applications (Honors)
- MATH 551 - Scientific Computing I
- STAT 515 - Statistics I
- STAT 516 - Statistics II

Currently taking:

- STAT 607 - Mathematical Statistics I

Back to the Computer Science Edlab home page.