I want to set up a fully functional web server in the classroom. I will be using a separate computer provisioned with Apache, MySQL, Tomcat, PHP, Perl, etc. I want to have each student in the class able to have their own working directory. I also want to have a pair of sharing directories. One where they can access, without changing, lesson-based material, and one where they can upload content for others to access, and where collaborative projects can be built. I intend that each student's personal directory will migrate with them as they progress through the courses, for those that do continue.
Situation:
- Single classroom
- Between 25 and 35 students in each period
- Desktop computers available for each student
- The students are not required to utilize the same computer each day (most, but not all, do so however)
- All the desktops will have the same tools, including FTP client for accessing the "server"
- Courses are at three different levels, but are all Web Development
- The system will be used, independently, by 5 different class periods.
- Not all students are guaranteed to have home Internet access
- Personal laptops are allowed, but not required
- The tools on the desktops are able to be installed on their personal laptops if desired (no proprietary software involved)
- Students are allowed to use their own selected tools (editor, IDE, etc.) on their personal laptops
Assertions:
- The school's administration has approved this project
- The network admin has created a VLAN for the classroom
- All security concerns have been, and will be, addressed by the IT department
- The server aspects of the system will be configured, and maintained by me
- The system will be kept properly updated, this includes Apache as well as the supporting software such as the DB, PHP, Ruby, etc.
- Any and all licenses are such that everything proposed is "above-board"
How much access should I allow the students to files (theirs, the common directory, and lesson-based directory)? I.e.: should they be able to access them from outside the classroom and/or school's network? And, should they be allowed to create a public-facing web page/site as part of the server's function?
I'm thinking that full access from anywhere will allow them to work on projects outside of class without having to move files back and forth with thumb drives. That will also mean that I can give them larger assignments as homework rather than having their coding work only be labs. I'm also considering that the ability to have their own website will give them greater investment in the class, and greater desire to learn things to make their "Own" website better, and stand out more.
Again, IT claims they can handle the setup and security for any of the ideas I've presented them, so security and maintenance are not issues, just how it may affect their education.
I am also wondering if it's better to configure the server with the latest stable packages, or if I should make it closer to what most low-end shared hosting accounts have. The shared-hosting environment is what they most likely will encounter if they choose to do something personal on the Web now. Doing so, however, will restrict some of what I can demonstrate with newer packages.