Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to...

21
Guide to Teaching Computer Science

Transcript of Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to...

Page 1: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

Guide to Teaching Computer Science

Page 2: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

Orit Hazzan • Tami Lapidot • Noa Ragonis

Guide to Teaching Computer Science

An Activity-Based Approach

Second Edition

Page 3: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

ISBN 978-1-4471-6629-0 ISBN 978-1-4471-6630-6 (eBook)DOI 10.1007/978-1-4471-6630-6

Library of Congress Control Number: 2014956392

Springer London Heidelberg New York Dordrecht© Springer-Verlag London Limited 2011, 2014This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed.The use of general descriptive names, registered names, trademarks, service marks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use.The publisher, the authors and the editors are safe to assume that the advice and information in this book are believed to be true and accurate at the date of publication. Neither the publisher nor the authors or the editors give a warranty, express or implied, with respect to the material contained herein or for any errors or omissions that may have been made.

Printed on acid-free paper

Springer is part of Springer Science+Business Media (www.springer.com)

Orit HazzanDept. Education in Science & TechnologyTechnion––Israel Institute of TechnologyTechnion CityHaifaIsrael

Tami Lapidot Dept. Education in Science & TechnologyTechnion––Israel Institute of TechnologyTechnion CityHaifaIsrael

Noa RagonisComputer Science Studies, Faculty of EducationBeit Berl College;Dept. Education in Science & TechnologyTechnion—Israel Institute of TechnologyDoar Beit BerlIsrael

Page 4: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

v

To our families, students and colleagues

Page 5: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

vii

Prologue

This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school and in academia, i.e., computer science university instruc-tors, high school computer science teachers, and instructors of computer science teacher preparation programs. Specifically, the guide can be used as the textbook of the Methods of Teaching Computer Science (MTCS) course, offered to prospective and in-service computer science teachers. In all cases, the guide is organized in a way that enables an immediate application of its main ideas. This goal is achieved by presenting the rationale for addressing a variety of computer science education topics, as well as their detailed actual teaching process (including activities, work-sheets, topics for discussions, and more).

The guide encompasses the authors’ teaching and research experience in com-puter science education gained during the past three decades. Specifically, we have taught courses on computer science and computer science education to high school computer science pupils, undergraduate computer science students, and pre-service and in-service computer science teachers. In parallel, we have conducted research on a variety of computer science education topics, such as teaching methods, learn-ing processes, teacher preparation, and social issues of computer science education.

In the second edition, we updated all the chapters with both content and refer-ences, and added 15 new activities; specifically, we highlighted current teaching approaches and trends to be integrated in the MTCS course.

We would like to thank all who contributed to our understanding of the nature of computer science education and fostered the approach presented in this guide: our students in the MTCS courses, high school classes, and in-service high school teacher professional development programs, as well as colleagues, researchers and instructors who collaborated with us in a variety of research and development projects. During the past three decades, they all shared with us their knowledge, professional experience, thoughts and attitudes with respect to computer science education.

September 2014 Orit Hazzan Tami Lapidot Noa Ragonis

Page 6: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

ix

Index of Activities

The activity page numbers appear in the table of Contents

Chapter 3 Overview of the Discipline of Computer Science

Section1 The Nature of Computer Science A. Explain what computer science is,

work in pairs3.2

B. Class discussionC. Internet exploration of computer science definitionsD. Summary and class discussionE. Review of the Computing Curricula 2001, homework

2 Computer Science and Other Sciences A. Connections between computer science and other sciences, individual/team work

3.2

B. PresentationsC. Class discussion

3 Plan a Lesson about the History of Computer Science

A. Introductory questions 3.3

B. Plan a lesson, work in pairsC. PresentationsD. Class discussion

4 History of Computational Machines 3.35 Preparation of a Presentation on a Computer Scientist, Homework

3.4

6 Analysis of Ethical Dilemmas A. Case analysis, group work 3.5.1B. Presentations and discussion

7 Diverse Class Demography, Group Work 3.5.28 Test Evaluation, Work in Pairs 3.5.29 Gender Diversity, Open Conversation 3.5.210 Introduction to Soft Skills, Homework towards the Lesson on Soft Skills

3.5.3

Page 7: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

x Index of Activities

Section11 Definitions for Soft Skills, Teamwork at the beginning of the First Lesson on Soft Skills

3.5.3

12 Rank Your Soft Skills, Homework, After the Lesson on Soft Skills

A. Individual work 3.5.3

B. Forum discussionC. Individual reflection (submitted online)

