Constructivist approaches for teaching computer programming

This paper discusses the application of constructivist pedagogical approaches to teaching computer programming in high school and undergraduate courses. It provides an overview of constructivist pedagogy and contrasts it with traditional objectivist pedagogy. The paper then describes how a variety of sources on constructivist educational practice from computer science educational literature can be combined to transform under-graduate courses in computer programming and information technology. The resulting courses are accessible to a wider range of students and incorporate active learning, collaborative group-based instruction, and cognitive apprenticeships. This pedagogical style focuses on the higher cognitive levels of Bloom's taxonomy and addresses multiple student learning styles and intelligences. Course design, classroom activities, and assessment methods using this pedagogical approach for computer programming instruction will be covered in detail. The presentation relies heavily on the experiences of the presenter in adopting this style of instruction within undergraduate computer programming courses and will include a discussion of the some of the attitudinal issues they encountered in this process. The presentation will include coverage of resources for constructivist teaching of computer science and technology and some recommendations for instructors who may wish to adopt this style of instruction.

[1]  B. Bloom Taxonomy of educational objectives , 1956 .

[2]  H. Sluiter [Learning by doing]. , 1977, Nederlands tijdschrift voor geneeskunde.

[3]  H. Gardner,et al.  Frames of Mind: The Theory of Multiple Intelligences , 1983 .

[4]  K. Thompson Cognitive and Analytical Psychology Howard Gardner .Frames of Mind: The Theory of Multiple Intelligences. New York, Basic Books, 1983. , 1985 .

[5]  C. Bonwell,et al.  Active learning : creating excitement in the classroom , 1991 .

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

[7]  Charles C. Bonwell,et al.  Using active learning in college class : a range of options for faculty , 1996 .

[8]  Charles C. Bonwell,et al.  Enhancing the lecture: Revitalizing a traditional format , 1996 .

[9]  Owen L. Astrachan,et al.  Application-based modules using apprentice learning for CS 2 , 1997, SIGCSE '97.

[10]  Owen L. Astrachan Concrete teaching: hooks and props as instructional technology , 1998, ITiCSE '98.

[11]  Mordechai Ben-aft,et al.  Constructivism in computer science education , 1998, SIGCSE '98.

[12]  Rebecca Brent,et al.  Is Technology a Friend or Foe of Learning , 2000 .

[13]  Scott Grissom,et al.  An Empirical Evaluation of Using Constructive Classroom Activities to Teach Introductory Programming , 2001, Comput. Sci. Educ..

[14]  Linda L. Lohr Creating Graphics for Learning and Performance: Lessons in Visual Literacy , 2002 .

[15]  Anne McDougall,et al.  Student Strategies for Learning Computer Programming: Implications for Pedagogy in Informatics , 2004, Education and Information Technologies.