Category Archives: Research

Critical questions for computer science education research

Over the past two years, we have seen wholesale reform of computing (and more specifically, computer science) education in the UK. In England from September 2014, a new national curriculum subject Computing, with a challenging and aspirational programme of study (“A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world.”) will replace ICT; in Scotland, we see Computing Science forming part of their Curriculum for Excellence; in Wales, September’s review of the ICT curriculum is shaping the ongoing Curriculum for Wales review; along with burgeoning activity in Northern Ireland.

While there is a large corpus of computing education research, along with national and international policy reports, such as the ACM/CSTA’s Running on Empty (2010), the Royal Society’s Shut down or restart? report (2012) and ACM Europe’s informatics education report (2013), there still remain a number of critical questions in computer science education. The recent announcement of the UK Forum for Computing Education provides an opportunity to support this important research agenda. Further to a group discussion led by members of the CSTA at a recent ACM Education Council meeting, the following list of questions cover a breadth of issues and reflect the deep need for further research-grounded solutions to the issues we face.

  • What are the indicators of incoming student success in introductory level computer science in colleges and universities?
  • Does computer science learning in schools contribute to success/improvement in other disciplines, especially mathematics and science?
  • What is the link between age/educational development and the potential to learn and master computer science concepts?
  • Are there issues of ergonomics in the introduction of computing devices with young children?
  • Is there a link between previous mathematics learning and success in computer science at school level?
  • What are the major factors that lead to students making early choices not to pursue computer science?
  • What is the role of informal education programs in scaffolding learning in computer science, especially in communities where access to computer science learning in school is limited?
  • What are the potential benefits and drawbacks of MOOCs in school student learning?
  • What are the potential benefits and drawbacks of MOOCs for the professional development of computer science teachers?
  • What models professional development are most effective for improving teacher mastery of computer science concepts and pedagogy?
  • What are the impacts of current efforts to market computer science to students?
  • To what extent do poverty and lack of home access to computer science tools impact computer science performance and or interest in school?
  • Do one-to-one devices per child programs have any impact on computer science interest or performance?
  • What are the major factors in computer science teacher retention?
  • What is required to increase the availability of teacher preparation programs for computer science teachers?
  • What is the impact of transitioning the the content of teacher preparation courses in “educational technology/AV” to a focus on computational thinking across STEM?
  • What is the ideal balance between content knowledge learning and pedagogical learning in computer science teacher preparation and alternative certifications?
  • Do hybrid programs (educators and volunteer partnerships) improve student access to rigorous computer science courses and increase the pool of well-prepared computer science teachers?

Which of these do you think is most important? And what is missing? (the questions are listed in no particular order and have been labelled alphabetical for easy referencing in the comments)

Tagged , , , ,

Paper at AI-2013: “‘The First Day of Summer’: Parsing Temporal Expressions with Distributed Semantics”

In December, my PhD student Benjamin Blamey presented a joint paper entitled: ‘The First Day of Summer’: Parsing Temporal Expressions with Distributed Semantics at AI-2013, the 33rd SGAI International Conference on Artificial Intelligence in Cambridge.

If you do not have institutional access to SpringerLink, especially the Research and Development in Intelligent Systems series, you can download our pre-print. The abstract is as follows:

Detecting and understanding temporal expressions are key tasks in natural language processing (NLP), and are important for event detection and information retrieval. In the existing approaches, temporal semantics are typically represented as discrete ranges or specific dates, and the task is restricted to text that conforms to this representation. We propose an alternate paradigm: that of distributed temporal semantics –- where a probability density function models relative probabilities of the various interpretations. We extend SUTime, a state-of-the-art NLP system to incorporate our approach, and build definitions of new and existing temporal expressions. A worked example is used to demonstrate our approach: the estimation of the creation time of photos in online social networks (OSNs), with a brief discussion of how the proposed paradigm relates to the point- and interval-based systems of time. An interactive demonstration, along with source code and datasets, are available online.

(see Publications)

Tagged , , , , ,

Grant applications, early 20th century style


Facsimile of a research proposal submitted by Otto Warburg to the Notgemeinschaft der Deutschen Wissenschaft (Emergency Association of German Science), c.1921.

The application, which consisted of a single sentence, “I require 10,000 marks“, was funded in full.

(read the full Nature Reviews Cancer article)

Tagged , ,

2014 Software Sustainability Institute Fellowship


I’m delighted to have been named today as one of the sixteen Software Sustainability Institute Fellows for 2014.

The Software Sustainability Institute (SSI) is an EPSRC-funded project based at the universities of Edinburgh, Manchester, Oxford and Southampton, and draws on a team of experts with a breadth of experience in software development, project and programme management, research facilitation, publicity and community engagement. It’s a national facility for cultivating world-class research through software, whose goal is to make it easier to rely on software as a foundation of research; see their manifesto. The SSI works with researchers, developers, funders and infrastructure providers to identify the key issues and best practice surrounding scientific software.

