#### Event Title

Algorithm Visualizations for the Lambda Calculus

#### Mentor 1

Thomas Naps

#### Location

Union 179

#### Start Date

24-4-2015 2:00 PM

#### Description

Algorithm visualization is a subset of computer science in which educators build visual representations of various abstract concepts and algorithms that are seen in the field. Lambda calculus is an abstract programming language used in programming theory to teach the functional programming paradigm. As such, my project was to create visualizations for the lambda calculus in order to help new computing students better understand the fundamental concepts of the language. I designed these visualizations as part of the OpenDSA Project, a collaboration of computer scientists working to form an electronic book that can be used to teach students all of the core concepts that would be covered in a computer science data structures and algorithms course. To meet their specifications, I worked primarily with the JavaScript programming language, utilizing both the Khan Academy Framework and the JavaScript Algorithm Visualization (JSAV) libraries. In the end I was able to create a series of animations and accompanying exercises to both teach the core concepts of lambda calculus as well as to test for student comprehension. These visualizations are currently being used at the University of Wisconsin - Oshkosh in two sections of the Programming Languages course this spring. This will hopefully give me insight into their effectiveness and provide me with information needed to work on and improve what I have done thus far. I am hoping to use the information gathered from this to gain a better understanding of how visualizations can help students learn and what are effective methods for teaching through this medium. If proven to be effective, these visualizations can one day become commonplace in education, both inside and outside the field of computer science.

Algorithm Visualizations for the Lambda Calculus

Union 179

Algorithm visualization is a subset of computer science in which educators build visual representations of various abstract concepts and algorithms that are seen in the field. Lambda calculus is an abstract programming language used in programming theory to teach the functional programming paradigm. As such, my project was to create visualizations for the lambda calculus in order to help new computing students better understand the fundamental concepts of the language. I designed these visualizations as part of the OpenDSA Project, a collaboration of computer scientists working to form an electronic book that can be used to teach students all of the core concepts that would be covered in a computer science data structures and algorithms course. To meet their specifications, I worked primarily with the JavaScript programming language, utilizing both the Khan Academy Framework and the JavaScript Algorithm Visualization (JSAV) libraries. In the end I was able to create a series of animations and accompanying exercises to both teach the core concepts of lambda calculus as well as to test for student comprehension. These visualizations are currently being used at the University of Wisconsin - Oshkosh in two sections of the Programming Languages course this spring. This will hopefully give me insight into their effectiveness and provide me with information needed to work on and improve what I have done thus far. I am hoping to use the information gathered from this to gain a better understanding of how visualizations can help students learn and what are effective methods for teaching through this medium. If proven to be effective, these visualizations can one day become commonplace in education, both inside and outside the field of computer science.