Our Python Mini app added a "Virtual Learning" feature. As it is still in beta test stage, we are currently only making it accessible in kidOYO Passport and OYO Pro communities.
The Motivation
As remote learning plays a more and more important role amid this COVID-19 pandemic, we want to improve our tools to support remote collaboration between students and mentors.
When we teach coding in Python in the classroom, if students have problems running their code (e.g., a typo, incorrectly indented lines), they raise their hand, and we will go to their seats and look at their screen to help find the problem. But in a remote learning session, this can be a big challenge as mentors or teachers won't be able to see students screen easily anymore. The "virtual learning" feature in Python Mini will now allow mentors/teachers and collaborating students to monitor multiple participants code conveniently at the same time.
The basic workflow of this "virtual learning" feature is:
- Mentor/Teacher/Student "Instructor" creates a virtual learning room in Python Mini. The system will show this virtual learning room ID
- Mentor/Teacher/Student "Learners" join the room by typing the Room ID.
- Mentor/Teacher/Student "Instructor" can then open the "room monitor" page to monitor all "Learners" code in real-time.
Create Room
As a mentor/teacher/student, to create a "virtual learning" room, you need to create a file and save it first (or open an existing file). After that, click "File > Virtual Learning", a modal will pop-up:

Click "I'm Instructor" and name your room, like "Python Turtle", "Simple Print", etc. then click "Create". The system will show the room ID number:
Join Room
Mentor/Teacher/Student can see this room ID, and now it is time to ask students to join the room with this room ID. To join a room, learners also need to save the file first, then click "File > Virtual Learning", and choose "I'm Learner":

Learners now can type the room ID, in this example, 307180, then click "Join". The system will show them that they have joined the room. Learners now can focus on the editor to code, or click the "Leave Room" button to leave the room.

Monitor the Room
Mentor/Teacher/Student Instructors can click the "Monitor this Room" button in the above modal:

It will open another web page from which you can monitor all joined learners code:

Each learner will be listed as a card view in this "monitor" page. In the above example, we only have one learner joined. Their code will be shown in the thumbnail view in real-time. If there are 8 learners joined with this room ID, this page will show 8 cards, and as learners are typing, mentor/teacher/student can see their code change in the thumbnail view in real-time. If a learner has trouble with running the code, you can click the "View File Content" button, a bigger view will pop-up, from which you can check learners code in detail and run it:

Enable notification
While having this monitor page opened, the mentor/teacher/student needs to code in another window/tab. So mentor/teacher/student may want to know if any new learners enter the room or current learners accidentally left the room because, for example, the internet connection is unstable. To get notified when such event happens, mentor/teacher/student can click the "Enable Notification" button in the top-right corner in the monitor page:

Browser will pop-up a window to let you confirm this. Once you allow it, the notification will be auto enabled next time.
Depending on which browser you are using: if you are using Firefox, then that's all you need to do; if you are using Chrome and don't see the "notification" when a new learner joined, you may need to adjust some system settings:
For windows user, go to settings > notifications & actions, make sure the "notification" is turned on both for system and chrome:

For MacOS user, also go to "System Preferences > Notifications", select "Google Chrome" on the left, then turn on "Allow Notifications from Google Chrome":

Close the Room
Once your virtual teaching session is done, on the same file where you created the room, click "File > Virtual Learning", then click "Close this Room".

FAQ
Q: As a mentor/teacher/student, if I have an assistant mentor working with me, can I share the monitor page link to him/her so I can just focus on teaching?
A: Yes. You can just copy the monitor page url and share it to other mentors. As long as the mentor is signed into the current community, he/she will be able to open the monitor page url.
Q: As a mentor/teacher/student, if I share the room monitor url to learners, will they be able to see the page?
A: Yes. Any member signed into the community will be able to open the monitor page if they have the url. So share the monitor page url carefully based on your needs.
Q: Can a student account in OYOclass create a "virtual learning" room?
A: Yes. In a community, there might be some cases where students want to host a virtual learning session to collaborate or lead other students. So in this case, students can also be an "instructor" to create a virtual learning room
Q: What if learners accidentally closed their page after they joined the room? Do they need to create a new file and join room again?
A: Learners don't need to create a new file and join again. In such case, students only need to go back to open the same file they used to join the room before. Once they opened that file, they will auto join the room again.
Q: Is there a time-limit for a room?
A: Yes, every room will be force closed after 24 hours from the time it has been created. So if you forget to close the room by clicking the "Close this Room" button, your room will still be closed after 24 hours.
Q: As a mentor/teacher/student, is it possible to host multiple rooms at the same time?
A: Yes. A room is bound with a python file. You can open several python files at the same time, and you can create a room for each of them.