13 Programming Paradigms—Explora-tion of Learners’ Knowledge

A. Worksheet, individual work 3.6

B. Class discussion14. Abstract-Oriented Examination of Programming Paradigms

A. Problem solving in different program-ming paradigms, work in pairs

3.6

B. Class discussion15 Activity Design for a Given Program-ming Paradigm

A. Tasks and paradigms, group work 3.6

B. Reviewing the groups’ workC. Class discussion

16 Introduction to Soft Ideas—Types of Concepts, Class Discussion

3.7.2

17 Computer Science Concept Classifi-cation, Teamwork

3.7.2

18 Design of Tasks and Questions About Soft Ideas

Option 1: Construction of an activity that demonstrates a soft idea, work in pairs

3.7.2

Option 2: Construction of a question to be included in a test that checks learners’ understanding of one soft idea, team work

19 Computer Science Heuristics: The Case of Abstraction—Definition

3.7.2

20 Computer Science Heuristics: The Case of Abstraction—Teaching Planning

3.7.2

21 Computer Science Heuristics: Abstraction—Pedagogy

3.7.2

22 Computer Science Heuristics: The Case of Abstraction—Teaching Program-ming Heuristics

3.7.2

23 Acquaintance with Data Science A. Trigger, Group work 3.8B Design activity, Group work (or indi-vidual work at home)C. Group presentation in classD. Discussion

24 The Integration of Computer Science with Other Disciplines

A. Trigger, Group work 3.9

B. Reflection and class discussionC. SummaryD. Homework

Page 8: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xiIndex of Activities

Chapter 4 Research in Computer Science Education

Section25 Exploration of Computer Science Education Research

Work on learners’ understanding of basic computer science topics

4.3

26 The Computer Science Education Research World

A. Intuitive thinking on computer science education research, class discussion

4.3

B. Planning research in computer science education, group workC. Class discussion

27 Looking into Research Work on Nov-ices’ Difficulties, Homework

4.3

28 The Teacher as a Researcher A. Solving a problem, individual work 4.3B. Evaluating different solutions, individual workC. Discussion on Stage B answers, work in pairsD. The meaning of learners’ mistakes, class discussionE. Taking the researcher’s perspective, work in pairsF. Reflection, individual work

29 Reflection on Reading a Computer Science Education Paper, Homework

4.3

Chapter 5 Problem-Solving Strategies

Section30 Problem-Solving Techniques in Com-puter Science

5.2

31 Examination of Representative Inputs and Outputs

A. Problem development, work in pairs 5.3

B. Presentations and discussion32 Choosing the Problem Variables A. Problem analysis, work in pairs 5.4.1

B. Discussion between pairsC. Presentations and discussion in the course plenum

33 Roles of Variables—Discovery Learn-ing and Reflection

A. Learning, work in pairs 5.4.1

B. Reflection on Stage A, individual work34 Roles of Variables—Examination of the Roles of Variables Through the Research Lens

5.4.1

35 Practicing Stepwise Refinement—Break Down Problem Solutions into Subtasks

5.4.2

Page 9: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xii Index of Activities

Section36 Practicing Stepwise Refinement—Analyze a List of Problems

5.4.2

37 Practicing Think-Aloud Problem Solving

5.4.2

38 Practicing Algorithmic Patterns—Question Design for Given Patterns

5.4.3

39 Practicing Algorithmic Patterns— Pattern Composition for Using Specific Abstract Data Types

5.4.3

40 Practicing Algorithmic Patterns—Worksheet Design for Guiding Learners Using Patterns

5.4.3

41 Examination of the Debugging Process 5.542 Development of a Lab Activity about Debugging

Team work 5.5

43 Reflective Activity in Computer Science Education

A. Teacher’s reflection on test failure 5.6

B. Design of a reflective activity for a class after a test failureC. Reflection on the reflective activity designed by a teacher after the test failureD. Analysis of the entire reflective activity designed by the teacher after the test failure

Chapter 6 Learners’ Alternative Conceptions

Section44 Exploration of a Computer Science Education Research Work on Learners’ Understanding of Basic Computer Science Topics

A. Alternative conceptions about variables, individual or teamwork

6.3

B. Class discussion45 Assessment of a Pupil’s Answer in a Written Exam

A. Checking a pupil’s written answer, work in small teams

6.3

B. Class discussion46 A Clinical Conversation with a Pupil as a Means to Reveal Alternative Conceptions

A. A clinical conversation with a pupil, work in small teams

