288,356 research outputs found
A game-based approach to the teaching of object-oriented programming languages
Students often have difficulties when trying to understand the concepts of object-oriented programming
(OOP). This paper presents a contribution to the teaching of OOP languages through a game-oriented
approach based on the interaction with tangible user interfaces (TUIs). The use of a specific type of
commercial distributed TUI (Sifteo cubes), in which several small physical devices have sensing, wireless
communication and user-directed output capabilities, is applied to the teaching of the C# programming
language, since the operation of these devices can be controlled by user programs written in C#. For our
experiment, we selected a sample of students with a sufficient knowledge about procedural programming,
which was divided into two groups: The first one had a standard introductory C# course, whereas
the second one had an experimental C# course that included, in addition to the contents of the previous
one, two demonstration programs that illustrated some OOP basic concepts using the TUI features.
Finally, both groups completed two tests: a multiple-choice exam for evaluating the acquisition of basic
OOP concepts and a C# programming exercise. The analysis of the results from the tests indicates that the
group of students that attended the course including the TUI demos showed a higher interest level (i.e.
they felt more motivated) during the course exposition than the one that attended the standard introductory
C# course. Furthermore, the students from the experimental group achieved an overall better
mark. Therefore, we can conclude that the technological contribution of Sifteo cubes – used as a
distributed TUI by which OOP basic concepts are represented in a tangible and a visible way – to the
teaching of the C# language has a positive influence on the learning of this language and such basic
concepts
Introducing Java : the case for fundamentals-first
Java has increasingly become the language of choice for teaching introductory programming. In this paper, we examine the different approaches to teaching Java (Objects-first, Fundamentals-first and GUI-first) to ascertain whether there exists an agreed ordering of topics and difficulty levels between nine relatively basic Java topics. The results of our literature survey and student questionnaire suggests that the Fundamentals-first approach may have benefits from the student's point of view and an agreed ordering of the Java topics accompanying this approach has been established
Blue - A Language for Teaching Object-Oriented Programming
Teaching object-oriented programming has clearly become an important part of computer science education. We agree with many others that the best place to teach it is in the CS1 introductory course. Many problems with this have been reported in the literature. These mainly result from inadequate languages and environments. Blue is a new language and integrated programming environment, currently under development explicitly for object-oriented teaching. We expect clear advantages from the use of Blue for first year teaching compared to using other available languages. This paper describes the design principles on which the language was based and the most important aspects of the language itself
A gentle transition from Java programming to Web Services using XML-RPC
Exposing students to leading edge vocational areas of relevance such as Web Services can be difficult. We show a lightweight approach by embedding a key component of Web Services within a Level 3 BSc module in Distributed Computing. We present a ready to use collection of lecture slides and student activities based on XML-RPC. In
addition we show that this material addresses the central topics in the context of web services as identified by Draganova (2003)
Four approaches to teaching programming
Based on a survey of literature, four different approaches to teaching introductory programming are identified and described. Examples of the practice of each approach are identified representing procedural, visual, and object-oriented programming language paradigms. Each approach is then further analysed, identifying advantages and disadvantages for the student and the teacher. The first approach, code analysis, is analogous to reading before writing, that is, recognising the parts and what they mean. It requires learners to analyse and understand existing code prior to producing their own. An alternative is the building blocks approach, analogous to learning vocabulary, nouns and verbs, before constructing sentences. A third approach is identified as simple units in which learners master solutions to small problems before applying the learned logic to more complex problems. The final approach, full systems, is analogous to learning a foreign language by immersion whereby learners design a solution to a non-trivial problem and the programming concepts and language constructs are introduced only when the solution to the problem requires their application. The conclusion asserts that competency in programming cannot be achieved without mastering each of the approaches, at least to some extent. Use of the approaches in combination could provide novice programmers with the opportunities to acquire a full range of knowledge, understanding, and skills. Several orders for presenting the approaches in the classroom are proposed and analysed reflecting the needs of the learners and teachers. Further research is needed to better understand these and other approaches to teaching programming, not in terms of learner outcomes, but in terms of teachers’ actions and techniques employed to facilitate the construction of new knowledge by the learners. Effective classroom teaching practices could be informed by further investigations into the effect on progression of different toolset choices and combinations of teaching approache
Improving the viability of mental models held by novice programmers
Recent research has found that many novice programmers often hold non-viable mental models of basic programming concepts such as assignment and object reference. This paper proposes a constructivist-based teaching model, integrating a cognitive conflict strategy with program visualization, with the aim of improving novice programmers’ mental models. The results of a preliminary empirical study suggest that, for the relatively straightforward concept of assignment, tight integration of program visualization with a cognitive conflict event that highlights a student’s inappropriate understanding can help improve students’ non-viable mental models. 14 out of 18 participants who held non-viable mental models of the assignment process successfully changed their model to be viable as a result of the proposed teaching model
ooRexx 5 Yielding Swiss Army Knife Usability
The new version 5.0 of the message based object-oriented programming language ooRexx ("open object-oriented REXX") is easy to learn, yet powerful. This article introduces some of the new language features with nutshell examples that at the same time demonstrate its power when deployed in different operating system environments. The modern native API of ooRexx makes it in addition very easy to extend the language with new functionality and deploy it as a macro language for any C++-based application
- …