Current Projects

Curricula »

Noah Kim, 2019 to present

Curricula is a set of specifications and tools for managing content and grading assignments in a college-level computer science setting. I am currently developing it as a head TA for CSCI 104, the top-level core track C++ course for computer science majors at USC. At its core, Curricula allows professors and course staff to write assignments and grade submitted work from students in a centralized manner.

Hours »

Noah Kim, 2019 to present

Hours is one of the student-facing facets of curricula-web, an integrated online classroom environment. This corner of the site allows students to open digital tickets during office hours, ensuring that they get a spot during rush hour and allowing course staff to preview what their issues are so that they can prepare to address their issues ahead of time.

EELib »

Noah Kim, 2019

This repository contains a collection of cleanly-implemented drivers for rudimentary Arduino Uno projects. My goal with this project was to improve my understanding of idiomatic C through in embedded applications, and everything you see in there was tested pretty thoroughly through at least one project in my EE 109 course here at USC. I’m particularly proud of the serial implementation, which required blood, sweat, tears, and an unwanted understanding of C preprocessor macros.

Cache »

Noah Kim, 2019

The cache module provides a convenient interface for dynamic memory and file-system caching. It has no dependencies and therefore a minimal installation footprint. I wrote this as an exercise in modern Python 3 as well as a convenience tool for a couple of projects I’ve worked on since.


Noah Kim, 2014 to present

Crossword is a multiplayer crossword player that functions in place of the New York Times crossword player. You can create a server, choose a puzzle, and play on the fly. Crossword even includes tools to record metrics such as game time, player contribution and more. It’s pretty much ready to go, I just have to deploy and start testing!

MBMT Competition Website »

Noah Kim, Noah Singer, a.k.a. N², 2017

The MBMT site is the digital interface to Montgomery Blair’s annual math tournament. It provides sponsor, team registration, and pre-competition logistic summaries, as well as a modular grading framework and comprehensive interface that allows competition runners to score students in real-time, display live scoreboards, and run statistics on competition results. See the source here.


Noah Kim, Artemis Tosini, Misha Khrenov, 2017

One problem with MCPS using a host of different softwares for their internet teaching medium is that it makes it more difficult to separate the information students really care about from everything else. MBHS Home is intended to remedy this issue by providing a hub for students to access the integrated technological facets that they use individually on a day to day basis. These services include:

  • Grades and assignments from Edline
  • Mail provided by
  • Mail and Classroom provided by Google
  • Sever access provided by
  • Student schedules and networking provided by Bell

The first version of MBHS Home has been released for student testing. Feedback is currently being accepted for updates and improvements. Read more about it here.

Spirograph »

Noah Kim, 2017

Spirograph is a cool web application that allows you to draw customized spirograph patterns in your browser. More advanced features, such as the JSON editor, allow users to implement things like fourier transforms to produce arbitrary polygons, such as squares. See the source here.

Chincoteague Drift »

Abstract Studio, 2018

Chincoteague Drift is a high-octane boating simulator where you must use the slow, trundling drift of a research barge to dodge the dangerous obstacles. The game features entirely original graphics and numerous easter eggs. It runs on Abstract Engine, a lightweight JavaScript 6 game engine I wrote for the new HTML 5 canvas component with the help of Arman Siddique. See the source here.

Vivid »

NSquared, 2017

Vivid is a music player and visualizer written in Javascript/HTML5. It uses WebAudio’s built-in Fast Fourier Transform API to extract frequency data from an audio file and then displays it in a set of dynamic views. Vivid is open source and allows for customization through its modular system. Warning: this only works in Chrome! See the source here.