6.3

B. Class discussion

Page 10: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xiiiIndex of Activities

Chapter 7 Teaching Methods in Computer Science Education

Section47 Pedagogical Examination of Games A. Playing a game 7.2.1

B. Class discussionC. Game designD. Presentation and class discussionE. Design and construct a gameF. Playing the gamesG. Summary

48 Educational Usage of Games in Computer Science Education

7.2.1

49 Pedagogical Examination of the CS-Unplugged Approach

A. Experience a CS-Unplugged activity 7.2.2

B. Exploration of the CS-Unplugged approachC. Design of a CS-Unplugged activity, work in pairsD. The CS-Unplugged approach and other computer science teaching methods, homework

50 Pedagogical Examination of Rich Tasks

A. Solving a rich task, individual work 7.2.3

B. Presentation of learners’ solutionsC. Class discussionD. Construction of a rich task, homework

51 Pedagogical Examination of Concept Maps

A. Concept map construction, group work

7.2.4

B. Concept map evaluation, group workC. Class discussion

52 Pedagogical Examination of Classification

A. Classification activity, group work 7.2.5

B. Class discussionC. Construction of a classification activity, homework

53 Metaphors—Preparing a Poster, Variable Exhibition

7.2.6

54 Metaphors—Advantages and Disad-vantages of Metaphors

7.2.6

55 Different Forms of Class Organizations

7.3

56 Distance Learning in the School—The Flipped Classroom

A. Homework towards the lesson on the flipped classroom

7.3

B. Teamwork in class

Page 11: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xiv Index of Activities

SectionC. Forum discussion towards the next lessonD. Evaluations of the short presentationsE. Class discussionF. Homework, individual work

57 Acquaintance with MOOCs 7.358 Mobile Applications in Computer Science Teaching

7.3

59 Analysis of Mentoring Software Project Development Situations

A. Watch a video clip 7.4

B. Class discussionC. Worksheet on project-based learning situations in computer science education, group workD. Class discussionE. Summary

60 Scheduling the Mentoring Process of Software Project Development

A. Setting the framework 7.4

B. Group workC. Class discussionD. Read a paper, homework

Chapter 8 Lab-Based Teaching

Section61 Analyzing a Computer Science Lesson in the Computer Lab

8.2

62 A “Dry” Lab 8.263 Pedagogical Exploration of the Lab—First Teaching

Approach 8.3

A. First experience with the lab—first teaching approach, work in pairs on the computerB. Class discussionC. Development and analysis of a lab—first worksheet, homework

64 Algorithm Visualization A. Increasing students’ attention to visualization

8.4

B. Design a visualization-based worksheet, group workC. Introducing Nap’s (extended) Engage-ment Taxonomy, class discussion

Page 12: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xvIndex of Activities

SectionD. Examination of questions’ potential contribution to learners’ learning, group workE. SummaryF. HomeworkOption 1: Develop a worksheet and formulate guidelines for the development of a worksheetOption 2: Explore The Algorithm Visual-ization Portal

65 Musical Debugging A. Debugging a song melody, work in pairs with the computer

8.4

B. Class discussionC. Prepare a debugging activity or read articles that address debugging, homeworkD Prepare a debugging activity or read articles that address debugging, homework

66 Software Visualization and Animation A. Exploration of object-oriented program visualization and animation, work in pairs

8.4

B. Class discussionC. Read a paper, homework

67 Visualization- and Animation-Based IDEs

A. Solving a problem in one of the visualization/animation-based IDEs, work in pairs

8.4

B. Analysis of the visualization-/ animation- based IDEs, class discussion

68 Learning about Sorting Methods by YouTube Dances

A. Exploratory work with the computer (individually or in pairs)

8.4

B. Class discussionC. Homework

69 Media Computation 8.470 Summary Work 8.471 The Internet as an Information Resource

8.5

72 Exploring the Internet Through the Computer Science Lens

A. Analysis of web applications, group work

8.5

B. Presentation of the group work73 Distance Learning A. Learning a new computer science

topic, individual work8.5

B. Class discussionC. Integration of distance learning elements into the computer science curriculum, homework

Page 13: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xvi Index of Activities

Chapter 9 Types of Questions in Computer Science Education

Section74 Question Classification 9.2.1375 Classification of Non-simple Questions, Group Work 9.2.1376 Test Analysis, Group Work 9.377 Question Formulation, Work in Pairs 9.4.278 Question Design, Individual Work or Group Work 9.679 Test Design, Group Work 9.6

