Two years ago,
initial setup allowed students to create one Bourne shell script,
with dynamic HTML output.
Now expanded to 10 project areas,
with C, Java, Bourne shell, Makefile, text, and C header file editing.
Used in sophomore and senior-level C programming courses,
graduate Unix/C programming course (C and shell programming),
senior/graduate computer communications security course (Java programming).
---
Courses and Projects
Introductory C Programming
Moving average smoothing of noisy sine-wave data
Using math.h functions to draw a Valentine's day heart
Monte-Carlo simulation with an array of counters
plotted as a probability density function
Advanced C Programming
Provided students with header files and code for functions
such as dynamic matrix allocation,
matrix singular value decomposition, and network I/O
Java Programming
Provided the current Java development environment,
with security extension packages,
and other packages developed by the instructor
Dangerous, complete control of the system,
can even break out of the chroot environment
Necessary, to create files with proper owner/group,
to run student actions under their own userid/groupid
Overall more secure than using a common userid for all users
Running as student userid
Run time limited to 30 seconds real-time,
10 seconds CPU time,
8 MB RAM,
etc.
Students can safely execute arbitrary Unix commands
---
Conclusion and Future Work
Current implementation has worked well,
and students like it
Needs locking mechanism when creating new userid
Needs ability to edit and upload arbitrary file names
Needs ability to support interactive programs,
can be done via a Java process running on the server
with a network connection to an applet on the client