Teaching Programming to Novices: A Review of Approaches and Tools.

MF01/PC01 Plus Postage. Computer Science Education; Foreign Countries; *Introductory Courses; *Programming; Programming Languages; Teaching Methods Three different approaches to teaching introductory programming are reviewed: the incremental approach, the sub-language approach, and the mini-language approach. The paper analyzes all three approaches, providing a brief history of each and describing an example of a programming environment supporting this approach. In the incremental approach, the language being taught is presented as a sequence of language subsets. Each subset introduces new programming language constructs while retaining all the constructs of the preceding subsets. One of the most developed applications of the incremental approach is the PMS (Pascal Made Simple) system. The idea of the mini-language approach is to design a small and simple language to support the first steps in learning programming. A student learns what programming is by studying how to control an a tor, which can be a turtle, robot, or any other active entity, acting in a microworld. Karel Genie is an example of a novice programming environment. The idea of the sub-language approach is to design a special starting subset of the full language containing several easily visualizable operations. This subset can support the first steps of learning programming and helps later in introducing more complex programming concepts. An example is Ku-Mir, a text editor with a zero-response-time incremental compiler system distributed widely in Soviet schools and universities. Analysis of the similarities of the environments provides some ideas about how to teach programming to novices and how a novice programming environment should be constructed. These lessons learned are examined in detail. (Contains 23 references.) (MAS) * ) *.?.:.A.******)%), ************************************* Reproductions supplied by EDRS are the best that can be made * from the criginal document. *********************************************************************** Teaching programming to novices: a review of approaches and tools oo r-st P. BRUSILOVSKY cq International Centre for Scientific and Technical Information oo oo Kuusinen sir. 216, Moscow 125252, Russia. E-Mail: plb@plb.icsti.su A. KOUCHNIRENKO Department of Mechanics and Mathematics, Moscow State University, Moscow, Russia. E-mail: agk@agk.msk.su P. MILLER School of Computer Science, Carnegie Mellon University Pittsburgh, PA, 15213 USA. E-mail: plm@cs.cmu.edu U S. DEPARTMENT OF EDUCATION Oft,ce of Ectucabonal Research and irnprc.ement EDUCATIONAL. RESOURCES INFORMATION CENTER (ERIC) E Tms document has been reproduced at rece.ned from the person or organtzahon originating .1 C Mmor changes bane been made to .mprove reproductron duaIdy Pori Is of view cr opinions staled nIbs docurnenl do not neCessardy represent &float OE RI pOSslior, or policy "PERMISSION TO REPRODUCE THIS MATERIAL HAS BEEN GRANTED BY

[1]  Ivan Tomek Josef, the robot , 1982 .

[2]  Tomasz Müldner,et al.  PMS—A program to make learning Pascal easier , 1985 .

[3]  Philip T. Cox,et al.  Prograph: a step towards liberating programming from textual conditioning , 1989, [Proceedings] 1989 IEEE Workshop on Visual Languages.

[4]  E. Regener,et al.  Teaching subsets of Pascal , 1981, SIGCSE '81.

[5]  Richard C. Holt,et al.  SP/k: a system for teaching computer programming , 1977, CACM.

[6]  Thomas Reps,et al.  Programming Techniques and Data Structures , 1981 .

[7]  Tim Teitelbaum The Cornell Program Synthesizer: a syntax-directed programming environment , 1979, SIGP.

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

[9]  Kent L. Beck,et al.  Playground: An Object-Oriented Simulation System With Agent Rules for Children of All Ages , 1989, OOPSLA.

[10]  J. N. P. Hume,et al.  Programming Standard Pascal , 1980 .

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

[12]  John M. Carroll,et al.  Minimalist planning tools in an instructional system for smalltalk programming , 1990, INTERACT.

[13]  Seymour Papert,et al.  Mindstorms: Children, Computers, and Powerful Ideas , 1981 .

[14]  Jürgen Herczeg,et al.  Browsing through program execution , 1990, INTERACT.

[15]  Isabelle Borne,et al.  Object-oriented programming in the primary classroom , 1990 .

[16]  T. Balman Computer assisted teaching of FORTRAN , 1981 .

[17]  Adele Goldberg,et al.  Teaching smalltalk (methods for teaching the programming language smalltalk; smalltalk in the classr , 1972 .