Chapter 10 Assessment

Section80 Practicing Self-Assessment and Peer-Assessment

10.1

81 Test Construction A First experience in test construction, individual work

10.2

B Topics to be considered in the process of test construction, class discussionC Test construction, group workD Test analysis, class discussion or teamworkE Test solving, individual workF Design of an evaluation rubric, group workG Presentation of the evaluation rubricsH Conclusion

82 Construction of a Course-Summary Exam

10.2

83 Getting Familiarity with an Evalua-tion Rubric for Software Projects

10.3.2

84 Construction of an Evaluation Rubric for Software Projects

A Setting the teaching scene 10.3.2

B Construction of an evaluation rubric, group workC Conclusion

85 Analysis of a Grading Policy of the Group Project

10.3.2

86 The Portfolio in Computer Science Education

A Portfolio design, team work 10.4

B Group presentations of their portfolioC Class discussion and summary

Page 14: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xviiIndex of Activities

Chapter 11 Teaching Planning

Section87 Dividing a Computer Science Topic into Components 11.388 Time Allocation, Team Work 11.389 Plan a First Lesson about a Topic/Subtopic 11.390 A Comprehensive Teaching Plan of a Study Unit 11.3

Chapter 12 Integrated View at the MTCS Course Organization: The Case of Recursion

Section91 Classification Activity in the Context of Recursion

A Classification activity, work in small teams

12.2

B Class discussionC Build a classification page, homework, and class discussionD Summary: read a paper, homework

92 Mastering the Leap of Faith approach A Toward the leap of faith approach, team work

12.3

B Class discussionC Summary (read a paper, write a program), homework

93 Pedagogical Examination of the Little People Model

A Demonstration of the Little People Model

12.4.1

B Class discussion94 Investigating Research on Learning and Teaching Recursion, Homework

12.5

95 Recursive Models, Homework and Presentation in the Course

12.5

96 Using Colors and Music for the Examination of Recursive Structures

A Musical demonstration 12.6

B Lab workC Class discussion

97 Analysis of Recursive Phenomena A Choosing and analysis of recursive phenomena, homework

12.7

B Class presentation and discussion98 Construction of a Written Test on Recursion

12.7

99 History of Recursive Functions 12.8100 Comparison of Recursive Algorithms in Different Paradigms

12.8

101 Recursive Patterns 12.8

Page 15: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xviii Index of Activities

Section102 Recursion Animation 12.8103 The Use of a Tutorial for Exploring Recursive Algorithm—Time Efficiency

12.8

104 Design of Questions about Recursion

12.8

105 Planning the Teaching of Recursion 12.8

Chapter 13 Getting Experience in Computer Science Education

Section106 Bridging Gaps Related to the Content Aspect of Computer Science Education

A Scenario description 13.2.2

B Scenario analysis, work in pairs and a discussion

107 Bridging Gaps Related to the Pedagogical Aspect of Computer Science Education

A Scenario description 13.2.2

B Scenario analysis, class discussion and summary

108 Prospective Teacher’s Conception About the First Lesson

13.2.2

109 Prospective Teacher’s Conception about Computer Science Teaching in an Informal Framework

13.5

Chapter 14 Design of Methods of Teaching Computer Science Course

Section110 First Lesson of the MTCS Course 14.2.2

Page 16: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xix

Contents

1 Introduction—What Is this Guide About? . . . . . . . . . . . . . . . . . . . . . . . 11.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Motivation for Writing this Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 MTCS Course . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3.1 MTCS Course Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3.2 Course Population. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3.3 Course Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3.4 Recommended Teaching Methods Used

in the MTCS Course . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4 The Structure of the Guide to Teaching Computer Science . . . . . . . . 7

1.4.1 Guide Structure and Organization. . . . . . . . . . . . . . . . . . . . . . 71.4.2 The Content of the Guide Chapters. . . . . . . . . . . . . . . . . . . . . 8

1.5 How to Use the Guide?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.5.1 Instructors of the MTCS Course . . . . . . . . . . . . . . . . . . . . . . . 111.5.2 The Prospective Computer Science Teachers

Enrolled in the MTCS Course. . . . . . . . . . . . . . . . . . . . . . . . . 131.5.3 Computer Science Instructors in the University . . . . . . . . . . . 131.5.4 Instructors of In-Service Teachers’ Professional

Development Programs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.5.5 High School Computer Science Teachers . . . . . . . . . . . . . . . . 13

