We present a teaching method aimed at developing higher programming skills from description to production. The model is derived from problem-based learning approaches. It is supported by an "incremental" web site that gradually introduces theoretical presentations, examples, programs and information regarding the problem. The web site is also used as a collaboration space where students can find partial solutions proposed by other teams as well as "requests" submitted by a fictitious client. At the end of the project, each product is published and the best teams are awarded a virtual medal.We had four objectives. The first was to get students to share their expertise and learn to work in teams; second, to teach students the importance of doing a conceptual analysis rather than jumping into programming; third, to introduce theoretical notions, exercises, and examples in class when the students asked for them; and finally, to get students to formulate and describe problems by themselves.Students had to produce a large-scale project that consisted of simulating a factory. The project can be understood at two levels: the first is the problem of developing a discrete simulation of a factory; the second is the creation of the program itself which simulates the industrial context by requiring constant adjustment to new instructions and data.Although this approach requires a lot of effort and coordination on the part of the instructor, the benefits are definitely worthwhile. The model provides students with a broad, in-depth and rewarding learning experience.
Unfortunately, ACM prohibits us from displaying non-influential references for this paper.
To see the full reference list, please visit http://dl.acm.org/citation.cfm?id=544457.