On 6/14/06, Geoffrey De Smet <[EMAIL PROTECTED]> wrote:
A friend of mine asked me how far Maven 2 could help in education.

Take about 50 students, that all have to do the same 10 projects.
Most of these projects are small (2 hours to solve, e.g. Fibonacci), but
others are big (3 months to solve, e.g. FTP client).
The teacher doesn't have the time to look at every single file in the
projects and he loses a lot of time even just testing all projects.
If part of his work could be automated, for example using testcases to
test corner cases, that would be great.

Only one big problem: the students don't know Maven 2 and it's not a
priority to learn it to them...
Subversion could however become a priority.


So I was thinking about what he should do:
- Create and solve the projects and let maven generate IDE files.
- Create a package "problem" and a package "solution". Filter out the
"solution" package when suppling the project to the student.
- Create interfaces (and domain objects if needed) in the "problem" package
- Create testcases to test the code automatically. Should he supply the
student with the testcases?

I would make it simple. Stay as far as possible from the
implementation, i.e. no implementation structure (except maybe in the
first assignment or two). Just make it so that the same integration
tests can be applied to all projects.

So for that, he should define really clearly what the contract of the
project is. E.g. "read this file, outputs the solution to that file,
using the following format".

He shouldn't supply the student will all the testcases, but one or 2
simple ones together with a "runner" infrastructure should be enough
to make sure that they get their project building correctly might be
good at least for the first assignments and to make sure that students
provided test cases can be added to his master test structure.

Based on my experience it's very easy to put too much in this runner
to influence the implementation. You don't want that.

Similarly I think that would be a good way to introduce how to write
test first (maybe after some assignments, letting the students get
acquainted with the technology and really see the advantages later
on). Some may already know the technique.

As to how to organize the subversion, zip etc, I don't have a strong opinion.

Hope that helped...

Jerome

- Create a zip to to supply to the students OR copy on subversion
(filtering out "solution")?
-- If subversion then the students should not be able to see to original
project, only their filtered copy.
- Find a way to get maven to "mvn test site" all projects in a directory
structure like this, without having to create pom.xml all over the place:
student1/project1/
student1/project2/
...
student2/project1/
...

Would this last thing be possible?
Would I need a pom.xml in the projects themselves, or could I create one
on the fly based on a template (and change the groupId to
"com.domain.exercises.<student1>.<project1>") if there is none?

What do you think of this setup? Are there better idea's?

--
With kind regards,
Geoffrey De Smet


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to