References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 Active Learning and Active-Learning-Based Teaching Model . . . . . . . 152.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2 Active Learning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3 Why Active Learning Is Suitable for Implementation

in the MTCS Course? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.4 Active-Learning-Based Teaching Model . . . . . . . . . . . . . . . . . . . . . . 192.5 The Role of the Instructor in the Active-Learning-Based

Teaching Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Page 17: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xx Contents

3 Overview of the Discipline of Computer Science . . . . . . . . . . . . . . . . . . 233.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2 What Is Computer Science? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.3 History of Computer Science . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.4 Computer Scientists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.5 Social Issues of Computer Science. . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.5.1 Ethics in Computer Science Education. . . . . . . . . . . . . . . . . . 323.5.2 Diversity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.5.3 Soft Skills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.6 Programming Paradigms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.7 Computer Science Soft Ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.7.1 What Are Computer Science Soft Ideas? . . . . . . . . . . . . . . . . 423.7.2 Computer Science Soft Ideas in the MTCS Course . . . . . . . . 43

3.8 Computer Science as an Evolving Discipline. . . . . . . . . . . . . . . . . . . 493.9 Computer Science: An Integrated and Integral Part of Other

Disciplines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4 Research in Computer Science Education 4 . . . . . . . . . . . . . . . . . . . . . . 554.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554.2 Research in Computer Science Education:

What is it and Why and How is it Useful? . . . . . . . . . . . . . . . . . . . . . 564.2.1 Computer Science Education Research Categories . . . . . . . . 564.2.2 Computer Science Education Research on Learning

and Teaching Processes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.2.3 Resources for Computer Science Education Research . . . . . . 61

4.3 MTCS Course Activities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5 Problem-Solving Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755.2 Problem-Solving Processes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765.3 Problem Understanding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785.4 Solution Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.4.1 Defining the Problem Variables . . . . . . . . . . . . . . . . . . . . . . . 795.4.2 Stepwise Refinement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825.4.3 Algorithmic Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.5 Debugging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865.6 Reflection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

6 Learners’ Alternative Conceptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956.2 Pedagogical Tools for Dealing with Alternative Conceptions . . . . . . 97References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

Page 18: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xxiContents

7 Teaching Methods in Computer Science Education . . . . . . . . . . . . . . . 1057.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057.2 Pedagogical Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

7.2.1 Pedagogical Games. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067.2.2 The CS-Unplugged Approach. . . . . . . . . . . . . . . . . . . . . . . . 1107.2.3 Rich Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117.2.4 Concept Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167.2.5 Classification of Objects and Phenomena from Life . . . . . . 1207.2.6 Metaphors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

7.3 Different Forms of Class Organization. . . . . . . . . . . . . . . . . . . . . . . 1247.4 Mentoring Software Project Development7 . . . . . . . . . . . . . . . . . . . 129References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

8 Lab-Based Teaching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1378.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1378.2 What Is a Computer Lab? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1398.3 Lab-First Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1438.4 Visualization and Animation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1498.5 Using the Internet in the Teaching of Computer Science . . . . . . . . . 158References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

9 Types of Questions in Computer Science Education . . . . . . . . . . . . . . 1639.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1639.2 Types of Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

9.2.1 Type1. Development of a Solution . . . . . . . . . . . . . . . . . . . . 1669.2.2 Type2. Development a Solution That Uses a

Given Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669.2.3 Type3. Tracing a Given Solution . . . . . . . . . . . . . . . . . . . . . 1679.2.4 Type4. Analysis of Code Execution . . . . . . . . . . . . . . . . . . . 1679.2.5 Type5. Finding the Purpose of a Given Solution . . . . . . . . . 1689.2.6 Type6. Examination of the Correctness of a

Given Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1689.2.7 Type7. Completion of a Given Solution . . . . . . . . . . . . . . . . 1699.2.8 Type8. Instruction Manipulations . . . . . . . . . . . . . . . . . . . . . 1709.2.9 Type9. Efficiency Estimation . . . . . . . . . . . . . . . . . . . . . . . . 1729.2.10 Type10. Question Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 1729.2.11 Type11. Programming Style Questions. . . . . . . . . . . . . . . . . 1739.2.12 Type12. Transformation of a Solution . . . . . . . . . . . . . . . . . 1739.2.13 Combining Several Types of Questions . . . . . . . . . . . . . . . . 174

9.3 Problem-Solving Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1769.4 Kinds of Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

9.4.1 Story Questions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1789.4.2 Closed Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1799.4.3 Unsolvable Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

Page 19: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xxii Contents

