Collaborative learning in an introductory computer science course
SIGCSE '94 Proceedings of the twenty-fifth SIGCSE symposium on Computer science education
Using course-long programming projects in CS2
SIGCSE '99 The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
A constructivist approach to object-oriented design and programming
ITiCSE '99 Proceedings of the 4th annual SIGCSE/SIGCUE ITiCSE conference on Innovation and technology in computer science education
Structuring the student research experience
Proceedings of the 5th annual SIGCSE/SIGCUE ITiCSEconference on Innovation and technology in computer science education
Combating the code warrior: a different sort of programming instruction
Proceedings of the 5th annual SIGCSE/SIGCUE ITiCSEconference on Innovation and technology in computer science education
Making students read and review code
Proceedings of the 5th annual SIGCSE/SIGCUE ITiCSEconference on Innovation and technology in computer science education
Engaging students with active learning resources: hypertextbooks for the web
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Electronic peer review and peer grading in computer-science courses
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
AARTIC: development of an intelligent environment for human learning
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Hi-index | 0.00 |
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.