The overall aim of the Flip project is to explore a novel way of helping young people learn how to program, while at the same time fostering their computational thinking skills. The concept of computational thinking skills is fairly recent. Although it comes from computer science, it describes a set of skills that are used in everyday life: making and carrying out a plan; sorting into categories; thinking in terms of the abstract rather than the concrete, etc. The importance of computational thinking is increasing, and it is recognised as an important part of many jobs, vocations and academic disciplines. Being able to think like a computer scientist has allowed for new, and sometimes revolutionary, advances in fields as diverse as law, biology, and the arts.As important as computational thinking skills may be, little research has been carried out on how to support them. Furthermore, the difficulties that many people experience when learning to program has led to a recent move to teach computational thinking without teaching programming, and it's not yet clear whether this is a positive move or not.The goal of the Flip project is to bring together programming and computational thinking within the context of game creation. Previous research suggests that young people find the creation of games to be highly motivating. Young people willingly engage in game creation as a leisure activity, and will spend many hours acquiring complex skills, including interactive storytelling, creating compelling game play sequences, and the creation and manipulation of multiple forms of media, including graphics and sound. However, one of the activities young people find most difficult in commercial game creation environments is the programming that is required in order to make their games interactive. The programming languages included in such environments were not designed for young people, nor were they designed to support people more generally as they learn to program. Therefore, we propose to design a programming language which will allow young people to create simple programs in two ways: using textual input, which is similar to the way they naturally express their story ideas when talking about them to others, and using graphical input, which includes the use of icons and colour to highlight the computational structures within the program. The language will be integrated within a commercial game creation toolkit which allows young people to create sophisticated role-playing games with a professional feel, which is in itself very motivating.The first stage of the project will be to work with a group of young people to determine how they naturally express their story ideas when creating a game. We will use this information in designing the textual component of the language, and will create successively sophisticated versions of the language, getting input from our target users at each stage. We will also work with these users to develop the graphical component of the language, and get their input on the ease of use of various graphical systems in helping them as they learn to program and develop computational thinking skills.Following this, we will look at ways of measuring computational thinking skills. Although there has been much talk of what computational skills are, there has been less discussion on how to measure these skills, and work is needed in this area to develop effective assessments, which will be of use both to this project, and more broadly.Finally, we will test the language in an empirical study designed to determine whether the language does in fact help young people to develop firstly, their programming skills and secondly, the associated higher level computational thinking skills. Additional questions we would like to answer are whether the graphical and textual components are used in different ways, and/or for different tasks.
|