Hello there! My name is Justin Lubin. I love computer science, mathematics, music, and crochet. Most of all, I am passionate about research and education: not only trying to discover beautiful results, but also sharing what I learn with others.
I aspire to be a professor of computer science so that I will be able to combine two of my deepest passions, computer science research and teaching. I hope that one day I will be able to pay off the debt of gratitude that I have to all the wonderful people who have taught me in my life by passing on the knowledge that they have imparted to me to the next generation—and adding something to it in the process.
Research
My goal is twofold: to develop elegant theories and to make them usable by humans. To that end, I am very interested in programming language theory and draw great inspiration from the study of human-computer interaction.
In particular, I am interested in designing and leveraging type systems and language constructs to make programming languages, environments, and tools more accessible, intuitive, and powerful.
I currently work with Professor Ravi Chugh at the University of Chicago and have been doing so for a few years. I also worked with Professor Jonathan Aldrich at Carnegie Mellon University along with Professor Alex Potanin from the Victoria University of Wellington during the summer of 2018. Many, many thanks to these great people for their extremely helpful guidance!
Conference Papers
-
Sketch-n-Sketch: Output-Directed Programming for SVG
Brian Hempel, Justin Lubin, and Ravi Chugh.
In Proceedings of the ACM Symposium on User Interface Software and Technology (UIST).
New Orleans, LA, October 2019.
-
Deuce: A Lightweight User Interface for Structured Editing
Brian Hempel, Justin Lubin, Grace Lu, and Ravi Chugh.
In Proceedings of the International Conference on Software Engineering (ICSE).
Gothenburg, Sweden, May 2018.
Workshop Papers
-
Type-Directed Program Transformations for the Working Functional Programmer
Justin Lubin and Ravi Chugh.
For the PLATEAU workshop.
New Orleans, LA, October 2019.
Student Research Competitions
-
Approximating Polymorphic Effects with Capabilities
Justin Lubin.
For the SPLASH Student Research Competition.
Boston, MA, November 2018.
Presentations
-
Program Synthesis with Live Bidirectional Evaluation
Sep. 23, 2019 @ MWPLS 2019, West Lafayette, IN.
Here are just the slides for this talk.
I also have a poster about this research.
-
Approximating Polymorphic Effects with Capabilities
Nov. 8, 2018 @ SPLASH 2018 SRC, Boston, MA.
I also have a poster about this research.
-
The ABCs of ADTs: Algebraic Data Types (educational talk)
Jan. 28, 2018 @ Asynchronous Anonymous, Chicago, IL.
News
Fun
Compositions
In my free time, I like to compose music. Here are some of the pieces that I’ve composed! All my pieces are composed in the wonderful, open-source music notation software Musescore.
Longer pieces
- Florescence (mp3 | pdf). Orchestra, September 2019.
- Sonata in G Minor (mp3 | pdf). String Quartet, April 2019.
- Invention in D Minor (mp3 | pdf). Keyboard, January 2019.
- Lofty Stars (mp3 | pdf). Wind Quartet, December 2018.
- Wind Quintet in C (mp3 | pdf). Wind Quintet, November 2018.
- Reflections (mp3 | pdf). String Quartet, October 2018.
- Dive (mp3 | pdf). Orchestra, August 2018.
- Travels (mp3 | pdf). Synthesizer, August 2018.
- Outset (mp3 | pdf). Synthesizer, June 2018.
Shorter pieces
- Jam (mp3 | pdf). Game Boy Synthesizer, April 2019.
- Realizations (mp3 | pdf). Synthesizer, July 2018.
- Lessons (mp3 | pdf). Synthesizer, August 2018.
Classwork
- Morrow & Deseora Town (info), June 2019.
- Lucas (info), April 2019.
- Minuet and Trio in A (mp3 | pdf). Keyboard, May 2018.
- Caged Bird (mp3 | pdf | annotated). Chorale, April 2018.
The Shards of Mt. Lampora Play! ▸
As my final project for the functional programming class that I took at the University of Chicago, I created The Shards of Mt. Lampora, a 2D platformer written using the Elm programming language featuring modular music that I composed myself.
As the player moves throughout the world and collects the shards it contains, the music responds dynamically. These musical details (along with some other information about the creation of the game) are further described in the brief presentation that I gave before demoing my game.
If you’d like, you can click here to play The Shards of Mt. Lampora! You can also view the source code for the game here and its sheet music here.