Z. Scherz, B. Haberman
community believes that the role of projects in the CS curriculum is of great importance, since it is a means for effective learning, and also demonstrates the student’s mastery of skills appropriate to professional practice (Fincher et al., 2001; Gal–Ezer et al., 1995; Holcombe et al., 1998).
A 90-hours course ”Computer Science-Logic Programming” (the LP course), which is part of the new CS curriculum, introduces logic programming as a declarative program- ming environment (implemented in Prolog) which is suitable for content formalization, knowledge representation, and problem solving (Sterling and Shapiro, 1994). The de- tailed syllabus of the course is presented in (Gal–Ezer and Harel, 1999).
Students taking the LP course are required to develop knowledge-based projects as a final assignment. While developing their projects the students have to undergo a prelim- inary process: they have to choose a subject, to perform a literature search, to interview experts, to learn about the knowledge domain, and finally to formally specify the prob- lem that they are going to solve. Only then, can they start the following recommended six-phase process: (1) definition of goals, (2) choice of problem predicates, (3) abstrac- tion, (4) formalization, (5) programming, and (6) testing and debugging. During their studies the students are introduced to various methods of problem solving and knowl- edge representation and to various programming techniques, which they may use to solve problems and to develop projects. In this paper we focus mainly on the use of abstract data types (Aho and Ullman, 1992; Dale and Walker, 1996; Parnas, 1972) in the devel- opment process. We developed an instructional package aimed at teaching abstract data types as tools for problem solving and knowledge representation that may be used to de- velop small-scale programs as well as complex computer systems. The package includes an instructional model, learning materials for students, a teacher’s guide, and a software package of “ADT black boxes” implemented in Prolog (Scherz and Haberman, 1995).
We found that students tend to apply a variety of strategies and techniques when they use ADTs in problem-solving tasks (Haberman et al., 2002), and they regard ADTs as useful tools for problem solving and knowledge representation (Haberman and Scherz, 2003). Here we describe a study that monitored the development of students’ projects. This study focused on students’ project development strategies and on the role of ADTs in the process of project development.
The goals of the study were related to the following aspects:
The Structure of the Development Process: The goal was to identify different pro- files of students’ development processes. Specifically, we asked the following questions regarding students’ projects:
What were the project’s development stages?
What was the order of the stages, and how are they related?