5 research outputs found

    Experience Report: Thinkathon -- Countering an "I Got It Working" Mentality with Pencil-and-Paper Exercises

    Get PDF
    Goal-directed problem-solving labs can lead a student to believe that the most important achievement in a first programming course is to get programs working. This is counter to research indicating that code comprehension is an important developmental step for novice programmers. We observed this in our own CS-0 introductory programming course, and furthermore, that students weren't making the connection between code comprehension in labs and a final examination that required solutions to pencil-and-paper comprehension and writing exercises, where sound understanding of programming concepts is essential. Realising these deficiencies late in our course, we put on three 3-hour optional revision evenings just days before the exam. Based on a mastery learning philosophy, students were expected to work through a bank of around 200 pencil-and-paper exercises. By comparison with a machine-based hackathon, we called this a Thinkathon. Students completed a pre and post questionnaire about their experience of the Thinkathon. While we find that Thinkathon attendance positively influences final grades, we believe our reflection on the overall experience is of greater value. We report that: respected methods for developing code comprehension may not be enough on their own; novices must exercise their developing skills away from machines; and there are social learning outcomes in programming courses, currently implicit, that we should make explicit

    Experience report:challenges and opportunities of remote labs for a computer science department

    Get PDF
    In response to the COVID-19 pandemic, the authors – the Graduate Teaching Assistant (GTA) Working Group of the School of Computing Science at a Scottish University - were involved in implementing changes to the delivery of lectures and lab sessions to continue the provision of labs and tutorials online according to government regulations and guidance. Such a drastic overhaul presented a variety of challenges when trying to preserve the student experience and satisfaction. Here, we discuss these challenges, as well as the benefits and positive developments of online teaching. Our approach tackled the difficultly of online-only interaction by reducing the staff-student ratio and providing a tiered support network for staff members to foster an effective teaching environment across the undergraduate program.We reflect on our experiences and use evidence from GTA and student surveys to understand the impact of online only teaching. We examine possible explanations as to why students felt the new approach fell short before detailing the revised teaching methodology implemented in the 2021/22 academic session to address these limitations. With the phased return to face-to-face teaching, we were able to supplement online teaching with limited in-person labs. We utilised the limited in-person teaching to mitigate the shortfalls of online-only lab delivery by forming a hybrid approach, of which we explore both GTA and student survey responses. While the response to online learning was positive, the hybridisation was viewed less favourably. GTAs indicated that despite in-person teaching being the best solution, they preferred solely online classes to a hybrid approach

    How to implement a peer instruction-designed CS principles course

    No full text
    The CS Principles curriculum framework includes explicit learning goals regarding student abilities in communication and collaboration. Computing majors need these skills. However, what kinds of activities support the development of these skills, especially in a large lecture course? This paper describes Peer Instruction - a pedagogy developed to support students in developing deep understanding in a lecture environment - and its use in the pilot offering of CS Principles in 2010-11 at the University of California at San Diego

    Factors Affecting the Adoption of Peer Instruction in Computing Courses

    Get PDF
    Peer Instruction (PI) as defined by Mazur, and variations on this pedagogic technique, have been in use in computing courses for about a decade. Despite dozens of educational research publications documenting positive learning effects, improved retention, student acceptance, and effectiveness for large classes; PI does not appear to be widely adopted for computing courses. This paper reports on a three-way investigation into this apparent contradiction. First, the authors reflect on their own adoption, practice, experience, and abandonment of the use of PI in computing courses. Second, we surveyed the literature regarding the use of PI in computing courses and present a summary of the research findings, variations, and extensions to PI used in computing courses. Third, a survey of computing instructors was conducted to gauge the attitude toward PI in computing courses. To add context, this report considers publications documenting usage of PI in STEM courses, and the adoption of other pedagogic techniques in computing. Particular effort was made to identify the reasons computing instructors don’t adopt PI. This report also includes advice to instructors considering adopting PI in computing courses

    Identification and Evaluation of Predictors for Learning Success and of Models for Teaching Computer Programming in Contemporary Contexts

    Get PDF
    Introductory undergraduate computer programming courses are renowned for higher than average failure and withdrawal rates when compared to other subject areas. The closer partnership between higher education and the rapidly expanding digital technology industry, as demonstrated by the establishment of new Degree Apprenticeships in computer science and digital technologies, requires efficient and effective means for teaching programming skills. This research, therefore, aimed to identify reliable predictors of success in learning programming or vulnerability to failure. The research also aimed to evaluate teaching methods and remedial interventions towards recommending a teaching model that supported and engaged learners in contemporary contexts that were relevant to the workplace. Investigation of qualifications designed to prepare students for undergraduate computer science courses revealed that A-level entrants achieved significantly higher programming grades than BTEC students. However, there was little difference between the grades of those with and those without previous qualifications in computing or ICT subjects. Analysis of engagement metrics revealed a strong correlation between extent of co-operation and programming grade, in contrast to a weak correlation between programming grade and code understanding. Further analysis of video recordings, interviews and observational records distinguished between the type of communication that helped peers comprehend tasks and concepts, and other forms of communication that were only concerned with completing tasks. Following the introduction of periodic assessment, essentially converting a single final assessment to three staged summative assessment points, it was found that failing students often pass only one of the three assignment parts. Furthermore, only 10% of those who failed overall had attempted all three assignments. Reasons for failure were attributed to ‘surface’ motivations (such as regulating efforts to achieve a minimum pass of 40%), ineffective working habits or stressful personal circumstances rather than any fundamental difficulty encountered with subject material. A key contribution to pedagogical practice made by this research is to propose an ‘incremental’ teaching model. This model is informed by educational theory and empirical evidence and comprises short cycles of three activities: presenting new topic information, tasking students with a relevant exercise and then demonstrating and discussing the exercise solution. The effectiveness of this model is evidenced by increased engagement, increased quiz scores at the end of each teaching session and increased retention of code knowledge at the end of the course
    corecore