Title

Author

Date of Award

6-2017

Degree Name

MS in Computer Science

Department

Computer Science

Advisor

Aaron Keen

Abstract

Learning how to program can be quite difficult. Beginners face two obstacles to learning to program: developing a mental model of the steps of computation and learning the syntax of a programming language. Because programmers are prone to make mistakes that introduce errors into their code, it is important that they understand what each line of code is doing in their program. I propose that a system be built in which writing code and running code happen simultaneously. This system shows the results of code to the user immediately after it is typed; this type of system is called a live programming environment. The environment's features allow the programmer to highlight individual lines of code to see their result. The programmer can walk through loops and explore the details of a function call. The programmer can unit test a function or class. The environment displays variables declared in the code and their values and allows the programmer to create a visualization for class objects. The environment appears to be beneficial for beginners based on the results of two surveys with a total of 27 participants. The results of this thesis show that live programming environments should be developed to help the beginner learn to program.