O'Really?

July 2, 2020

Join us to discuss blended learning & pedagogy in Computer Science on Monday 6th July at 3pm

What is innovative pedagogy? CC licensed image by @giuliaforsythe

Join us for our next journal club meeting on Monday 6th July at 3pm, the papers we’ll be discussing below come from the #paper-suggestions channel of our slack workspace at uk-acm-sigsce.slack.com.

Show me the pedagogy!

The first paper is a short chapter by Katrina Falkner and Judy Sheard which gives an overview of pedagogic approaches including active learning, collaborative learning, cooperative learning, contributing student pedagogy (CSP), blended learning and MOOCs. [1] This was published last year as chapter 15 of the Cambridge Handbook on Computing Education Research edited by Sally Fincher and Anthony V. Robins. A lot of blended learning resources focus on technology, this chapter talks about where blended learning fits with a range of different pedagogic approaches.

A video summary of all sixteen chapters of the Cambridge Handbook of Computing Education Research, including chapter 15 which we’ll be discussing

Implementing blended learning

The second paper (suggested by Jane Waite) is Design and implementation factors in blended synchronous learning environments [2], here’s a summary from the abstract:

Increasingly, universities are using technology to provide students with more flexible modes of participation. This article presents a cross-case analysis of blended synchronous learning environments—contexts where remote students participated in face-to-face classes through the use of rich-media synchronous technologies such as video conferencing, web conferencing, and virtual worlds. The study examined how design and implementation factors influenced student learning activity and perceived learning outcomes, drawing on a synthesis of student, teacher, and researcher observations collected before, during, and after blended synchronous learning lessons. Key findings include the importance of designing for active learning, the need to select and utilise technologies appropriately to meet communicative requirements, varying degrees of co-presence depending on technological and human factors, and heightened cognitive load. Pedagogical, technological, and logistical implications are presented in the form of a Blended Synchronous Learning Design Framework that is grounded in the results of the study.

Hope to see you there, zoom details are on the slack channel, email me if you’d like to request an invitation to the slack channel. Likewise, if you don’t have access to the papers let me know.

References

  1.  Falkner, Katrina; Sheard, Judy (2019). “Pedagogic Approaches”: 445–480. doi:10.1017/9781108654555.016. Chapter 15 of the The Cambridge Handbook of Computing Education Research
  2. Bower, Matt; Dalgarno, Barney; Kennedy, Gregor E.; Lee, Mark J.W.; Kenney, Jacqueline (2015). “Design and implementation factors in blended synchronous learning environments: Outcomes from a cross-case analysis”. Computers & Education86: 1–17. doi:10.1016/j.compedu.2015.03.006ISSN 0360-1315.

March 4, 2020

Join us to discuss student misconceptions in programming, March 23rd from 1pm to 2pm

smallerscream

The Scream by Edvard Munch 😱, reproduced in LEGO by Nathan Sawaya, the BrickArtist.com

In Canterbury, Glasgow and Manchester, we’re starting a journal club, as part of uki-sigcse.acm.org, the Association for Computing Machinery (ACM) Special Interest Group (SIG) on Computer Science Education (CSE). Journal clubs are like a book clubs, but instead of chatting about books we discuss journal papers instead. Who should come? What’s on the agenda? How can you join and what are our club rules? Read on…

Who should come?

Our journal club will be of interest to:

  • Educators who teach some flavour of computing or you run a coding boot camp.
  • Employers who employ and train software engineers, data scientists, developers, coders, programmers, etc
  • Employees your boss has sent you on a training program or bootcamp to learn or improve your programming
  • Students what misconceptions about programming have you encountered?
  • Everyone and anyone who is curious. Our doors are open, this is not an ivory tower. Everyone has something to learn, everyone has something to teach.

Agenda: The paper we’ll be discussing

If you’d like to join us, read the paper: Identifying Student Misconceptions of Programming by Lisa Kaczmarczyk et al [1] which was voted a top paper from the last 50 years by SIGCSE members in 2019. Here is a summary:

Computing educators are often baffled by the misconceptions that their CS1 students hold. We need to understand these misconceptions more clearly in order to help students form correct conceptions. This paper describes one stage in the development of a concept inventory for Computing Fundamentals: investigation of student misconceptions in a series of core CS1 topics previously identified as both important and difficult. Formal interviews with students revealed four distinct themes, each containing many interesting misconceptions. Three of those misconceptions are detailed in this paper: two misconceptions about memory models, and data assignment when primitives are declared. Individual misconceptions are related, but vary widely, thus providing excellent material to use in the development of the CI. In addition, CS1 instructors are provided immediate usable material for helping their students understand some difficult introductory concepts.

