Broncode: An Interactive Programming Tutorial Platform

Date of Defense


Date of Graduation



Computer Science

First Advisor

John Kapenga

Second Advisor

Colin MacCreery


Computer science students are often taught, some of its practical content, through the use of disparate sites for interactive content. This solution requires both parties, the university and the students, to buy access to the content. Therefore, we came up with a solution that we call Broncode. Broncode is a web application that provides a way for a professor to upload their own custom programming tutorial, and for the students to go through that tutorial. In addition, compilation, running, and grading of the program are all handled by the application so that the student needs only to focus on what is being taught. This application was achieved through the use of several technologies that were put together including CodeMirror, Django, Docker, PostgreSQL, and finally Nginx. CodeMirror was our IDE-like code editor, which allowed for nice-looking syntax highlighting and support for over 100 programming languages. We then use Django, a python-based web application framework, to extract the code from the editor and pass it back to Docker. Docker is a platform for creating isolated applications. For each piece of code that Docker receives, it creates a container that isolates the code inside the container so that it does not tamper with anything aside from what hardware resources it has been given. Each docker container contains a compiler corresponding to the language of the code it received which then compiles the code and returns back the result of the compilation. Django then runs the code against a series of input values and checks to see if they all produce correct results. Following that, the code is stored in our database, PostgreSQL, for further review by the professor. Finally, all of this is hosted on Nginx, a webserver, allowing people to find our website through their web browser.

Access Setting

Honors Thesis-Restricted

This document is currently not available here.