Guidelines for a Multiple-Goal CS Introductory Course: Algorithmic Problem-Solving Woven into OOP Orna Muller Computer Science Group Science Education Department School of Education, Tel-Aviv University, Israel ornamu@post.tau.ac.il Bruria Haberman Department of Computer Science Holon Academic Institute of Technology, and Department of Science Teaching Weizmann Institute of Science, Rehovot, Israel bruria.haberman@weizmann.ac.il ABSTRACT Over the years educators have been debating about the most appropriate paradigm for teaching an introductory course in computer science (CS). Specifically, the pedagogical approach known as “objects early” or “objects first” is controversial [2,3,4]. One important reason for educators to argue against the objects early approach is their concern that starting with objects results in the learning of algorithmic problem-solving to be neglected [4]. In this poster we present a pedagogical framework for an introductory multiple-goal course in OOP based on weaving algorithmic pattern-based problem solving activities into OOD/P instruction [5]. Categories and Subject Descriptors K.3.2 [Computers and Education]: Computer and Information Science Education – computer science education. D.1.5 [Software]: Programming Techniques – Object-oriented Programming. General Terms: Algorithms, Design. Keywords: Objects-first, algorithm, problem solving. 1. INTRODUCTION Over the years educators have been debating about the most appropriate paradigm for teaching an introductory course in computer science. A shared goal of such courses is to introduce students to an adequate view of the discipline and to set a well- grounded basis for studying further CS topics. CC2001 suggests six different models for introductory courses, three of which are: objects-first, algorithms-first, and imperative-first [1]. One important reason why educators prefer the imperative-first or the algorithms-first approach is their concern that starting with objects results in the learning of algorithmic problem-solving to be neglected and in the algorithm development activities to be limited in their extent and variety [2,3,4]. Copyright is held by the author/owner(s). ITiCSE’05, June 27–29, 2005, Monte de Caparica, Portugal. ACM 1-59593-024-8/05/0006. 2. GUIDELINES FOR A MULTIPLE- GOAL COURSE IN OOP Lately, we have been working on the design of a pedagogical framework for an introductory multiple-goal course in OOP. We identified five main knowledge-components (KCs) that should be taught as part of such a course: (1) Concepts and principles of OO design and programming; (2) OO language & environment; (3) Code-reuse; (4) “Procedural” programming; and (5) Algorithmic problem-solving. In our poster presentation we will suggest how these KCs may be interwoven in a carefully structured CS introductory course plan. The KCs are deliberately distinguished and highlighted in order to help students and instructors handling and controlling the achievement of the different goals. The design of the course is especially aimed at enhancing algorithmic problem-solving activities in the context of OOD/P instruction. One such activity is based on the metaphor of Evolving Types – classes that evolve over time and obtain new characteristics and new behavior. Examples and assignments are chosen according to the mapping of algorithmic patterns, which are the building blocks for developing solutions to a variety of algorithmic problems. Through the evolving-types guideline, students are involved in a gradually increased level of problem solving tasks while learning new programming constructs and data types. These tasks should require the development of solutions satisfying various constraints imposed by different contexts. 3. REFERENCES [1] ACM/IEEE Joint Task Force on Computing Curricula, Final Report, December 2001. [2] Astrachan, O., Bruce, K., Koffman, E., Kolling, M. & Reges, S. Resolved: Objects Early Has Failed. SIGCSE 2005, St. Louis, Missouri, USA, 451-452, 2005. [3] Duke, R., Salzman, E., Burmeister, J., Poon, J., & Murray, L. Teaching programming to beginners – choosing the language is just the first step. ACE 2000, Melbourne, Australia, 79-86, 2000. [4] Hu, C. Rethinking of Teaching Objects-First, Education and Information Technologies, 9(3), 209-218, 2004. [5] Muller, O., Haberman, B., & Averbuch, H., (An almost) Pedagogical Pattern for Pattern-Based Problem-Solving Instruction. ITiCSE'04, Leeds, UK, 102-106, 2004. 356