Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to...
Transcript of Guide to Teaching Computer Science - Home - Springer978-1-4471-6630-6/1.pdf · This Guide to...
Guide to Teaching Computer Science
Orit Hazzan • Tami Lapidot • Noa Ragonis
Guide to Teaching Computer Science
An Activity-Based Approach
Second Edition
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
v
To our families, students and colleagues
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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