Let me start with this: my definition of “software for education” has dramatically changed Spring 2019. Thanks Paulo Blikstein.
This project is one of the ways I see software for education in my future: As a means of collecting data or an assessment tool or a research tool! I started on this web application in March 2019 for a lesson that I would be giving in a high school coding class. The corresponding lesson plan can be found here. This was also a means of collecting research data for my EDUC 130 (Knowing and Learning in Mathematics and Science) class at UC Berkeley.
I used code by Jesus Sanchez to start out the project and tweaked it to how I needed it. We use Python as a backend server and React as the framework for web development.
The left side features a Python interpreter and an output. When the play button is run, the React App will send the code in the text editor to the backend to be saved as a file, run, and saved in a database. The app will also send a post request periodically to save the code progression into the database for further analysis.
The right side has the RC Cola Problem–a probability-based problem in which we want the students to code a simulation for this story. If the student prints out a list in their code, the histogram on the bottom right will update and generate the according list. A sample solution looks like:
We can watch students’ “Code Iterations” and “Compilations” afterwards using additional scripts:
Through this, we can ideally look at students’ thought process throughout the activity and make connections to their conversations (video data), level of understanding, and find patterns between novice programmers and advanced programmers. For more analysis, see the poster and paper.
The code can be found here.