During my fellowship, I’m particularly keen to work closely with Software Carpentry and Mozilla Science Lab to highlight the importance of software skills across the STEM disciplines. I’m also interested in a broader open science/open computation agenda; see the Recomputation Manifesto and the recently established project.

More to follow in 2014!

Tagged , , , , , , ,

Colloquial definitions of Big, Open and Personal Data

Here’s a useful (draft) set of colloquial definitions for Big, Open and Personal Data on GitHub from the Open Data Institute.

Why is this a worthwhile exercise? Well, Open Data gets conflated with Personal Data, everyone talks about Big Data (yet no-one is exactly sure what it is, but many have tried to define it)…and we all should be concerned about Personal Data.


1. Big Data is (i) data that you cannot handle with conventional tools or (ii) a term used as a vague metaphor for solving problems with data.

2. Open Data is data that anyone can use; without legal, technical or financial barriers.

3. Personal Data is data derived from people, where you can distinguish a person from other people in the group.

(also, can Big Open Personal (BOP) Data exist?)

Tagged , , , , ,

A set of top Computer Science Education blogs

Further to my most-read blog post (from May 2012: A set of top Computer Science blogs, 80,000 hits and counting), here’s a follow-up: blogs on computer science education.

As before, instead of a list, it more closely resembles a set: the order is irrelevant and there are no duplicate elements; membership of this set of blogs satisfies all of the following conditions:

  1. they focus on computer science education (research, policy and practice);
  2. they are of consistently high quality;
  3. I regularly read them.
  • Computing Education Blog by Mark Guzdial (@guzdial)

    Mark is a professor in the School of Interactive Computing at Georgia Institute of Technology and a researcher in computing education. His blog is about how people come to understanding computing, and how to facilitate that understanding, cross-cutting research, policy, practice and wider societal issues. And while it is US-focused (as you would expect), it is an excellent venue for the discussion of key topics in computer science education.

  • Teach Computing by Alan O’Donohoe (@teknoteacher)

    Alan is a busy chap: as well as being principal teacher of Computing at Our Lady’s High School in Preston, he’s the founder of both Hack To The Future and Raspberry Jam, the global community of events for everyone to discover the wonders of the Raspberry Pi. His blog tracks his five-year computing journey: from improving classroom practice (listen to his Teach Computing podcasts), contributing back to the community as a CAS Master Teacher, to shaping the development of a new curriculum subject in England.

  • Miss Philbin’s Teaching and Learning Journal by Carrie Anne Philbin (@MissPhilbin)

    Carrie Anne is an award-winning secondary teacher at Robert Clack School in Essex and a passionate advocate for women in technology. She is the creator of Geek Gurl Diaries, a YouTube web series for teenagers who want to be makers and creators of technology (which recently won a Talk Talk Digital Hero Award) and vice-chair of the CAS initiative #include to address diversity issues in computing. Her blog also covers the gamut of classroom practice, the transition from ICT to computing, supporting the wider community, to shaping policy in England.

  • Academic Computing by Neil Brown (@twistedsq)

    Neil is a research associate in the Programming Languages and Systems Group at the University of Kent, working on the BlueJ and Greenfoot projects. He writes thought-provoking pieces on topics spanning computing (and more broadly, STEM) education, programming and socio-technical issues. He also has a second blog on learning and applying mathematics through computing: The Sinepost.

  • An Open Mind by Miles Berry (@mberry)

    Miles is a principal lecturer and the subject leader for Computing Education at the University of Roehampton. He sits on the boards of both CAS and Naace, with wide experience of curriculum development in the UK. His blog, a personal perspective on education, technology and culture, covers a range of interesting pieces on computer science and programming pedagogy, CPD and agile practice.

  • Computer Science Teacher by Alfred Thompson (@alfredtwo)

    Alfred is a high school computer science teacher in New Hampshire, having previously been the K-12 Computer Science Academic Relations Manager for Microsoft and a software developer for 18 years. He currently sits on the board of the Computer Science Teachers Association. His blog covers a wide range of topics, including computer science and programming pedagogy, curriculum development and US education policy.

  • Knowing and Doing: reflections of an academic and computer scientist by Eugene Wallingford (@wallingf)

    Eugene is an associate professor and head of the Department of Computer Science at the University of Northern Iowa. He has been blogging since 2004 on topics across computing, software development, higher education, learning and teaching, as well as managing and leading.

  • Raspberry Pi Blog by the Raspberry Pi Foundation (@Raspberry_Pi)

    These guys need no introduction, especially after the two millionth Raspberry Pi was sold in October! With the huge success and penetration of the Raspberry Pi over the past two years, the platform now exists for the Foundation to fulfil its wider educational objectives. A diverse blog, ranging from technical posts, peripherals and resources, to superb examples of innovative uses of the Raspberry Pi.

  • CSTA Blog by the Computer Science Teachers Association (@csteachersa)

    The Computer Science Teachers Association is a membership organisation (free to join), supported by the ACM, that promotes and supports the teaching of computer science and other computing disciplines in the US, providing opportunities for K–12 teachers and students to better understand the computing disciplines and to more successfully prepare themselves to teach and learn. Its blog covers a wide range of topics across computer science education, programming, curriculum design and education policy,

  • CAS Online by Computing At School (@CompAtSch)

    Computing At School is a membership organisation (also free to join), supported by the BCS, that promotes and supports the teaching of computer science in UK schools. Formed in 2008, it now has over 7000 members from across schools, colleges, universities, industry and government and is the subject association for computer science. Along with numerous high-quality articles in the quarterly CAS newsletter, Switched On, CAS Online provides the UK computer science education community with a wide range of forums, events, policy discussions, consultations and a veritable wealth of resources to support learning and teaching.

