Resources:
– Safari online book subscriptions for all students. Hands down the single best, cheapest resource for a comp sci student. Wish I had it. http://safari.oreilly.com
– Subversion Versioning System: Should be available for every project a student and/or team every does.
– Printing: Automate printing of projects from Subversion to the given teachers inbox. Printing is expensive and/or broken in most locations on campus.
– Cheating: Create or use programs to detect cheating by scanning the subversion system.
-Classes
— Enterprise Computing
Learn what you need to know to write scalable applications
Become familiar with some existing Enterprise Apps and Tools. (Oracle, EJB, )
— Software Archictecture
Glaring hole in the CS program. Cannot believe it is not offered
— Design Patterns
This doesn’t have to be an entire class, but it should make up half of a course easily
— Unit Testing/Test First Development
It takes more than lip service to make this happen. Especially for group projects. Force projects to use this from the intro class on up.
-Concepts
— Code reviews. This technique would be invaluable to improving students code. Let better students mentor the students in their teams/groups. Should begin immediately in the very first course, and be in effect for every single course that involves group projects. I also think the teacher should anonymously review student projects in every single course.
— Hardware Architecture Requirement:
Reduce from 9 hours to 6 hours. Hands down, the biggest waste of my time. I use a little of it, but that did not require it to be the single largest core competency of the gradate program. It’s a hold over from days before Comptuer Engineering became a field, and it needs to be changed to make room for smarter courses. See ‘Lack of Software Architecture Course’ above.
–More to come…