Hello! I'm Chelsea. I graduated from MIT in 2015 with a major in computer science (Course 6-3) and a minor in mathematics (Course 18).
This fall, I am continuing at MIT to complete the M.Eng. program, with a concentration in theoretical computer science.
I tend to gravitate towards projects that involve functional programming and/or making education interactive.
This website documents some of my projects.
I now blog at csvoss.github.io; this website will be migrated over soon.
Randomly-generated practice problems for organic chemistry students.
Carbonate creates interactive organic chemistry practice problems, whether simple one-step quizzes or complicated multi-step synthesis problems.
Uses the Django web framework to connect a drag-and-drop frontend UI with a Python backend that extensively represents the logic for chemical reactions. Capable of parsing molecules and applying reactions from Unit 1 and Unit 2 of MIT 5.12 (Organic Chemistry I).
Built in collaboration with Felix Sun. Received the “MIT Utility Award” in 6.470, MIT's web programming competition.
January 2013. See the code on GitHub.
Visually trace packets through the Internet, from MIT's servers to any website.
Inspired by a class I took in which we made an exhibit about the Internet at the MIT Museum, “Net Works,” in spring 2013.
Spring 2013. See the code on GitHub.
An interactive exploration of animals, camoflage, and mimicry.
Uses Vivagraph.js to draw an interactive, draggable graph. Although the page is static, it is updated from basic data using a Python script whenever I add new entries.
The hardest part was getting performance just right: small images need to be converted to thumbnails (which is done using Python Image Library), and big images need to be pre-loaded in the background.
Fall 2013. See the code on GitHub.
Implementing retroactive data structures.
For my final project in 6.851 Advanced Data Structures, I implemented algorithms for retroactive data structures using Python.
Retroactive data structures are data structures in which operations and queries are allowed to be made in the past, updating the data structures as if history itself had been rewritten.
Spring 2014. See the code on GitHub.
Play around with simulations of quantum circuits.
Simulates and displays quantum circuits using QuTiP, and outputs the behaviour of the resulting n-qubit circuit as a 2n-by-2n unitary matrix. (Naturally, this means you're not allowed to use very many qubits!)
Built as my final project in 6.845: Quantum Complexity Theory.
Fall 2014. See the code on GitHub.
Convert any Python file into a single line of code with the same functionality.
Really, just one line! No newlines or semicolons allowed!
I wanted to figure out how to write any Python function in a single line, using tricks like lambda functions, ternary expressions, and list comprehensions.
This was the result; it uses the ast module to parse Python, then produces an output using a collection of rules. The hardest thing to implement was looping; in order to implement loops, one must use the Y combinator.
I even applied it to itself once it was done. Now I have a one line Python file that generates one line Python files: main.ol.py.
January 2015. See the code on GitHub.
”Problem-solving meets philosophy as we explore mind-blowing ideas from the theoretical study of complex systems: computers, minds, and beyond.“
A six-week-long, four-session-per-week class that I designed and taught for MIT ESP's Junction summer program, 2014. Based on an MIT class I took – 6.045, or Automata, Computability, and Complexity – this class synthesized many of my favorite concepts in computer science into a rigorous course for advanced high school students.
Lectures and practice problems I wrote as a counselor for the USA Biology Olympiad national training camp.
A history of the classes I have taught for the Educational Studies Program.