9.5 Assimilation of the Types of Questions to Different Computer Science Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

9.6 Question Preparation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

10 Assessment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18710.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18710.2 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19110.3 Project Assessment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

10.3.1 Individual Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19610.3.2 Team Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

10.4 Portfolio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20010.5 The Evaluation of the Students in the MTCS Course. . . . . . . . . . . 203References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

11 Teaching Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20711.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20711.2 Top-Down Approach for Teaching Planning . . . . . . . . . . . . . . . . . 208

11.2.1 Broad Perspective: Planning the Entire Curriculum. . . . . 20911.2.2 Intermediate Level Perspective:

Planning the Teaching of a Study Unit . . . . . . . . . . . . . . . 20911.2.3 Local Level Perspective: Planning a Lesson. . . . . . . . . . . 21011.2.4 Building Concept Understanding in a Spiral

Gradient Manner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21011.3 Illustration: Teaching One-Dimensional Array. . . . . . . . . . . . . . . . 211

11.3.1 Planning the Teaching of a Study Unit about One-Dimensional Array . . . . . . . . . . . . . . . . . . . . . . . . . . 212

11.3.2 Planning the Teaching of the First Lesson about One-Dimensional Array . . . . . . . . . . . . . . . . . . . . . 213

11.3.3 Illustration Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

12 Integrated View at the MTCS Course Organization: The Case of Recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22112.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22112.2 Classification of Everyday Objects and Phenomena:

The Case of Recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22312.3 Leap of Faith. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22512.4 Models of the Recursive Process . . . . . . . . . . . . . . . . . . . . . . . . . . 228

12.4.1 The Little People Model . . . . . . . . . . . . . . . . . . . . . . . . . . 22912.4.2 The “Top-Down Frames” Model . . . . . . . . . . . . . . . . . . . 232

12.5 Research on Learning and Teaching Recursion . . . . . . . . . . . . . . . 23312.6 How Does Recursion Sound? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

Page 20: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xxiiiContents

12.7 Assessment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23812.8 Additional Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

13 Getting Experience in Computer Science Education . . . . . . . . . . . . . . 24313.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24313.2 The Practicum in the High School . . . . . . . . . . . . . . . . . . . . . . . . . 244

13.2.1 General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24413.2.2 The Practicum as a Bridge Between Theory

and Its Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24513.3 Computer Science Teacher Training Within the Professional

Development School Collaboration Framework . . . . . . . . . . . . . . 25213.3.1 General Description and Main Objectives . . . . . . . . . . . . 25213.3.2 Training Computer Science Prospective Teachers

Within the PDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25313.3.3 The Practice of Teaching Within the PDS. . . . . . . . . . . . . 255

13.4 A Tutoring Model for Guiding Problems-Solving Processes . . . . . 25613.4.1 The Implementation of the Tutoring Model . . . . . . . . . . . 25613.4.2 The Contribution of the Mentoring Model to

Prospective Computer Science Teachers Teaching Experience. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

13.5 Practicum Versus Tutoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

14 Design of Methods of Teaching Computer Science Courses . . . . . . . . 26314.1 Perspectives on the MTCS Course . . . . . . . . . . . . . . . . . . . . . . . . . 26314.2 Suggestions for MTCS Course Syllabi. . . . . . . . . . . . . . . . . . . . . . 265

14.2.1 Course Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26514.2.2 Course Syllabus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

15 High School Computer Science Teacher Preparation Programs . . . . 26915.1 A Model for High School Computer Science Education . . . . . . . . 269

15.1.1 Background. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27015.1.2 The Model Components and Their Amalgamation. . . . . . 27015.1.3 Connections Among the Model Components . . . . . . . . . . 27415.1.4 Comments About the Model . . . . . . . . . . . . . . . . . . . . . . . 276

15.2 Construction of a Computer Science Teacher Preparation Program—the ECSTPP Workshop . . . . . . . . . . . . . . . 27615.2.1 Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27615.2.2 Population . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27615.2.3 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27715.2.4 Structure and Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . 27715.2.5 ECSTPP Workshop—Summary . . . . . . . . . . . . . . . . . . . . 279

Page 21: Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to Teaching Computer Science can serve all computer science educa-tors, both in high school

xxiv Contents

15.3 Computer Science Teaching as an Additional Profession. . . . . . . . 27915.3.1 Program Description and Rationale . . . . . . . . . . . . . . . . . 28015.3.2 The Computer Science Education Track

of the Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28015.3.3 Computer Science Students’ Perspective

and Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

16 Epilogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287