Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow workshop organizers to follow the progress of attendees #301

Closed
jankeromnes opened this issue Feb 11, 2019 · 5 comments
Closed

Allow workshop organizers to follow the progress of attendees #301

jankeromnes opened this issue Feb 11, 2019 · 5 comments
Labels
meta: stale This issue/PR is stale and will be closed soon

Comments

@jankeromnes
Copy link
Contributor

If you run a class / workshop / hackathon using Gitpod (gitpod.io or Gitpod on-premise), you might be interested in following the progress being made in each workspace, e.g. to notice when people are stuck in order to go help them.

@kussmaul recently asked me this great question:

It would also be nice to have better ways to help teachers monitor student progress, to see who is struggling and might need more help.
[...]
Are there ways to monitor users & workspaces? A teacher might want to see which students are working and what they are doing.

I think in the past we've had a similar request, for which we've set up a server where workspaces regularly submitted unit test results to.

@geropl rightly suggested that we could probably find a way to such monitoring easier, without necessarily having to invent concepts like "Gitpod teams" and "admins".

@svenefftinge
Copy link
Member

I find the idea of monitoring other users a bit scary. I could imagine that for dedicated on-premise installations, but for gitpod.io not so much. Also I wonder what information would need to be shared in order to understand the progress of the individual user. Sounds like I'd need to look into their running workspaces. Wouldn't it be better the other way around? I.e. good old "ask me if you ned help".

@kussmaul
Copy link

kussmaul commented Feb 12, 2019

One problem with "ask me if you need help" is that many students don't. :-)

Yes, a teacher or coach might want to look into running workspaces to see what progress has been made, who needs help, who is cheating, etc. (especially in a class with 20 or 50 or 100 students).
When I grade team projects, I try to look at everything - code & docs, issue tracker, version history, etc.

I agree that monitoring can be scary, and probably makes more sense for on-premise installations where it is more of an administrative dashboard rather than something available to everyone.

I like the idea of multiple workspaces submitting data to a common server. Another approach would be to have a server that runs tests, and have multiple workspaces send their code to it for testing. (Virginia Tech developed a system called Web-CAT that does this for simpler homework assignments).

Thank you for your ideas!

@jankeromnes
Copy link
Contributor Author

I just had a very interesting with @olberger about this.

They are looking into using Labtainers for courses, which apparently offers "Automated assessment of student lab activity and progress" (based on intercepting Bash commands and watching logs, I think).

Labtainers seems to be designed around VirtualBox / VMWare virtual machines that are installed on students' machines, but @olberger is also looking into making Labtainer containers usable remotely by installing Theia IDE and noVNC in them.

@olberger
Copy link

Nice chat indeed with @jankeromnes.

Labtainers hosts a Docker daemon inside the VM, which can run containers for every lab. Some labs include multiple containers for running network-related labs, like client-server experiment over a protocol.
See for instance the "telnetlab" that contains 2 containers (see their Dockerfiles) which are based on a base ubuntu container (see Dockerfile)
The personalisation of the environment made in the labs (see Dockerfile) includes customizing the bash env so that command history, stdin, stdout and such can be monitored (like: "the student typed 'telnet server' and typed the correct password on container A, and that same password appeared in the stdout of tcpdump in container B).

This monitoring and grading mechanics is documented in the "Labtainer Lab Designer User Guide". In principle, any tool can be triggered for grading, since the grading will run another instance of a container over collected monitoring info. For instance, it can run a custom tool to check the Web navigation history to check a user visited such and such URLs (see "webtrack" lab which requires using Firefox for navigating to fake websites)... the sky is the limit ;)

As @jankeromnes mentioned, we've been tweaking Labtainers to test having it run only on Docker and in headless mode, using Guacamole to offer a Web desktop access for GUI-based labs... which ressembles using noVNC for testing GUI apps.

One limitation of the use of full-docker labs is the security when users of the labs can't really be trusted (when teaching cyber security, trust... you know...).
I'm really much interested in Theia in order to add programming labs to the list of what can be done in Labtainers, while being able to do batch-grading (or at least evaluate what students do) in an automated way.

@stale
Copy link

stale bot commented Oct 4, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the meta: stale This issue/PR is stale and will be closed soon label Oct 4, 2020
@stale stale bot closed this as completed Mar 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
meta: stale This issue/PR is stale and will be closed soon
Projects
None yet
Development

No branches or pull requests

4 participants