views:

298

answers:

4

As part of a series of presentations and hands-on seminars we want to do in our University, we would like to simulate the participants joining an existing open-source project and contributing. This involves us writing some code beforehand on simple projects (think pre-alpha versions), to which students will start contributing (including joining a community and using specific collaboration tools). Which projects do you think are best suited, perhaps also keeping with the educational side of our endeavour?

The time frame for the course is 4 to 6 weeks, with weekly meetings of up to 6 hours (iucluding presentations), after which it would be nice to have a functional beta, to enhance impact on the students. The estimated numbers are: 2 "core" developers (tutors) and 3-5 students contributing as they learn.

+2  A: 

Educational games for younger children. There's a dearth of free good ones, the projects could be small and isolated, and you could hand the best ones to local schools when you're done.

moonshadow
+2  A: 

Relational database learning program. It could support creation of tables(with information how to do it), explain what are primary keys, foreign keys and other relational database features. Tables could be joined by dragging and dropping one table on top of another (some sort of GUI). Program could generate SQL code, with comments, based on tables created by user. Such program could provide basic information about realtional databases in simple and clear form.

Oko
+1  A: 

Without doing any sort of ads here, I would gladly invite your student team to participate for a few weeks to the development of the Star Wars Combine web-based MMOG.

It is a free non-commercial role-playing simulation online game developed by amateurs during their spare time. We are quite used to accept "anyone" into the team, we have decent training procedures to get people hooked into the project.

  • Programming code is PHP5
  • CSS, XHTML, JS, XAJAX are used too.
  • DB is MySQL
  • Server is Gentoo + Apache

Students could get a nice experience of many levels of development: design, DB, doc, backend coding, GUI, debugging, feedback from users, Web Services, support ...

We are used to work with universities as you can see with our Academic page.

Veynom
+1  A: 

A major problem is the subjective perception of simple. I am going to be bold and say: a compiler or an interpreter for a nontrivial language (think a subset of SML or Java). Yes, specifying a language and implementing the compiler is not easy, but you need to look out where the difficulty is: The difficulty is designing the language and designing the basic structure of the compiler - the abstract datastructures involved, the transformation stages and such. However, once this is done, a compiler breaks down into a lot of little, well-defined transformations that are more or less simple to implement.

As you preimplement a certain subset of code or ideas, you could provide the annoying parts, the lexer, parser and grammar, an example datastructure, an example transformation (or major hints for a visitor pattern, heh).

Tetha