For over a decade, a declarative approach to problem solving based on the use of abstract data types (ADTs) has been taught to high-school students as part of the logic programming instructional unit. We conducted a study aimed at assessing students' problem-solving processes when utilizing ADTs. The findings indicated that students' strategies that diverged from the conceptual model often cause the students to develop incorrect programs. Specifically, students have difficulties in establishing correct mapping between the problem and its abstract model - the corresponding ADT, and in establishing proper connectivity between layers of abstraction related to different stages of the problem-solving processes (e.g., between distinct programming modules). These difficulties are apparently associated with general difficulties that novices encounter when learning programming, and with the cognitive load encountered when dealing with high levels of abstraction. With the intention to reduce student difficulties, we suggest using an instructional approach designed to gradually educate the students toward attaining proficiency as ``problem solvers'' through the use of integrative knowledge and autonomous problem-solving techniques. This approach should be further evaluated regarding its feasibility and applicability to reducing students' difficulties in dealing with abstraction processes.
This paper describes a study aimed at identifying different profiles of students' project development processes. Specifically, we assessed the use of abstract data types for the development of knowledge-based projects.
The concept of abstract data types was introduced to high school students who took the course ``Computer Science-Logic Programming''. During their studies the students learned and practiced various tools and methods of project development, one of which was based on the use of abstract data types as tools for problem solving and knowledge representation.
To this end, a one-day workshop for team development of mini-projects was organized, and the whole development process was audio and video documented, categorized and analyzed. The profiles of team behavior in the project development process were specified. The analysis of the profiles resulted in identifying four types of project development teams, all of which employed some organizing tool in developing their projects. Two types of the developing teams used abstract data types and two used other methods. The findings indicated that the process of project development of those who used abstract data types was more structured and more organized than others.