In case you’re wondering, CS1 refers to the first course in the introductory sequence of a computer science major (in American parlance), roughly equivalent to first year undergraduate in the UK. CI refers to a Concept Inventory, a test designed to tell teachers exactly what students know and don’t know. According to Reinventing Nerds, the paper has been influential because it was the “first to apply rigorous research methods to investigating misconceptions”. After a brief introduction to the paper and its authors we will discuss the following:

  • What is good about the paper?
  • What could be improved?
  • What is the most surprising or interesting thing you got from the paper?
  • How convincing is the evidence, arguments and conclusions presented?
  • How could you use the results and insights in your own teaching or training program?
  • What are the next steps that follow on from this research? What has already been done to follow on from this work?
  • Has consensus and opinion moved since the publication of this paper ten years ago? If so, how and why?
  • Why was this paper voted top 10 of all time by SIGCSE.org members?
  • Are there any elephants in the room? Does the paper omit anything relevant or gloss over important details?
  • What do we know that we know (Rumsfeld’s known knowns)
  • What do we know that we don’t know (Rumsfeld’s known unknowns)
  • A.O.B.: Any other questions or comments?
  • Why was this paper chosen for journal club?
  • What paper should we discuss at our next meeting?

How can you join?

We’ll be meeting in the Atlas rooms, Kilburn building, Department of Computer Science, University of Manchester, M13 9PL, see bit.ly/directions-to-kilburn-building and www.cs.manchester.ac.uk/about/maps-and-travel online using Zoom, find login details and register at sigman1.eventbrite.co.uk.

Can’t make it this time? Groups will be running in parallel in Glasgow (23rd March at 1pm with Quintin Cutts) and Canterbury (Friday 27th March, 14.00, Room S132 in the Cornwallis building, School of Computing with Sally Fincher) to discuss the same paper. You can also join us online using the hashtag #SIGCSEJClub. If you’d like to know about future journal clubs in Manchester send an email to with the text…

subscribe sigcse-journal-club yourfirstname yoursecondname

…in the body of your email.

Start your own local journal club

If Manchester, Glasgow or Canterbury aren’t easy for you to get to, start your own journal club by joining SIGCSE at uki-sigcse.acm.org/membership and posting the details to their mailing list. We plan to have regular journal clubs every three months or so where we’ll discuss the same paper nationally during journal club week: this one is Monday 23rd to Friday 27th March.

 

Journal club rules

We will loosely be following the guidelines at Ten Simple Rules for Running a Journal Club including:

  • It will be casual  not formal. There will be coffee and refreshments available. We won’t be providing lunch but feel free to bring your own. Some companies call them brown bag meetings, because many of us may will only have an hour so we need to get straight down to business.
  • It’s about more than just the articles. We are building (and strengthening) communities of practice amongst peers in Computer Science education, not just inside academia but in industry as well. Don’t be shy, all are welcome!
  • Multidisciplinary is not a dirty word: we aim to foster equality, diversity and inclusion of different people, disciplines, practices and viewpoints. That means we’re open to anyone teaching computer science. That could be in a school, FE college, University, bootcamp, onboarding scheme, company induction or employers staff training program etc. Students are welcome too. The more diverse our journal club is, the stronger it will be.
  • Topics will reflect the diversity of our membership. We’ve started with student misconceptions, but we invite proposals for which paper we should discuss at our next meeting so we can vote on them.
  • We’ll pick interesting papers, but they don’t have to be award winning. Papers don’t need to be heavily cited either, but they do have to be thought provoking and provide something meaty to discuss alongside practical tips that can be put into practice straight away.

Any questions? Let me know in the comments section below, via email or twitter.

You might also like…

If you care about the training & education of software engineers and computer scientists, you might also be interested in #CSEdResearchBookClub which will take place on Thursday 5th March at 8pm. They’ll be discussing a paper by Sue Sentance et al. on using Predict, Run, Investigate, Modify & Make (PRIMM) called Teaching computer programming with PRIMM: a sociocultural perspective. CS education book club is co-ordinated by Jane Waite at Queen Mary University of London (QMUL) see below:

References

  1. Kaczmarczyk, Lisa C.; Petrick, Elizabeth R.; East, J. Philip; Herman, Geoffrey L. (2010). Identifying student misconceptions of programming, SIGCSE ’10: Proceedings of the 41st ACM technical symposium on Computer science educationages 107–111doi:10.1145/1734263.1734299

July 17, 2019

