Teaching introductory programming today presents considerable challenges, which traditional techniques do not properly address. Students start with a wide variety of backgrounds and prior computing experience; to retain their attention it is useful to provide graphical interfaces at the level set by video games; and with the ever-increasing presence of computing in society the stakes are higher, requiring a computing curriculum to introduce students early to the issues of large systems. We address these challenges through an "outside-in" approach, or "inverted curriculum", which emphasizes the reuse of existing components in an example domain involving graphics and multimedia, a gentle introduction to formal reasoning thanks to Design by Contract techniques, and an object-oriented method throughout. The new course has now been taught twice, with considerable gathering of student data and feedback; we report on this experience and its continuation.
[1]
David Gries,et al.
An introduction to programming
,
1973
.
[2]
Maurice V. Wilkes,et al.
The outer and inner syntax of a programming language
,
1968,
Computer/law journal.
[3]
Gerald J. Sussman,et al.
Structure and interpretation of computer programs
,
1985,
Proceedings of the IEEE.
[4]
Mark Guzdial,et al.
Teaching the Nintendo generation to program
,
2002,
CACM.
[5]
簡聰富,et al.
物件導向軟體之架構(Object-Oriented Software Construction)探討
,
1989
.
[6]
Bertrand Meyer.
The Outside-In Method of Teaching Introductory Programming
,
2003,
Ershov Memorial Conference.
[7]
Bertrand Meyer,et al.
Towards an Object-Oriented Curriculum
,
1993,
TOOLS.