Hi,
I'm a research assistant for a university. We're retooling our Software Architecture subject, hoping to "modernize", and address some of the teaching and collaborative learning issues we've discovered in past semesters.
Students are asked to rapidly build a prototype of their architectured system using Eclipse.
For persistence, we've guided students to HSqlDb.
Last semester we received significant feedback that writing the Data Access Layer and mapping to OO has taken alot of time. This plumbing work could be better spent on more relevant things, like scaling, end-to-end perf or satisfying more scenarios.
In a real-world production, I'd pick an ORM tech, like Hibernate, but the subject is already too complex to teach yet another technology (and Hibernate is a massive one to learn for students IMHO).
So, my questions to the SO community:
- Should we consider giving students an object oriented database (if they still exist)? This saves time on ORM and plumbing
- Should we stick with RDBMS and tell students to roll their own ORM?
- Should we point students to a lightweight, simple ORM?
Remember, this isn't real world, but we'd like to teach real world skills as much as possible. Teaching ORM not as important as getting students to rapidly prototype a system that satisfies the scenarios.
Any help is greatly appreciated.
UPDATE Thank you for your responses. I'm a C# dev at heart too (see my previous posts), but unfortunately all the students are only familiar with Java when they come into the subject.