Educating Computer Scientists: What should we discuss at #SIGCSE journal club?

fightclub

The first rule of journal club is, you do not talk about journal club. The second rule of journal club is, YOU DO NOT TALK ABOUT JOURNAL CLUB.* Discussions will go on as long as they have to. If this is your first time at journal club, you have to debate. Dress code: silly frocks and ridiculous hats are optional. Picture of my colleagues in the School of Computer Science ready for a graduation ceremony 2013, by Toby Howard.

So we’re starting a new Journal Club and Special Interest Group (SIG) for lecturers, teachers and course leaders in Manchester to discuss Computer Science Education (CSE). We’ll pick interesting papers, read them and then meet regularly to discuss them. It’s a bit like Fight Club but instead of beating each other up, we’ll “beat up” (review & critique) papers. Hopefully we’ll all learn something along the way. The first question to answer is, which papers should we discuss?

Computer Science (CS) is a young and professionally immature subject, it has only been taught at undergraduate level since 1965 in the UK. Across the pond in America, the Association for Computing Machinery (ACM) Special Interest Group on Computer Science Education (sigcse.org) only started as recently as 1968, making it a very spritely fifty years young. On educational timescales, computer science is a whipper snapper! Fifty years is peanuts when you compare it to the millennia that mathematics has been taught for. In ancient Greece the earliest lessons were mathematics hence μάθημα (mathematics) means the lesson and derivatives like μαθαίνω (matheno) mean to learn or to know. While the greeks built some impressive analogue computers, digital computers and computer science as we now know it, did not exist in Ancient Greece. 🇬🇷 

What this means is that there is plenty of evidence about what works (and what doesn’t) when teaching mathematics. In contrast, how to teach Computer Science, what should be taught and why, to whom and when are all open questions

So, to get the ball rolling here are nine papers that tackle some of these open questions in Computer Science Education. We’ll vote on the three most interesting papers and read them before meeting to review them. Many of these papers are likely to be of interest to “educators” in its broadest sense. That means anyone teaching coding, computer science, tinkering, hacking and software/hardware engineering at any level. Which includes primary schools, code clubs, bootcamps, CoderDojos, hackathons, secondary schools, CPD programmes, K-12 education, lifelong learning, staff training courses, onboarding, induction, adult education programmes, return to work schemes and so on. If you’d like to join us we’ll be meeting in the Kilburn building, Manchester, M13 9PL (mosty likely first week of September, date and time tbc, drop me a line). Otherwise enjoy reading the insights below (DOI’s link to originals which may be behind a paywall, freely accessible versions are provided where available). Some papers are quite short, and have been selected for the topic they discuss rather than the quality of the content.

Twenty dirty tricks to train software engineers by Ray Dawson

A classic paper from Ray Dawson in the department of Computer Science at Loughborough University describing dirty tricks they use to introducing the frustrating realities of a software engineering development to students.

“Many employers find that graduates and sandwich students come to them poorly prepared for the every day problems encountered at the workplace. Although many university students undertake team projects at their institutions, an education environment has limitations that prevent the participants experiencing the full range of problems encountered in the real world. To overcome this, action was taken on courses at the Plessey Telecommunications company and Loughborough University to disrupt the students’ software development progress. These actions appear mean and vindictive, and are labeled ‘dirty tricks’ in this paper, but their value has been appreciated by both the students and their employers. The experiences and learning provided by twenty ‘dirty tricks’ are described and their contribution towards teaching essential workplace skills is identified. The feedback from both students and employers has been mostly informal but the universally favourable comments received give strong indications that the courses achieved their aim of preparing the students for the workplace. The paper identifies some limitations on the number and types of ‘dirty tricks’ that can be employed at a university and concludes that companies would benefit if such dirty tricks were employed in company graduate induction programmes as well as in university courses.”

Identifying student misconceptions of programming by Lisa Kaczmarczyk et al

This paper by Lisa Kaczmarczyk et al (formerly University of California, San Diego) recently came top of the ACM SIGCSE Top Ten Symposium Papers of All Time. In Lisa’s own words from the reinventing nerds podcast “The paper is sharing the results of a research study about misconceptions that novice computer science students have. Computer science is also a very abstract topic and the mistakes that students make are often baffling. The paper reports on the misconceptions that students have and why they have them. It’s important because this paper was the first to apply rigorous research methods to investigating misconceptions.” From the abstract:

