Engaging students and teaching modern concepts: literate, situated, object-oriented programming

This paper describes our experience in using situated programming to deliver modern computer science concepts in the introductory programming course at Carnegie Mellon University. We used an artificial life simulation and taught object-oriented programming as well as more traditional material. The course was an experience, not an experiment, since many aspects of the course simultaneously changed from prior offerings. Nevertheless, what we saw was fundamental and potentially far-reaching. The most important result was that students were intellectually engaged. They came to grips with basic object-oriented programming, they mastered the topics of procedural programming, they learned first hand about computer simulation, they learned perhaps a bit about biology. Most importantly, through it all they used programming to express and explore their own powerful and novel ideas.

[1]  Adele Goldberg,et al.  SmallTalk 80: The Language , 1989 .

[2]  Peter B. Henderson,et al.  Teaching recursion as a problem-solving tool using standard ML , 1989, SIGCSE '89.

[3]  Robert L. Kruse,et al.  Data structures and program design in C , 1986 .

[4]  Peter J. Denning,et al.  Computing as a discipline , 1989, Computer.

[5]  Mark Weiss Algorithms, Data Structures, and Problem Solving With C++ , 1996 .

[6]  Owen Astrachan,et al.  Using simulation in an objects-early approach to CS1 and CS2 , 1994 .

[7]  Bertrand Meyer,et al.  Towards an Object-Oriented Curriculum , 1993, TOOLS.

[8]  Eric S. Roberts,et al.  Using C in CS1: evaluating the Stanford experience , 1993, SIGCSE '93.

[9]  Marcia C. Linn,et al.  Functional fun , 1990, SIGCSE '90.

[10]  Marja-Liisa Siikonen,et al.  Elevator Traffic Simulation , 1993, Simul..

[11]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[12]  Thomas B. Hilburn,et al.  A top-down approach to teaching an introductory computer science course , 1993, SIGCSE '93.

[13]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[14]  Marcia C. Linn,et al.  The case for case studies of programming problems , 1992, CACM.

[15]  Donald E. Knuth,et al.  The art of computer programming: V.1.: Fundamental algorithms , 1997 .

[16]  Richard E. Pattis,et al.  Karel the Robot: A Gentle Introduction to the Art of Programming , 1994 .

[17]  Mitchel Resnick,et al.  Turtles, termites, and traffic jams - explorations in massively parallel microworlds , 1994 .

[18]  Ravinder Chandhok,et al.  The design and implementation of the Pascal GENIE , 1989, CSC '89.

[19]  Elliot B. Koffman,et al.  Recommended curriculum for CS1, 1984 , 1984, CACM.

[20]  Robert Leroy Kruse,et al.  Data structures and program design , 1984 .

[21]  John T. Stasko,et al.  Do algorithm animations assist learning?: an empirical study and analysis , 1993, INTERCHI.

[22]  David Reed,et al.  AAA and CS 1: the applied apprenticeship approach to CS 1 , 1995, SIGCSE.

[23]  Edward Yourdon,et al.  Case studies in object-oriented analysis and design , 1975 .

[24]  Richard E. Pattis,et al.  Approaches to programming assignments in CS 1 and CS 2 , 1993, SIGCSE '93.

[25]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .