This is an awesome use case of Streamlit that I’ve explored myself. Something to be super careful of is to warn your students never ever ever to run this sort of server on a publicly facing web socket on their own personal machine (and to a lesser extent even on secure web hosted servers). Allowing arbitrary python code to run essentially gives any average user the same level of control as the web developer. As an example, all the user has to do is type out a while true infinite loop and the server is brought to its knees. In a web hosting environment, a user could tell the server to download an endless supply of files causing the web developer to rack up thousands in bandwidth fees. There are ways to lock this down (computational time limits, isolated python environments, limit external internet access, etc.) but they do vastly complicate what is otherwise a super easy way of letting a user run their own code in a no setup educational like environment.