“Computing educators are often baffled by the misconceptions that their CS1 students hold. We need to understand these misconceptions more clearly in order to help students form correct conceptions. This paper describes one stage in the development of a concept inventory for Computing Fundamentals: investigation of student misconceptions in a series of core CS1 topics previously identified as both important and difficult. Formal interviews with students revealed four distinct themes, each containing many interesting misconceptions. Three of those misconceptions are detailed in this paper: two misconceptions about memory models, and data assignment when primitives are declared. Individual misconceptions are related, but vary widely, thus providing excellent material to use in the development of the CI. In addition, CS1 instructors are provided immediate usable material for helping their students understand some difficult introductory concepts.”

Stride in BlueJ – Computing for All in an Educational IDE by Michael Kölling et al

This paper by Michael Kölling et al describes an Integrated Development Environment (IDE) that combines the best features of visual programming languages (blockly, scratch etc) with text-based programming (such as Python, Java, C etc) for use in BlueJ.org.

“In introductory programming teaching, block-based editors have become very popular because they offer a number of strong advantages for beginning programmers: They avoid many syntax errors, can display all available instructions for visual selection and encourage experimentation with little requirement for recall. Among proficient programmers, however, text-based systems are strongly
preferred due to several usability and productivity advantages for expert users. In this paper, we provide a comprehensive introduction to a novel editing paradigm, frame-based editing – including design, implementation, experimentation and analysis. We describe how the design of this paradigm combines many advantages of block-based and text-based systems, then we present and discuss an implementation of such a system for a new Java-like language called Stride, including the results of several evaluation studies. The resulting editing system has clear advantages for both novices and expert programmers: It improves program representation and error avoidance for beginners and can speed up program manipulation for experts. Stride can also serve as an ideal stepping stone from
block-based to text-based languages in an educational context.”

  • Kölling, Michael; Brown, Neil C. C.; Hamza, Hamza; McCall, Davin (2019). “Stride in BlueJ — Computing for All in an Educational IDE”: Proceeding SIGCSE ’19 Proceedings of the 50th ACM Technical Symposium on Computer Science Education 63–69. DOI:10.1145/3287324.3287462

Ten quick tips for teaching programming by Neil Brown and Greg Wilson

This short paper from Neil Brown at King’s College London and Greg Wilson of software carpentry fame, is part of the popular Public Library of Science (PLOS) Ten Simple Rules series. The tips capture some ongoing research in listicle format.

“Research from educational psychology suggests that teaching and learning are subject-specific activities: learning programming has a different set of challenges and techniques than learning physics or learning to read and write. Computing is a younger discipline than mathematics, physics, or biology, and while there have been correspondingly fewer studies of how best to teach it, there is a growing body of evidence about what works and what doesn’t. This paper presents 10 quick tips that should be the foundation of any teaching of programming, whether formal or informal.

These tips will be useful to anyone teaching programming at any level and to any audience.”

How to Involve Students in FOSS Projects by Heidi Ellis et al

Initiatives like Google Summer of Code (GSoC) and Git going in FOSS aim to get students involved in Free and Open Source Software (FOSS) projects, through paid work and online tutorials. Some courses use FOSS projects to teach software engineering, though these are fairly unusual. How can we get more students (and teachers) involved in FOSS projects? This paper by Heidi J. C. Ellis provides some guidance

“Software projects are frequently used to provide software engineering students with an understanding of the complexities of real-world software development. Free and Open Source Software (FOSS) projects provide a unique opportunity for student learning as projects are open and accessible and students are able to interact with an established professional community. However, many faculty members have little or no experience participating in an open source software project. In addition, faculty members may be reluctant to approach student learning within such a project due to concerns over time requirements, learning curve, the unpredictability of working with a “live” community, and more. This paper provides guidance to instructors desiring to involve students in open source projects.”

  • Ellis, Heidi J. C.; Hislop, Gregory W.; Chua, Mel; Dziallas, Sebastian (2011). “How to involve students in FOSS projects” Frontiers in Education Conference (FIE) DOI:10.1109/FIE.2011.6142994 (ironically, if there is an open access version of this paper, I can’t find it! Another nominee for the Open Access Irony Awards)

A methodology for using GitLab for software engineering learning analytics by Julio César Cortés Ríos et al

This paper by Julio César Cortés Ríos at the University of Manchester describes using GitLab to analyse and improve courses.

“To bridge the digital skills gap, we need to train more people in Software Engineering techniques. This paper reports on a project exploring the way students solve tasks using collaborative development platforms and version control systems, such as GitLab, to find patterns and evaluation metrics that can be used to improve the course content and reflect on the most common issues the students are facing. In this paper, we explore Learning Analytics approaches that can be used with GitLab and similar tools, and discuss the challenges raised when applying those approaches in Software Engineering Education, with the objective of building a pipeline that supports the full Learning Analytics cycle, from data extraction to data analysis. We focus in particular on the data anonymisation step of the proposed pipeline to explore the available alternatives to satisfy the data protection requirements when handling personal information in academic environments for research purposes.”