This set is most definitely incomplete — please post your computer science education blog recommendations in the comments below. You can also read some of my posts on computer science education.

Tagged , , , , , , , , , , , , , , , , ,

Ten Simple Rules for Reproducible Computational Research

In a paper published last week in PLoS Computational Biology, Sandve, Nekrutenko, Taylor and Hovig highlight the issue of replication across the computational sciences. The dependence on software libraries, APIs and toolchains, coupled with massive amounts of data, interdisciplinary approaches and the increasing complexity of the questions being asked are complicating replication efforts.

To address this, they present ten simple rules for reproducibility of computational research:

Rule 1: For Every Result, Keep Track of How It Was Produced

Rule 2: Avoid Manual Data Manipulation Steps

Rule 3: Archive the Exact Versions of All External Programs Used

Rule 4: Version Control All Custom Scripts

Rule 5: Record All Intermediate Results, When Possible in Standardized Formats

Rule 6: For Analyses That Include Randomness, Note Underlying Random Seeds

Rule 7: Always Store Raw Data behind Plots

Rule 8: Generate Hierarchical Analysis Output, Allowing Layers of Increasing Detail to Be Inspected

Rule 9: Connect Textual Statements to Underlying Results

Rule 10: Provide Public Access to Scripts, Runs, and Results

The rationale underpinning these rules clearly resonates with the work of the Software Sustainability Institute: better science through superior software. Based at the universities of Edinburgh, Manchester, Oxford and Southampton, it is a national facility for cultivating world-class research through software (for example, Software Carpentry). An article that caught my eye in July was the Recomputation Manifesto: computational experiments should be recomputable for all time. In light of the wider open data and open science agenda, should we also be thinking about open software and open computation?

Tagged , , , , , , ,

“We Are Sorry to Inform You…”

How much damage could be caused by a peer reviewer having a bad day? You only have to have a look through the list of Turing Award winners (or some of the top cited papers in computer science) to see that, given the current standards for reviewing, many of those papers would never have been published. As highlighted in this CACM article, they would have come up against journal reviewers who would have rejected such works, considering them too speculative or theoretical. More specifically for UK academics, how many of them would be REF returnable?

Even if you have had a paper brutally rejected, enjoy these fictitious reviews (also here) of seminal papers in computer science, including work from Turing, Hoare, Dijkstra and Shannon. For example:

On Computable Numbers, with an Application to the Entscheidungsproblem

This is a bizarre paper….If the article is accepted, Turing should remember that the language of this journal is English and change the title accordingly.

Tagged , ,

CAS paper at SIGCSE’13: “Bringing Computer Science Back Into Schools: Lessons From The UK”

Further to the previous CAS papers, Neil Brown (University of Kent) presented a paper entitled: Bringing Computer Science Back Into Schools: Lessons From The UK at SIGCSE’13, the 44th ACM Technical Symposium on Computer Science Education, in Denver in March.

The paper is available to download for free via the ACM Author-ize service below; you can also listen to Neil’s voice-over of the presentation slides. The abstract is as follows:

Computer science in UK schools is a subject in decline: the ratio of Computing to Maths A-Level students (i.e. ages 16–18) has fallen from 1:2 in 2003 to 1:20 in 2011 and in 2012. In 2011 and again in 2012, the ratio for female students was 1:100, with less than 300 female students taking Computing A-Level in the whole of the UK each year. Similar problems have been observed in the USA and other countries, despite the increased need for computer science skills caused by IT growth in industry and society. In the UK, the Computing At School (CAS) group was formed to try to improve the state of computer science in schools. Using a combination of grassroots teacher activities and policy lobbying at a national level, CAS has been able to rapidly gain traction in the fight for computer science in schools. We examine the reasons for this success, the challenges and dangers that lie ahead, and suggest how the experience of CAS in the UK can benefit other similar organisations, such as the CSTA in the USA.

ACM DL Author-ize service

Neil C. C. Brown, Michael Kölling, Tom Crick, Simon Peyton Jones, Simon Humphreys, Sue Sentance
SIGCSE ’13 Proceeding of the 44th ACM Technical Symposium on Computer Science Education, 2013

(see Publications)

Tagged , , ,