Interactive Programming Environments for Teachers and Students
David J. Malan, Kareem Zidane, Brian Yu · 2021
This workshop offers hands-on experience with a suite of interactive programming environments for teachers and students, each of them cloud-based and free. The first tool is CS50 Sandbox, via which teachers create temporary programming environments quickly and share copies of those sandboxes with students. The second tool is CS50 Lab, via which teachers can create step-by-step programming lessons, providing incremental feedback at each step, enabling students to progress from an empty file (or starter code) to working code, with hints and feedback along the way. And the third tool is CS50 IDE, via which teachers can provide students with their own cloud-based Linux environment. Each of these environments offers students a built-in file browser and code editor, along with a terminal window with shell access to their very own container. The IDE additionally provides an interactive, graphical debugger. Each tool enables students to write programs in any language for which a compiler or interpreter can be installed in the underlying container, including Java and Python. Not only will we demonstrate each tool, we'll discuss lessons learned from having deployed these tools in CS50 at Harvard to hundreds of students on campus and thousands of students online. We'll compare and contrast with commercial and open-source tools. And we'll discuss challenges encountered and best practices adopted.