Scaling Introductory Courses Using Undergraduate Teaching Assistants

Teaching computer science to large classes requires typically requires armies of teaching assistants, demonstrators. Your TA’s need to know their stuff and should be able to deal with students in a fair and consistent way. This paper is a medley of opinions from Jeffrey Forbes at Duke University, David Malan from Harvard University, Heather Pon-Barry from Mt. Holyoke College, Stuart Reges from the University of Washington and Mehran Sahami from Stanford University.

“Undergraduates are widely used in support of Computer Science (CS) departments’ teaching missions as teaching assistants, peer mentors, section leaders, course assistants, and tutors. Those undergraduates engaged in teaching have the opportunity to deeply engage with CS concepts and develop key communication and social competencies. As enrollments surge, undergraduate teaching assistants (UTAs) play a larger role in student experience and outcomes. While faculty and graduate student instructional support does not necessarily increase with the number of students in our courses, the number of qualified undergraduate teaching assistants for introductory CS courses should scale with the number of students in our courses. With large courses, the significance of the UTAs’ role in students’ learning likely also increases. Students have relatively little interaction with the instructor, and faculty may have more challenges monitoring and supporting individual UTAs. UTAs have a major role in affecting climate in computer science courses. The climate in large courses has substantial implications for students from groups traditionally underrepresented in computing. This panel will discuss how undergraduate teaching assistants can serve as a scalable effective teaching resource that benefits both the students in the course and the UTAs themselves.”

What Are We Doing When We Teach Computing & Programming by Sally Fincher

Two related papers by Sally Fincher at the University of Kent, the first published in 1999…

“The academic discipline of computer science uniquely prepares students for future study by teaching the fundamental construct of its practice-programming- before anything else. The disciplinary argument seems to run that if a student is not versed in the practicalities, then they cannot appreciate the underlying concepts of the discipline. This may be true. However an analogous simulation would be if it were thought necessary for architecture students to be taught bricklaying before they could appreciate the fundamentals of building design. This argument is clearly flawed when compared to endeavours such as the study of English Literature, which makes no claim to teach the practice of producing work before the study of the products of others work. It is possible that this is an argument of disciplinary maturity-that all disciplines have passed through a similar phase. This paper examines the emergent approaches being defined, all of which address the central concern of the teaching of programming and its relationship to the learning of computer science. It examines: the “syntax-free” approach of Richard Bornat and Russel Shackelford, the “problem-solving” approach of David Barnes (et al.), the “literacy” approach of Peter Juliff and Owen Astrachan and the “computation-as-interaction” approach of Lynn Andrea Stein. These approaches are discussed both in their own terms, and also placed in a preliminary taxonomic framework for the teaching of programming.”

….and the second published in 2015 (see comments on Mark Guzdial’s summary):

“Research on the cognitive, educational, and policy dimensions of teaching computing is critical to achieving “computer literacy.”

Making CS Learning Visible: Case Studies on How Visibility of Student Work Supports a Community of Learners in CS Classrooms by Amber Solomon et al

This is a paper by Amber Solomon et al from the Innovation and Technology in Computer Science Education (ITiCSE) conference is about reducing defensive and competitive (macho?) cultures in Computer Science  (via Mark Guzdials blog).

Modern learning theories emphasize the critical social aspect of learning. Computer science (CS) classrooms often have “defensive climates” that inhibit social learning and prevent the development of a community of learners. We believe that we can improve the social context of computer science learning by expanding CS learning beyond the single student in front of a display screen. Our theory is that the single student and single display inhibits collaboration and collaborative awareness of student work. In this paper, we present two case studies where we explored ways to make student work visible to peers. The first case study involved using a studio model for learning enabled by projection-based Augmented Reality (AR), and the second case study involves using a maker-oriented curriculum to make student work visible. Findings suggest the visibility of student work in CS classrooms helped support a community of learners: students collaborated, used each other as sources of inspiration, and felt more comfortable asking for help.

References and notes

*”You do not talk about Journal Club” is an adapted quote from the 1999 film Fight Club, see below. I’m only joking, you are of course welcome to talk to anyone who will listen about Journal Club.

Talking of David Malan, you can see his talk on making CS50 scale when he visited Manchester in 2017

Blog at WordPress.com.