THE ROLE OF PROGRAMMING PARADIGMS IN THE FIRST PROGRAMMING COURSES

The choice of the first programming language and the corresponding programming paradigm is critical for later development of a programmer. Despite the huge number of programming languages introduced over the last fifty years, the key issues in programming education remain the same and choosing appropriate first programming language is still challenging. In this paper we overview some of the most important issues relevant for programming education, especially for introductory courses, and we discuss the problem of choosing the first programming language. Some statistical data about first programming language are presented. ZDM Subject Classification: N64; AMS Subject Classification: 00A35.

[1]  Donald A. Norman,et al.  Accretion, tuning and restructuring: Three modes of learning , 1976 .

[2]  John F. Wakerly,et al.  The programming language PASCAL , 1979, Microprocessors and microsystems.

[3]  Michael A. Bauer,et al.  Experiences with PASCAL in an introductory course , 1979, SIGCSE '79.

[4]  Richard L. Wexelblat,et al.  The consequences of one's first programming language , 1980, SIGSMALL '80.

[5]  Carlo Ghezzi,et al.  Programming language concepts , 1982 .

[6]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[7]  Benedict duBoulay,et al.  Some Difficulties of Learning to Program , 1986 .

[8]  Maarten van Someren,et al.  What's wrong? Understanding beginners' problems with Prolog , 1990 .

[9]  Janine Rogalski,et al.  Acquisition of Programming Knowledge and Skills , 1990 .

[10]  R. P. Mody C in education and software engineering , 1991, SGCS.

[11]  Horst Langendörfer,et al.  An integrated Prolog programming environment , 1993, SIGP.

[12]  Rachel Harrison The Use of Functional Languages in Teaching Computer Science , 1993, J. Funct. Program..

[13]  Stef Joosten,et al.  Teaching functional programming to first-year students , 1993, Journal of Functional Programming.

[14]  Rick Decker,et al.  The top 10 reasons why object-oriented programming can't be taught in CS 1 , 1994, SIGCSE '94.

[15]  Mark Guzdial,et al.  Centralized mindset: a student problem with object-oriented programming , 1995, SIGCSE.

[16]  L. F. Johnson,et al.  C in the first course considered harmful , 1995, CACM.

[17]  Behrouz A. Forouzan,et al.  Comparison of student success in Pascal and C-language curriculums , 1996 .

[18]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[19]  L. McIver,et al.  Seven deadly sins of introductory programming language design , 1996, Proceedings 1996 International Conference Software Engineering: Education and Practice.

[20]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[21]  Susan S. Brilliant,et al.  The first programming paradigm and language dilemma , 1996, SIGCSE '96.

[22]  Leon E. Winslow,et al.  Programming pedagogy—a psychological overview , 1996, SGCS.

[23]  Frederick Hosch Java as a first language: an evaluation , 1996, SGCS.

[24]  Tim DeClue Object-orientation and the principles of learning theory: a new look at problems and benefits , 1996, SIGCSE '96.

[25]  Mark Lattanzi,et al.  Teaching the Object-Oriented Paradigm and Software Reuse: Notes from an Empirical Study , 1996, Comput. Sci. Educ..

[26]  Mark Allen Weiss Experiences teaching data structures with Java , 1997, SIGCSE '97.

[27]  K. N. King The case for Java as a first language , 1997, ACM-SE 35.

[28]  Said Hadjerrouit Java as first programming language: a critical evaluation , 1998, SGCS.

[29]  John A. Hamilton,et al.  A Comparison of Ada and Pascal in an Introductory Computer Science Course , 1998, SIGAda.

[30]  John A. Hamilton,et al.  A comparison of Ada and Pascal in an introductory computer science course , 1998 .

[31]  S. Fincher,et al.  What are we doing when we teach programming? , 1999, FIE'99 Frontiers in Education. 29th Annual Frontiers in Education Conference. Designing the Future of Science and Engineering Education. Conference Proceedings (IEEE Cat. No.99CH37011.

[32]  Susan Wiedenbeck,et al.  A comparison of the comprehension of object-oriented and procedural programs by novice programmers , 1999, Interact. Comput..

[33]  Sam Holden,et al.  An exploration of novice programming errors in an object-oriented environment , 1999, ITiCSE-WGR.

[34]  Leesa Murray,et al.  Teaching programming to beginners - choosing the language is just the first step , 2000, ACSE '00.

[35]  Linda McIver The effect of programming language on error rates of novice programmers , 2000, PPIG.

[36]  Jr. Antonio M. Lopez Supporting declarative programming through analogy , 2001 .

[37]  Mark Toleman,et al.  Language trends in introductory programming courses , 2002 .

[38]  Peter Van Roy,et al.  Teaching Programming Broadly and Deeply: The Kernel Language Approach , 2002, Informatics Curricula and Teaching Methods.

[39]  Amruth N. Kumar Prolog for imperative programmers , 2002 .

[40]  J. Reinfelds Programming as an engineering discipline , 2002, 32nd Annual Frontiers in Education.

[41]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..

[42]  Diwaker Gupta,et al.  What is a good first programming language? , 2004, CROS.

[43]  MANUEL M. T. CHAKRAVARTY,et al.  The risks and benefits of teaching purely functional programming in first year , 2004, Journal of Functional Programming.

[44]  Richard Bornat,et al.  The camel has two humps (working title) , 2006 .

[45]  George H. Freeman,et al.  The Use of C# as a First Programming Language , 2006, FECS.

[46]  Robert M. Siegfried,et al.  Will There Ever Be Consensus on CS1? , 2008, FECS.

[47]  Patricia Haden The Trouble with Teaching Programming , .