31,645 research outputs found

    Introductory programming: a systematic literature review

    Get PDF
    As computing becomes a mainstream discipline embedded in the school curriculum and acts as an enabler for an increasing range of academic disciplines in higher education, the literature on introductory programming is growing. Although there have been several reviews that focus on specific aspects of introductory programming, there has been no broad overview of the literature exploring recent trends across the breadth of introductory programming. This paper is the report of an ITiCSE working group that conducted a systematic review in order to gain an overview of the introductory programming literature. Partitioning the literature into papers addressing the student, teaching, the curriculum, and assessment, we explore trends, highlight advances in knowledge over the past 15 years, and indicate possible directions for future research

    Contemporary developments in teaching and learning introductory programming: Towards a research proposal

    Get PDF
    The teaching and learning of introductory programming in tertiary institutions is problematic. Failure rates are high and the inability of students to complete small programming tasks at the completion of introductory units is not unusual. The literature on teaching programming contains many examples of changes in teaching strategies and curricula that have been implemented in an effort to reduce failure rates. This paper analyses contemporary research into the area, and summarises developments in the teaching of introductory programming. It also focuses on areas for future research which will potentially lead to improvements in both the teaching and learning of introductory programming. A graphical representation of the issues from the literature that are covered in the document is provided in the introduction

    Teaching Software Development to Non-Software Engineering Students

    Get PDF
    This paper argues that although the object-oriented programming (OOP) paradigm is appropriate for students taking programming modules on Higher Education (HE) software engineering course, this paradigm is not as relevant for students from other courses who study programming modules. It is also asserts that adopting another paradigm when teaching programming to non-software engineering students need not prevent the encouragement of good software engineering practices The paper discusses the software development model, procedures, techniques and programming language that the author requires non-software engineering students to employ when developing their software. This discussion also includes consideration of implementation issues in an educational context. The paper concludes that his alternative approach has been successfully implemented, that it requires the student to adopt a rigorous approach to development and that it encourages best software engineering practices. The conclusions also note that delivering this alternative offers the opportunity to include good educational practice, such as role-play

    Teaching Programming to the Post-Millennial Generation: Pedagogic Considerations for an IS Course

    Get PDF
    Teaching introductory programming to IS students is challenging. The educational, technological, demographic, and cultural landscape has changed dramatically in recent years. The post-millennial generation has different needs and expectations in an era of open resources. Learning to program is perceived as difficult, teaching approaches are diverse, and there is little research on what works best. In this paper, we share our experiences in developing, testing, and implementing a new design for teaching introductory IS programming at the undergraduate level. We describe pedagogic considerations and present teaching tips for a blended course that combines best practices with experimentation. Our approach recognizes the changing nature of the student body, the needs of an IS major in the current environment, and the worldwide shift in education from instructor-centered to student-centered learning

    An Experience with and Reflections on Live Coding with Active Learning

    Get PDF
    In this paper I report and reflect on a concrete experience with changing an introductory programming course from being based on "classical lectures" to being based on live coding with active learning. The experiment is built on learnings found in the literature and the pedagogical theories of scaffolding, think-pair-share and teaching as facilitation of learning. I reflect on the students\u27 reaction to the experiment, the difficulty of the active learning, how to keep time, coverage of learning objectives, the degree of improvisation and student involvement. The experiment was well received by the students, and I report also on the feedback. My hope is that educators who want to introduce live coding with active learning will be able to draw inspiration from my preparation of, execution of and reflections on the experiment

    The Case for Improving U.S. Computer Science Education

    Get PDF
    Despite the growing use of computers and software in every facet of our economy, not until recently has computer science education begun to gain traction in American school systems. The current focus on improving science, technology, engineering, and mathematics (STEM) education in the U.S. school system has disregarded differences within STEM fields. Indeed, the most important STEM field for a modern economy is not only one that is not represented by its own initial in "STEM" but also the field with the fewest number of high school students taking its classes and by far has the most room for improvement—computer science

    Supporting Collaboration in Introductory Programming Classes Taught in Hybrid Mode: A Participatory Design Study

    Get PDF
    Hybrid learning modalities, where learners can attend a course in-person or remotely, have gained particular significance in post-pandemic educational settings. In introductory programming courses, novices' learning behaviour in the collaborative context of classrooms differs in hybrid mode from that of a traditional setting. Reflections from conducting an introductory programming course in hybrid mode led us to recognise the need for re-designing programming tools to support students' collaborative learning practices. We conducted a participatory design study with nine students, directly engaging them in design to understand their interaction needs in hybrid pedagogical setups to enable effective collaboration during learning. Our findings first highlighted the difficulties that learners face in hybrid modes. The results then revealed learners' preferences for design functionalities to enable collective notions, communication, autonomy, and regulation. Based on our findings, we discuss design principles and implications to inform the future design of collaborative programming environments for hybrid modes
    corecore