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... more
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
... To complicate things further, the input will be read as a string then parsed and converted to an integer. ... applications, such as (a) Retrieve the name of the browser a visitor is using; (b) Password program that prompts the user... more
... To complicate things further, the input will be read as a string then parsed and converted to an integer. ... applications, such as (a) Retrieve the name of the browser a visitor is using; (b) Password program that prompts the user for input; (c) Number guessing game: the computer ...
Paradoxically, as the role and significance of computing have increased in society and the economy, and coding is recognised as the fourth literacy, the number of students attending a programming course is in decline. In an attempt to... more
Paradoxically, as the role and significance of computing have increased in society and the economy, and coding is recognised as the fourth literacy, the number of students attending a programming course is in decline. In an attempt to increase interest in computer science (CS), there has been made much effort in developing tools and activities as preliminary learning materials in schools and universities. App Inventor and Scratch strive to engage the novice users by allowing them to write programs about things that connect with their interests in contrast to more conventional programming. In this paper, we focus on the use of these two block-based programming environments as tools to facilitate learning programming for novices. In our analysis, both novice programming environments (NPEs) seemed to be attractive platforms for introducing fundamental concepts in computer programming and both look appealing for majors and non-majors as well.
In this paper, we use Kansanen's didactic triangle to structure and analyse research on the teaching and learning of programming. Students, teachers and course content are the three entities that form the corners of the didactic... more
In this paper, we use Kansanen's didactic triangle to structure and analyse research on the teaching and learning of programming. Students, teachers and course content are the three entities that form the corners of the didactic triangle. The edges of the triangle represent the relationships between these three entities. We argue that many computing educators and computing education researchers operate from within narrow views of the didactic triangle. For example, computing educators often teach programming based on ...
Abstract: This paper reports on the ongoing development of a Computing Augmented Learning Management System or CALMS in the context of an introductory programming course. In the first phase, integration of computer science related content... more
Abstract: This paper reports on the ongoing development of a Computing Augmented Learning Management System or CALMS in the context of an introductory programming course. In the first phase, integration of computer science related content with the university specified learning management system is being carried out. The pedagogic foundation for the introductory programming course design including learning theories, instructional process and learning taxonomies is discussed along with the choice of educational media ...
This work investigates the effectiveness of simulated robots as tools to support the learning of programming. After the completion of a systematic review and exploratory research, a multi-case case study was undertaken. A simulator, named... more
This work investigates the effectiveness of simulated robots as tools to support the learning of programming. After the completion of a systematic review and exploratory research, a multi-case case study was undertaken. A simulator, named Kebot, was developed and used to run four 10-hour programming workshops. Twenty-three student participants (aged 16–18) in addition to 23 pre-service, and 3 in-service, teachers took part. The effectiveness of this intervention was determined by considering opinions, attitudes, and motivation as well as by analysing students’ programming performance. Pre- and post-questionnaires, in- and post-workshop exercises, and interviews were used. Participants enjoyed learning using the simulator and believed the approach to be valuable and engaging. The performance of students indicates that the simulator aids learning as most completed tasks to a satisfactory standard. Evidence suggests robot simulators can offer an effective means of introducing programming. Recommendations to support the development of other simulators are provided.
Learning to program a computer is difficult for many. The Learning Edge Momentum hypothesis suggests that the difficulty may be due to the tightly integrated nature of programming concepts and adapting the way curriculum is offered may... more
Learning to program a computer is difficult for many. The Learning Edge Momentum hypothesis suggests that the difficulty may be due to the tightly integrated nature of programming concepts and adapting the way curriculum is offered may have a significant influence on the outcomes. We investigate applying cognitive load reducing methods to instruction of the introductory programming concepts of declaration, assignment and sequence, using a new learning environment that an instructor can adapt for a specific example or that a student can personalize for amount and modality of content provided. Our study has three learning surveys. Each learning survey has short instructional videos designed using cognitive load reducing methods and then asks participants to solve novel problems using the presented materials. Our first learning survey was completed by 123 participants recruited on Amazon’s Mechanical Turk (AMT). We found that 23% that watched the instructional video without computer memory (n=61) answered the three code tracing questions correctly. Our second learning survey included instructional videos prepared after analyzing the results of the iii previous survey and emphasized cognitive load reducing methods in preparing the new instruction. This second survey was completed by 220 participants also recruited via AMT. We found that 57% of the participants that watched the instructional video without computer memory (n=72) answered the three tracing questions correctly. Our third learning survey with 322 participants recruited via AMT confirmed that the difference between the two videos was statistically significant with medium effect size. In the third survey, 29% of the participants watching the first survey instructional video without computer memory and 45% of those that watched the second survey instructional video without computer memory answered all three tracing questions correctly. In the third learning survey, the gain from 29% from our first short video that we thought was a reasonable presentation to 45% in the second short video seems to lend strong support to the hypothesis that our typical methods of instruction for introductory programming simply overwhelm the cognitive capabilities of many of the students. Our results suggest that cognitive load reducing methods may be very helpful for teaching introductory programming concepts.
Computational thinking stands out as a new approach to solving problems in the contemporary world. And is characterized by go beyond the mental processes, it involved attitudes and values that brought together form the skills so necessary... more
Computational thinking stands out as a new approach to solving problems in the contemporary world. And is characterized by go beyond the mental processes, it involved attitudes and values that brought together form the skills so necessary for everyday tasks increasingly computerized. As computers become indispensable resources in aid of the professional human activities, it is necessary to prepare new generations to exercise that dominance, and the Introductory Programming is a gateway to this as it also contributes to the development of skills from the computational thinking. This work tries to understand this relationship investigating learning introductory programming with the Code.org platform and the development of computational thinking in middle school students. For this we conducted a case study on the platform to identify the skills promoted in students through the activities of programming in blocks or Visual Programming, was also carried out an experimental test in a programming workshop to identify what skills students have developed. The results of the case study showed that there is a set of computational concepts and practices promoted in programming activities in Code.org platform which can be understood as a computational thinking skills. The result of the test applied in the workshop demonstrated evidence that students can develop and extend these powers after the teaching of introductory programming, but there is still a need for more research to deepen knowledge and reach conclusions on how and what skills are developed in this relationship.
Studies of using games for learning have being widely discussed in various literatures. This is due to believes that educational games (EG) can offer many learning benefits such as motivation, engagement and fun. Learning Programming... more
Studies of using games for learning have being widely discussed in various literatures. This is due to believes that educational games (EG) can offer many learning benefits such as motivation, engagement and fun. Learning Programming requires many skills such as logical thinking and problem solving as well as understanding of abstract concepts. As a result, many students found that Programming is a challenging subject which resulted in low motivation to study the subject. Thus, it is worth to study how educational games help to enhance our students learning attitude towards Programming. This paper will discuss on our pilot study of students' perceptions towards using educational games as their learning medium. Findings indicated that the attitude of most students are positive and they are also more motivated to learn Programming by using games compared to conventional method. Hopefully, this research provides some insights to understand our students' perceptions regarding educational games usage in their learning.
Various methods have been proposed in the past to improve student learning by introducing new styles of working with assignments. These include problem-based learning, use of case studies and apprenticeship. In most courses, however,... more
Various methods have been proposed in the past to improve student learning by introducing new styles of working with assignments. These include problem-based learning, use of case studies and apprenticeship. In most courses, however, these proposals have not resulted in a widespread significant change of teaching methods. Most institutions still use a traditional lecture/lab class approach with a strong separation of tasks between them. In part, this lack of change is a consequence of the lack of easily available and appropriate tools ...
This work presents a qualitative case study about computational thinking skills boosted in Code.org. The results show that the skills related to computational concepts, practices and perspectives modeled on a framework could be... more
This work presents a qualitative case study about computational thinking skills boosted in Code.org. The results show that the skills related to computational concepts, practices and perspectives modeled on a framework could be identified. Resumo. Este trabalho apresenta um estudo de caso qualitativo sobre as competências do pensamento computacional exploradas em um curso de programação introdutória da plataforma Code.org. Os resultados demonstram quais as competências relacionadas aos conceitos, práticas e perspectivas computacionais modeladas em um framework puderam ser encontradas no curso.
Developing students' algorithmic and computational thinking is currently a major objective for primary and secondary education in many countries around the globe. Literature suggests that students face at various difficulties in... more
Developing students' algorithmic and computational thinking is currently a major objective for primary and secondary education in many countries around the globe. Literature suggests that students face at various difficulties in programming processes, because of their mental models about basic programming constructs. Arrays constitute the first data structure students have to cope with in introductory programming courses. This paper presents the results of an empirical study on secondary education students' misconceptions and mental representations of the array data structure. Students' responses to written tasks regarding short code segments were mapped to the different levels of the SOLO taxonomy, in order to identify how students use arrays to solve programming problems. The analysis of the results showed that the majority of the students tended to manifest responses assigned to the lower SOLO levels, i.e. prestructural, unistructural and multistructural. The findings indicate that many students in the sample had incomplete or faulty representations of the array concept, which seem to be connected to their misconceptions about the programming variable concept.
Students continue to find learning to program difficult. Failure rates from introductory programming units are high, as are attrition rates from IT courses. Case studies were conducted in 2007 involving Queensland University of Technology... more
Students continue to find learning to program difficult. Failure rates from introductory programming units are high, as are attrition rates from IT courses. Case studies were conducted in 2007 involving Queensland University of Technology (QUT) introductory programming students who took part in weekly interviews and focus groups, and responded to questionnaires. Students divulged details relating to their attitude and approach to study, together with the level of confidence they had in their ability to learn to program. Four of the case studies are included in this paper which portrays students with varying levels of confidence motivation, determination, attitude and study ethic, and how they each struggle to learn to program. The purpose of the studies was to determine to what extent each of these factors has an influence on student learning outcomes. The studies focus on the people rather than the more traditionally studied cognitive difficulties of learning to program. The data c...
This paper describes the development of a system for teaching C/C++ using Lego™ RCX Robots in a CS1 college course on introductory programming. The system has been implemented using an integrated development environment (IDE) developed by... more
This paper describes the development of a system for teaching C/C++ using Lego™ RCX Robots in a CS1 college course on introductory programming. The system has been implemented using an integrated development environment (IDE) developed by the open source community (Code::Blocks). We have modified the IDE so that it can call a C/C++ cross-compiler for the RCX whose standard firmware
This paper reports the findings of a census of introductory programming courses. Eighty five courses from Australian and New Zealand universities are included. The census aims to discover languages and paradigms taught, tools used, texts... more
This paper reports the findings of a census of introductory programming courses. Eighty five courses from Australian and New Zealand universities are included. The census aims to discover languages and paradigms taught, tools used, texts employed, method of ...
This paper describes how programming strategies were explicitly instructed and assessed in an introductory programming course and describes the impact of this curricular change. A description is given of how strategies were explicitly... more
This paper describes how programming strategies were explicitly instructed and assessed in an introductory programming course and describes the impact of this curricular change. A description is given of how strategies were explicitly integrated into teaching materials and assessed in assignments and examinations. Comparisons are made between the outcomes of novices under the new curriculum and results of novices' learning under the previous implicit-only strategy curriculum, measured in an earlier study. This comparison shows improvement in novices' strategy application under the new curriculum.
Deciding what to teach novice programmers about programming and, in particular, which programming language to teach to novice programmers, and how to teach it, is a common topic for debate within uni- versities. Should an industry... more
Deciding what to teach novice programmers about programming and, in particular, which programming language to teach to novice programmers, and how to teach it, is a common topic for debate within uni- versities. Should an industry relevant programming language be taught, or should a language designed for teaching novices be used? In order to design tools and methodologies for the teaching of novice pro- grammers it is important to uncover what is being taught, and in turn, what will be taught in the future. A census of introductory programming courses administered within all Australian universities has been un- dertaken. The census aimed to reveal not only what computer programming languages are being taught, but also how they are being taught. From the results of this census two key factors emerged: perceived industry pressure for graduates with certain language skills versus academic training for generic pro- gramming skills.
In a two-week residential game camp we used the Greenfoot IDE to teach java programming to rising 9th and 10th graders. Students created their own computer games which required learning how to write java programs, create a game design,... more
In a two-week residential game camp we used the Greenfoot IDE to teach java programming to rising 9th and 10th graders. Students created their own computer games which required learning how to write java programs, create a game design, and create art assets. In this paper we focus on the computer science pedagogy used and describe the initial design of an augmented game development framework for the Greenfoot environment. This framework includes classes for the following useful game elements: Animation, Projectiles, Side Scrolling Worlds, Text Boxes, Clocks and Timers. We describe these classes, discuss the effectiveness of each, and describe potential improvements to their implementation and design. We also report the results of a survey conducted during each of the camps. Categories and Subject Descriptors
Previous research has found that programming assignments can produce strong emotional reactions in introductory programming students. These emotional reactions often have to do with the frustration of dealing with difficulties and how... more
Previous research has found that programming assignments can produce strong emotional reactions in introductory programming students. These emotional reactions often have to do with the frustration of dealing with difficulties and how hard it can be to overcome problems. Not only are these emotional reactions powerful in and of themselves, they have also been shown to induce students to make self-efficacy judgments, which can in turn cause adaptive or maladaptive behaviors, depending on the valence of the judgment. These results have been found in previous qualitative research in programming, however, to date no one has done a larger scale quantitative examination of emotional reactions in introductory programming students. Furthermore, no one has tried to connect these emotional reactions systematically to student learning outcomes. Therefore, this study reports on the pilot use of a basic emotional reactions survey with a large class of undergraduate introductory programming students. Preliminary results are presented on how these emotional reactions affect students' course outcomes over the short and longer term.