233,206 research outputs found

    Automated Feedback for 'Fill in the Gap' Programming Exercises

    Get PDF
    Timely feedback is a vital component in the learning process. It is especially important for beginner students in Information Technology since many have not yet formed an effective internal model of a computer that they can use to construct viable knowledge. Research has shown that learning efficiency is increased if immediate feedback is provided for students. Automatic analysis of student programs has the potential to provide immediate feedback for students and to assist teaching staff in the marking process. This paper describes a “fill in the gap” programming analysis framework which tests students’ solutions and gives feedback on their correctness, detects logic errors and provides hints on how to fix these errors. Currently, the framework is being used with the Environment for Learning to Programming (ELP) system at Queensland University of Technology (QUT); however, the framework can be integrated into any existing online learning environment or programming Integrated Development Environment (IDE

    Four approaches to teaching programming

    No full text
    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

    A blended learning approach for teaching computer programming : design for large classes in Sub-Saharan Africa

    Get PDF
    The challenge of teaching programming in higher education is complicated by problems associated with large class teaching, a prevalent situation in many developing countries. This paper reports on an investigation into the use of a blended learning approach to teaching and learning of programming in a class of more than 200 students. A course and learning environment was designed by integrating constructivist learning models of Constructive Alignment, Conversational Framework and the Three- Stage Learning Model. Design science research is used for the course redesign and development of the learning environment, and action research is integrated to undertake participatory evaluation of the intervention. The action research involved the Students’ Approach to Learning survey, a comparative analysis of students’ performance, and qualitative data analysis of data gathered from various sources. The paper makes a theoretical contribution in presenting a design of a blended learning solution for large class teaching of programming grounded in constructivist learning theory and use of free and open source technologies.NORAD project of Hawassa University from the third phase of a Norwegian Government-supported project.http://www.tandfonline.com/loi/ncse20hb201

    Cheat Sheet for Teaching Programming with Comics: Through the Lens of Concept-Language-Procedure Framework

    Full text link
    Comics is emerging as a popular medium for providing visual explanations of programming concepts and procedures. Recent research into this medium opened the door to new opportunities and tools to advance teaching and learning in computing. For instance, recent research on coding strip, a form of comic strip with its corresponding code, led to a new visual programming environment that generates comics from code and experience report detailing various ways coding strips can be used to benefit students' learning. However, how comics can be designed and used to teach programming has not yet been documented in a concise, accessible format to ease their adoption. To fill this gap, we developed a cheat sheet that summarizes the pedagogical techniques and designs teachers can use in their teaching. To develop this cheat sheet, we analyzed prior work on coding strip, including 26 coding strips and 30 coding strip design patterns. We also formulated a concept-language-procedure framework to delineate how comics can facilitate teaching in programming. To evaluate our cheat sheet, we presented it to 11 high school CS teachers at an annual conference for computer studies educators and asked them to rate its readability, usefulness, organization, and their interest in using it for their teaching. Our analysis suggests that this cheat sheet is easy to read/understand, useful, well-structured, and interests teachers to further explore how they can incorporate comics into their teaching

    An Exploration of Traditional and Data Driven Predictors of Programming Performance

    Get PDF
    This thesis investigates factors that can be used to predict the success or failure of students taking an introductory programming course. Four studies were performed to explore how aspects of the teaching context, static factors based upon traditional learning theories, and data-driven metrics derived from aspects of programming behaviour were related to programming performance. In the first study, a systematic review into the worldwide outcomes of programming courses revealed an average pass rate of 67.7\%. This was found to have not significantly changed over time, or to have differed based upon aspects of the teaching context, such as the programming language taught to students. The second study showed that many of the factors based upon traditional learning theories, such as learning styles, are context dependent, and fail to consistently predict programming performance when they are applied across different teaching contexts. The third study explored data-driven metrics derived from the programming behaviour of students. Analysing data logged from students using the BlueJ IDE, 10 new data-driven metrics were identified and validated on three independently gathered datasets. Weaker students were found to make a greater percentage of successive errors, and spend a greater percentage of their lab time resolving errors than stronger students. The Robust Relative algorithm was developed to hybridize four of the strongest data-driven metrics into a performance predictor. The novel relative scoring of students based upon how their resolve times for different types of errors compared to the resolve times of their peers, resulted in a predictor which could explain a large proportion of the variance in the performance of three independent cohorts, R2R^2 = 42.19\%, 43.65\% and 44.17\% - almost double the variance which could be explained by Jadud's Error Quotient metric. The fourth study situated the findings of this thesis within the wider literature, by applying meta-analysis techniques to statistically synthesise fifty years of conflicting research, such that the most important factors for learning programming could be identified. 482 results describing the effects of 116 factors on programming performance were synthesised and consolidated to form a six class theoretical framework. The results showed that the strongest predictors identified over the past fifty years are data-driven metrics based upon programming behaviour. Several of the traditional predictors were also found to be influential, suggesting that both a certain level of scientific maturity and self-concept are necessary for programming. Two thirds of the weakest predictors were based upon demographic and psychological factors, suggesting that age, gender, self-perceived abilities, learning styles, and personality traits have no relevance for programming performance. This thesis argues that factors based upon traditional learning theories struggle to consistently predict programming performance across different teaching contexts because they were not intended to be applied for this purpose. In contrast, the main advantage of using data-driven approaches to derive metrics based upon students' programming processes, is that these metrics are directly based upon the programming behaviours of students, and therefore can encapsulate such changes in their programming knowledge over time. Researchers should continue to explore data-driven predictors in the future

    Augmented intelligence in programming learning: Examining student views on the use of ChatGPT for programming learning

    Get PDF
    With the diversification of generative artificial intelligence (AI) applications, the interest in their use in every segment and field of society in recent years has been increasing rapidly. One of these areas is programming learning and program writing processes. One of the generative AI tools used for this purpose is ChatGPT. The use of ChatGPT in program writing processes has become widespread, and this tool has a certain potential in the programming process. However, when the literature is examined, research results related to using ChatGPT for this purpose have yet to be found. The existing literature has a gap that requires exploration. This study aims to analyze the students' perspectives on using ChatGPT in the field of programming and programming learning. The study encompassed a cohort of 41 undergraduate students enrolled in a public university's Computer Technology and Information Systems department. The research was carried out within the scope of the Object-Oriented Programming II course for eight weeks. Throughout the research process, students were given project assignments related to the course every week, and they were asked to use ChatGPT while solving them. The research data was collected using a form consisting of open-ended questions and analyzed through content analysis. The research findings revealed both the advantages and disadvantages of ChatGPT usage, as perceived by the students. The students stated that the main benefits of using ChatGPT in programming learning are providing fast and mostly correct answers to questions, improving thinking skills, facilitating debugging, and increasing self-confidence. On the other hand, the main limitations of using ChatGPT in programming education were getting students used to laziness, being unable to answer some questions, or giving incomplete/incorrect answers, causing professional anxiety in students. Based on the results of the research, it can be said that it would be useful to integrate generative AI tools into programming courses considering the advantages they provide in programming teaching. However, appropriate measures should be taken regarding the limitations it brings. Based on the research findings, several recommendations were proposed regarding the integration of ChatGPT into lessons

    No one to save, and everything to learn: Decolonial possibilities for global NGOs facilitating education in emergencies

    Get PDF
    The field of Education in Emergencies is an emerging field which aims to offer solutions for the continuation of learning in humanitarian settings, but also navigates dynamics of global development in the pursuit of delivering quality learning and universal learning access. In this study, qualitative content analysis is used to examine the beliefs, values, and motivations of three Education in Emergencies (EiE) programs implemented by NGOs. These were selected to offer insight into programming designed for global, regional, and local implementation, as well as nuanced dynamics of power, agency, and saviorism through seven criteria: (1) Purpose of learning, (2) Instructional methods, (3) Literacy and numeracy standards, (4) Legitimacy, (5) Teaching staff agency, (6) Parent/community engagement, and (7) Risk mediation. Findings indicated a dichotomy in the field between whole-student learning and learning towards workforce development, a strong value of student healing through play and creativity-based learning, and teacher agency as a key indicator of power between the NGO and the learning community. Further research investigating EiE programming in practice is recommended to explore the efficacy of student inquiry-based learning, and to identify nuances of power and community agency in EiE implementation

    Student teachers\u27 learning and teaching mathematics with programming

    Get PDF
    Sweden’s school curriculum was revised to include programming as a mathematical content from the year 2018. However, teacher education included using IT-tools for teaching, but not specifically programming. To correct this situation, we have developed a new programming strand in the training of secondary school mathematics teachers at the university of Gothenburg. The aim of this study is to observe how student teachers towards the end of the program use their knowledge to plan uses of programming in their own mathematics teaching. It is part of a larger research and development project on introducing programming in secondary school mathematics education. Two theoretical frameworks are relevant here: instrumental genesis, i.e., the process where an instrument is formed from an artefact, when students use programming as a tool in mathematics (Trouche 2004), and the theory of didactic transposition, to frame the student teacher\u27s transformation of their own knowledge into knowledge to be taught (Chevallard 2006). Each mathematics course in the teacher education program for secondary teachers at the university of Gothenburg contains a few computer lab sessions. About half of them are focused on using IT-tools (e.g. Geogebra) to learn mathematics. The other half of the computer labs use programming to highlight mathematical concepts. There is no course in programming per se. In the first mathematics course, the students build a first block program in Scratch to draw regular polygons, using loops and variables. In the second course, in Calculus, they estimate integrals with Riemann sums, using loops in Python. The strand then continues in Python, with data analysis in Statistics and prime numbers and cryptography in Number theory. Four school practice periods are spread throughout\ua0the program, and in the third of these, student teachers plan a mathematics lesson with programming, to use with their school class. In this study we analyze the student’s lesson plans and discussion in a seminar where the students discuss their lesson design. Of interest is both the design itself and the students’ attitude, self-efficacy and reflections regarding their teaching of mathematics through programming. In particular, we are interested in the students’ argumentation on how their planned lessons may help the pupils to achieve the learning goals. Preliminary results indicate that students struggle to meet the double goal of introducing programming and supporting the mathematics in the curriculum. References: Chevallard, Y. (2006). Steps towards a new epistemology in mathematics education. In Bosch, M. Proceedings of the 4th Conference of the European Society for Research in Mathematics Education (CERME 4) (pp. 21–30). Trouche, L. (2004). Managing the complexity of human/machine interactions in computerized learning environments: Guiding students’ command process through instrumental orchestrations. International Journal of Computers for Mathematical Learning, 9(3), 281–307

    Teaching and learning to program : a qualitative study of Hong Kong sub-degree students

    Full text link
    University of Technology, Sydney. Faculty of Education.This study investigates the experiences of the Hong Kong sub-degree students in learning computer programming and explores ways to help the students learn more effectively. In Hong Kong, sub-degree programs are offered to increase the number of students studying post-secondary education. The performance of the sub-degree students is weaker than that of undergraduate students. Learning computer programming is a challenge for most post-secondary students and especially for sub-degree students. A considerable amount of research has been done in teaching and learning programming in the last decade. However, most of this research was targeted to Western undergraduates. The findings of this research might not be applicable to Chinese students or to the weaker Hong Kong sub-degree students. This study attempts to fill this gap. A theory-seeking case study research is conducted to investigate students’ learning of programming. The researcher collected and analysed data from semi-structured interviews. Other data sources – active participant observations, reflective memos, and analysis of students’ programming assignments and examination – are used to triangulate the data from the interviews. The grounded theory that emerged, the theory of ‘Performance Improvement of Programming’, offers an exploratory insight into the experiences of the Hong Kong sub-degree students in learning to program. It addresses the distinctive challenges facing Hong Kong students in learning, learning styles, and strategies. This study also suggests practical strategies in light of the students’ characteristics in order to assist their learning of programming
    • 

    corecore