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.
Learning Objects (LOs) play a key role for supporting eLearning. In general, however, the development of LOs remains a vague issue, because there is still no clearly defined and widely adopted LO specification and development methodology. We combined two technological paradigms (feature diagrams (FDs) and generative techniques) into a coherent methodology to enhance reusability and productivity in the development of LOs. FDs are used for knowledge representation, modelling variability of the LO content and relationships between its features, and as a high-level specification for generative reuse. The paper describes the specification of LOs using FDs and some design principles to design generative LOs.
Introductory computer programming courses are inherently challenging for a variety of reasons. With increased demands for online delivery, the use of effective technologies, materials, and methods that best support online learning is essential to maximize student success. This article describes a recent study conducted at our institution with an overall objective to improve the design and online delivery of a foundational course in Java programming. The online course included a variety of technologies and materials intended to improve student learning outcomes, including an online synchronous interaction component similar to teleconferencing. A comparison of students' backgrounds, perspectives, and outcomes in an online section of the course compared to a benchmark face-to-face section was conducted using various evaluation methods. The results indicated that online synchronous sessions and several other aspects of the course were beneficial toward improving online learning. Results of the study, conclusions, and other issues warranting further consideration are described.
Because of the potential for methodological reviews to improve practice, this article presents the results of a methodological review, and meta-analysis, of kindergarten through 12th grade computer science education evaluation reports published before March 2005. A search of major academic databases, the Internet, and a query to computer science education researchers resulted in 29 evaluation reports that met stringent criteria for inclusion. Those reports were coded in terms of their demographic characteristics, program characteristics, evaluation characteristics, and evaluation findings.
It was found that most of the programs offered direct computer science instruction to North American high school students. Stakeholder attitudes, program enrollment, academic achievement in core courses, and achievement in computer science courses were the most frequently measured outcomes. Questionnaires, existing sources of data, standardized tests, and teacher- or researcher-made tests were the most frequently used types of measures. Based on eight programs that offered direct computer science instruction, the average increase on tests of computer science achievement over the course of the program was 1.10 standard deviations, or the statistical equivalent of 73 out of 100 program participants having shown improvement. Some of the main challenges for the evaluation of computer science education programs are the absence of standardized, reliable, and valid measures of K-12 computer science education and coming to understand the causal links between program activities, gender, and program outcomes.
The educational system in Austria is very multifaceted, and academic secondary schools represent an important part in it. This type of schools, in German called ``Gymnasium'', covers the age-group from 10 to 18 years and provides pupils and students with a broad and general education. For more than twenty years, informatics and computers have increasingly penetrated into secondary education. Austrian academic secondary schools have much freedom to cope with this challenging task within their autonomy. In this paper, a snapshot of the current situation is given with the main emphasis on the 9th grade. Only in this age-group, the ``PISA-age'', informatics is a compulsory subject. The implementation of additional IT/informatics classes at lower secondary level is exclusively the result of autonomous decisions in schools. Recently, a web-based nationwide online research has been conducted. In this paper some preliminary results are presented.
The review of research works presented in the paper leads to the supposition that scientists abroad usually analyze the components of technical knowledge in relationship with personal traits while in Lithuania no research of this kind has been carried out yet. The author of the article comes to the conclusion that there is a quite insignificant correlation between the results of the test on applied technical knowledge and results of two tests on basic comprehension-knowledge (curriculum and terminology). Essential correlation coefficients of theoretical technical knowledge with the results of the tests on basic comprehension-knowledge (curriculum and terminology) have been established. This leads to maintain that cognitive personality traits make a considerable influence on theoretical technical knowledge while applied technical knowledge is affected only to some extent.
Blended learning is becoming an attractive model in higher education as new innovative information technologies are becoming increasingly available. However, just blending face-to-face learning with information technologies cannot provide effective teaching and efficient solutions for learning. To be successful, blended learning must rely on solid learning theory and pedagogical strategies. In addition, there is a need for a design-based research approach to explore blending learning through successive cycles of experimentations, where the shortcomings of each cycle are identified, redesigned, and reevaluated. This paper reports on a study conducted on a blended learning model in Java programming at the introductory level. It presents the design, implementation, and evaluation of the model and its implications for the learning of introductory computer programming.
In many occasions, the text describing an algorithmic task may entail a rather intuitive, operational solution scheme. Yet, such a scheme may not necessarily be efficient or correct. Nevertheless, novices demonstrate tendencies to hastily design their solutions that way, and avoid seeking insightful patterns, which may yield better solutions. In this paper, we name and shed light on this theme, and illustrate the essential importance of elaborating insightful patterns, which one may assimilate as general problem solving notions.
Teaching object-oriented programming (OOP) is related to many difficulties. There is no single view on their causes among the university teachers. The results of applying various methods of teaching - with early or late introduction of the objects, are controversial too.
This work presents the results of a study designed to analyze and classify the difficulties encountered in the teaching of OOP in Bulgarian universities as well as the possibilities for dealing with them. Two viewpoints have been considered - of lecturers and of students. The issues under consideration are: when and what should be studied, what should be stressed, what languages and environments should be used, what examples are the most suitable, and what educational goals the programming courses should achieve.
Our investigation was aimed also to confirm or cast aside our suppositions that important aspects in teaching/learning OOP are being underestimated: great attention is being paid to the data in a class at the expence of the behavior of the objects in a program; more than necessary is being stressed onto the syntactic peculiarities in defining classes and objects without detailed clarification why they are needed; the auxiliary didactic tools that are being used are insufficient.
Extreme Programming (XP) shows several interesting approaches which are very attractive for education. It is centered around early and incremental creation of working software. In the following, the chances XP offers for class are shown - especially for use in a class project, but also for practical phases in all lessons where programming is useful. Finally several common problems which can occur with XP will be shown as well as how to deal with them to make the use in class as smooth as possible.