Ensemble: An Innovative Approach to Practice Computer Programming

Ensemble: An Innovative Approach to Practice Computer Programming

Ricardo Queirós (Polytecnic Institute of Porto, Portugal & University of Porto, Portugal) and José Paulo Leal (CRACS & INESC-Porto LA, Faculty of Sciences, University of Porto, Porto, Portugal)
DOI: 10.4018/978-1-4666-7304-5.ch009
OnDemand PDF Download:


Currently, the teaching-learning process in domains, such as computer programming, is characterized by an extensive curricula and a high enrolment of students. This poses a great workload for faculty and teaching assistants responsible for the creation, delivery, and assessment of student exercises. The main goal of this chapter is to foster practice-based learning in complex domains. This objective is attained with an e-learning framework—called Ensemble—as a conceptual tool to organize and facilitate technical interoperability among services. The Ensemble framework is used on a specific domain: computer programming. Content issues are tacked with a standard format to describe programming exercises as learning objects. Communication is achieved with the extension of existing specifications for the interoperation with several systems typically found in an e-learning environment. In order to evaluate the acceptability of the proposed solution, an Ensemble instance was validated on a classroom experiment with encouraging results.
Chapter Preview


For someone to acquire, improve or even maintain a complex skill it is necessary to practice it on a regular basis (Gross, 2005), (Eckerdal, 2009). The amount of practice required depends on the nature of the activity and on each individual. How well an individual improves with practice is directly related with its inherent capabilities, its previous know-how about the domain and the type of feedback that is available for improvement. If feedback is either non-existent or inappropriate, then the practice tends to be ineffective or even detrimental to learning.

An apt example of a complex skill is music. Learning music requires discipline and perseverance while acquiring the concept of reading scores, practising an instrument or playing with a group. In order to enhance these skills and motivate young students, instructors use e-learning, mainly in introductory courses, to make the learning of music more appealing. One good example is the NoteFlight1 web application (Figure 1), a tool designed to teach music by creating, viewing, printing and hearing music notation. The tool was recently integrated2 with Moodle, a popular LMS. This integration enables instructors to create assignments (e.g. giving students a partial composition to be completed), to manually grade the student submissions and to give them feedback promptly.

Figure 1.

Noteflight application

Besides music, there are other areas where evaluation is a key component in practice such as management, health sciences, electronics. Playing business games in management courses, or simulating a human patient in life sciences courses, or simulating an electronic circuit in electronics courses are examples of learning processes that require the use of special authoring, rendering and assessment tools. These tools should be integrated in instructional environments in order to provide a better learning experience. However, these tools would be too specific to incorporate in an e-learning platform. Even if they could be provided as pluggable components, the burden of maintaining them would be prohibitive to institutions with few courses in those domains.

The motivation for this work comes from yet another domain with complex evaluation: computer programming. Introductory programming courses are generally regarded as difficult and often have high failure and dropout rates (Ala-Mutka, 2005), (O'Kelly, 2006), (Robins, 2003). Researchers pointed out several causes for these rates (Esteves, 2010). The most consensual are: teaching methods based on lectures about programming language syntaxes, subject complexity (learning how to program means to integrate knowledge of a wide variety of conceptual domains such as computer science and mathematics while developing expertise in problem understanding, problem-solving, unit testing and others) and student’s motivation (the public image of a “programmer” as a socially inadequate “nerd” and the reputation of programming courses as being extremely difficult affects negatively the motivation of the students).

Many educators claim that “learning through practice” is by far the best way to learn computer programming and to engage novice students (Gross, 2005), (Eckerdal, 2009). Practice in this area boils down to solving programming exercises. Nevertheless, solving exercises is only effective if students receive an assessment on their work. An exercise solved wrong will consolidate a false belief, and without feedback many students will not be able to overcome their difficulties.

Complete Chapter List

Search this Book: