p. 1
june 2009 editor john woollard school of education university of southampton contributors liz crane head of ict oaklands roman catholic school waterlooville hampshire claire johnson head of ict westgate school winchester hampshire emma wright head of ict computer science harvey grammar school folkestone kent contributors from the cas working group roger broadie roger boyle luke church paul curzon roger davies nick efford mandy honeyman simon humphreys michael kölling jack lang thomas ng simon peyton-jones aaron sloman john woollard and emma wright.
[close]
p. 2
sample teaching unit computer programming pgce secondary information technology school of education university of southampton this course prepares you to teach ict it and computing to all ages and abilities in secondary school key stages 3 and 4 with planned opportunities for enrichment in post-16 contexts there is an emphasis placed upon internet-mediated learning the development and use of web based-materials and the increasing development of computing in key stage 3 and 4 the course is open to graduates of a computer related degree or those with substantial teaching/training in the computer field the course aims to prepare you for the ever-changing world of school based computing and the use of ict across the curriculum all trainees must start with a good knowledge and understanding of the functions of word processing spreadsheets database management systems presentation software and web page authoring the course relies upon proficient usage the course itself focuses upon the role of ict and computing in the classroom teaching and learning theory moral and social issues arising from the widespread use of computers and of course the teaching of the ict national curriculum and examination gcse gnvq gce dida avce 14-19 diploma in related subjects for the pgce in information technology go to http www.pgce.soton.ac.uk/it for personal contact email your request to pgce@soton.ac.uk for all other subjects including english mathematics science geography history modern foreign languages music re and pe email educate@soton.ac.uk train to teach 2/40
[close]
p. 3
sample teaching unit computer programming introduction this document illustrates how the yearly objectives from the framework for teaching ict capability years 7 8 and 9 can be grouped together and taught in a way that promotes and utilises knowledge and understanding of computing programming is a core activity of computing because it enables the user to access and release the potential of the computer they are using computer programming can be likened to playing chess although there is a relatively small set of simple rules it is the strategic and sustained application of those rules that can create interesting games between children or intellectual fights between grand masters the same with programming the first applications of the rules can produce the interesting results fun play on graphics numbers or words but there is no boundary preventing the learner moving all the way to being the grand master of computer programs once you can do it the sky s the limit over what you can make computers do the following texts are direct quotes from the 2008 revision of the national curriculum for ict and they relate directly to programming activities capability using a range of ict tools in a purposeful way to tackle questions solve problems and create ideas and solutions of value developing ideas pupils should be able to test predictions and discover patterns and relationships exploring evaluating and developing models by changing their rules and values use ict to make things happen by planning testing and modifying a sequence of instructions recognising where a group of instructions needs repeating and automating frequently used processes by constructing efficient procedures that are fit for purpose pupils should be able to review modify and evaluate work as it progresses reflecting critically and using feedback scope the information flow represent a system and identify all its parts including inputs outputs and the processes used processes could include manipulating data or information developing an ict-based model to meet particular needs this should involve testing predictions and discovering relationships exploring evaluating and developing models by changing their rules and values the aim of the group computing at school http www.computingatschool.org.uk and this document is to promote the principles of computing into the key stage 3 curriculum this document also celebrates through using them as example scenarios the work of teachers currently engaged in teaching programming to pupils particular thanks go to the staff and pupils of harvey grammar school oaklands rc school and westgate school contents rationale for computer programming in the key stage 3 curriculum 4 aspects of programming 6 ict sample teaching units some scenarios 9 scenario 1 computer programming using alice 12 scenario 2 greenfoot and game design 18 scenario 3 programming with visual basic 26 scenario 4 a game business using game maker 34 scenario 5 a thinking machine 37 scenario 6 developing a key stage 3 computing curriculum 38 references 39 appendix 1 level descriptors for the national curriculum ict 2008 40 3/40
[close]
p. 4
sample teaching unit computer programming rationale for computer programming in the key stage 3 curriculum in this basic example pupils are introduced to the concept of sequencing instructions that will be followed by the computer to control the lights at a pedestrian/cyclist crossing toucan if input 1 on then switch off 3 [traffic green light switch on 2 [traffic amber light wait 3 switch off 2 [traffic amber light switch on 1 [traffic red light wait 2 switch off 4 [pedestrian/cyclist red light switch on 5 [pedestrian/cyclist green light wait 20 switch off 5 [pedestrian/cyclist green light switch on 4 [pedestrian/cyclist red light wait 5 switch on 2 [traffic amber light wait 5 switch off 1 [traffic red light switch off 2 [traffic amber light switch on 3 [traffic green light endif http www.direct.gov.uk/en travelandtransport/highwaycode this type of program is just a plan-of-action a machine can follow and everything the computer does is based upon the plan-of-action there are different ways in which computer programming can be approached there are different forms that computer programs can take and there are different resources/software available to create programs in particular forms the program procedure above is called whenever the button input 1 is pressed whenever a pedestrian walks up to the crossing and presses the button even a simple sequence of events such as this can introduce the pupils to the vocabulary of programming such as sequence algorithm input output command operator operand condition the first example is an imperative high level third generation approach to programming common in schools in the form of flowol logo basic etc and is being replaced in commercial computing by object orientated programming oop exemplified by java greenfoot scratch etc and declarative languages exemplified in schools by prologue why teach programming we believe that teaching programming is important for two core reasons firstly it is a form of digital literacy that is of growing importance within society and secondly it promotes intellectual development and the development of generic skills in a way that is applicable to many other subjects and in many other areas of life programming as digital literacy computers are now instrumental to our society and the need for pupils to attain a form of `digital literacy is now generally accepted this is currently interpreted as the need to be able to use standard applications such as office-type software within a windows environment interface proficiently we agree that this is important 4/40
[close]
p. 5
sample teaching unit computer programming however the use of computers is changing rapidly they are now as much mechanisms for social communication as they are office tools as this connectivity expands to every aspect of our lives the ability to exercise control over the information becomes crucial controlling information is one of the fundamental skills of programming if students master this skill they will be able to engage successfully not just with today s applications but also with uses of technology that have yet to be devised academic support for this comes from church and whitten 2009 and blackwell s attention investment 1999 programming offers the ability to create new uses for computers whereas a competence in office-type software allows the production of new documents programming allows the creation of new behaviours rather than just the consumption of behaviours provided for us by others wing 2006 argues really what is involved is the act of `computational thinking which is fundamental to many branches of both art and science computer programming is carried out by many people and is a hobby pastime leisure pursuit interest diversion relaxation for our pupils it could be a way of enabling them to enjoy and achieve an aim of the every child matters agenda http www.everychildmatters.gov.uk/aims in some senses computer programming itself is one of the best computer games of all in the `computer programming game there are obvious goals and it s easy to generate more the `player gets frequent performance feedback that is in fact often tantalizingly misleading about the nearness of the goal the game can be played at many different difficulty levels and there are many levels of goals available both in terms of the finished product whether it works how fast it works how much space it requires etc and in terms of the process of reaching it how long it takes to program etc self-esteem is crucially involved in the game and there is probably the occasional emotional or fantasy aspects involved in controlling so completely yet often so ineffectively the behaviour of this responsive entity finally the process of debugging a program is perhaps unmatched in its ability to raise expectations about how the program will work only to have the expectations surprisingly disappointed in ways that reveal the true underlying structure of the program malone 1980 computer programming is also a vocational pursuit and may enable our pupils to achieve economic wellbeing another aim of every child matters pupils discovering their proficiency in handling syntax algorithm logic and analysis may find they can enter an industry in which those skills are highly valued this teaching resource is designed to bring computer programming to every pupils experience because it contributes in a powerful way to their ability to learn conceptualise and understand computer programming is a subset of the computing curriculum and together with other knowledge experience skills and understanding of computing it exercises skills that are valuable in other aspects of learning work and leisure it also gives an insight into why computers behave as they do and therefore puts an understanding into the ict curriculum hence programming enables pupils to enjoy and achieve develop a useful skill and experience a powerful way to learn conceptualise and understand the next section identifies six aspects of programming that bring wider benefits to the way pupils think and learn commentary i d add that programming is a tremendous motivator for students because it makes computers `come alive and `dance to their tune maybe the language of computational thinking belongs here one way to put it is this is `programming makes abstraction concrete `abstraction is a tremendously powerful idea that we use again and again but it is by definition abstract programming gives tangible concrete form to the act of abstraction and repeatedly shows how useful it is you don t have to say `we re going to learn about abstraction you just do it repeatedly and then afterwards say `look at the common pattern that we have used over and over simon peyton-jones teaching programming for cognitive benefits teaching this key skill of computational thinking through teaching programming allows pupils to develop a new cognitive tool 5/40
[close]
p. 6
sample teaching unit computer programming aspects of programming this analysis of the pedagogic value of programming identifies 6 important areas accuracy of expression understanding algorithm visual representation of concepts and procedures the analysis of situations and structure and the use of logic accuracy of expression through computer programming we can insist upon and importantly demonstrate the need for accuracy and precision in what we do at the character level it is akin to spelling in the english curriculum color and colour are significantly different to change the colour of text to red use
[close]
p. 7
sample teaching unit computer programming for many years there have been interactive programming development environments including several developed by artificial intelligence researchers as well as others that support incremental development and testing and are perfectly capable of giving sensible feedback if the programmer makes a trivial mistake for example and allowing the programmer e.g a learner to find out what went wrong correct it and continue without having to start all over again of course deep mistakes where your program runs but does the wrong thing are another matter experiencing that is an important form of education having devices that prevent all such errors is the last thing we need in our educational environments aaron sloman to me programming at that stage [key stage 2 is a way of exploring the virtual world it s practical mathematics theory is fine but it needs a base of experience to build on and be relevant i still remember the thrill of writing a program that actually eventually did something even if only to print hallo world jack lang algorithm algorithm can be considered a sequence of instructions a finite set of commands or a method of working algorithm can be considered synonymous with program but algorithm encompasses the whole domain of carrying out instructions in a predefined and accurate way algorithm is to computer program as writing is to story it is not limited to programming however through computer programming pupils can gain a better understanding of the value of predefined sequences of action to more efficiently and effectively achieve an outcome two initial definitions for pupils are an algorithm is a sequence of instructions to be carried out until an end point is reached algorithm is the rules conditions or sequence by which the computer or people tackle a problem or situation other keywords to be used when discussing algorithm are steps instructions commands sequence flow decisions branches jumps if then conditional if then else true false repeat until condition iteration algorithm takes many forms it can be the rules by which you drive a car it can be the way in which you eat from a buffet it can be the way in which you carry out a science procedure you are approaching a traffic queue which lane do you take always going to the shortest line is a greedy algorithm you might consider the shortest queue but always err to the right because you think that the fastest drivers are there you may rely upon local knowledge of the road and queues and make different decisions in different places in a similar way we program the computers to obey a set of predetermined rules the algorithm visual representation the skills of visual representation of pupils understanding are acknowledged in many areas of the curriculum in english there is the story board in mathematics is the chart in science the symbolic representation of atomic and subatomic particles in geography is the map at different levels of scale and symbolism and in humanities are the icons of religion consumerism and politics in computing there are three distinct visual representations of what the computer is doing when running a program flow diagram dry run chart and the coding sheet each aids the computer programmer but also each is a tool that learners can apply in other areas of study to help them more efficiently and effectively represent their knowledge and understanding the following illustrates the different representations of making a cup of tea 7/40
[close]
p. 8
sample teaching unit computer programming analysis what are the principles of analysis of a situation to prepare for computer programming data structures science classification keys binary tree indexing/sequencing of shopping magazines car registration number plates logic the understanding and application of and or not in keyword searching electronic circuits logic circuits and truth tables etc as an alternative analysis roger broadie observes i believe ict has a unique contribution to offer in that it brings ways of thinking that are not provided for or by any other areas of the curriculum these ways of thinking certainly include and there may be others programming analysis of processes in order to produce complete and correct programs that will provide the desired result this is an important skill whether or not ict is involved interface design this is about human interactions with information and other humans and the ways in which information and the development of the interaction are presented to stimulate and guide the interaction other subjects touch on this but none with the depth and effectiveness that ict can information structuring this includes hierarchical relational and hyper-linked structures and while some of these are covered in say science with biological keys relational and hyper info structures can only be satisfactorily worked on with ict networked communication even simple examples such as how to use the asynchronous nature of email effectively are hardly covered in the english subject curriculum and where social networking is taking us most certainly is not language structure and semantics while this is shared with human language studies when they look at grammar there is a broad range of semantic structures used in programming languages that human language does not use data including coding of data data redundancy and issues around compression of data search and information validation while some of these might be beyond the school curriculum except for the brightest who specialise in ict i would maintain that the first four at least should be studied to some level by all as they are vital to how life and work will operate this century and ict as a separate subject is the way to do this 8/40
[close]
p. 9
sample teaching unit computer programming ict sample teaching units some scenarios the way in which computer programming can be introduced in the classroom is illustrated through scenarios these scenarios are not comprehensive in nature but illustrative of good and successful practice in uk schools each scenario is described by the opportunities to support particular forms of computer programming the outcomes of the pupils activities are described in terms of the attainment target levels alternative resources are also described the following sections are adopted directly from a sample teaching unit the ict framework recommends that schools offer one hour each week or 38 hours per year for discrete ict lessons the sample teaching units for a year if taught without amendment need less teaching time than 38 hours this leaves time for lessons of your own design at suitable points dfes 2002a now updated http nationalstrategies.standards.dcsf.gov.uk/secondary/secondaryframeworks/ictframework there is no requirement to use the dfes units but they have been adopted and adapted in many schools they normally contain sample lesson plans that you can amend to suit your local circumstances and the needs of your pupils this unit computer programming in key stage 3 is different in that it presents alternative scenarios that can be taught with one of several different resources the units contain outline plans for lessons of 60 minutes although the nature of the pupils their prior experience their aptitude to take on new ideas and the resources available will determine the rate by which pupils can progress through the activities the scenarios introduce some of the ict framework objectives for year 7 in the theme `developing ideas and making things happen the scenarios focus upon the national curriculum qca 2007 key processes of developing ideas communicating information and evaluating in particular the activities support curriculum requirements that pupils should be able to 2.2e use ict to make things happen by planning testing and modifying a sequence of instructions recognising where a group of instructions needs repeating and automating frequently used processes by constructing efficient procedures that are fit for purpose 2.3c use technical terms appropriately and correctly 2.4a review modify and evaluate work as it progresses reflecting critically and using feedback these statements are taken from the new national curriculum introduced in september 2008 to year 7 pupils reflecting critically could include self-review peer evaluation and user or audience feedback pupils should judge both the quality of their work and how effectively they have used ict in computer programming this can be reflected in the minimum use of code the fastest processing time or the shortest development time they use appropriate evaluation criteria to critically evaluate the fitness for purpose of their work as it progresses the curriculum offers the opportunity for the pupils to learn about efficiency of coding and algorithm and the need to add remarks/comments to aid future development aspects of control and monitoring are taught in both science and design and technology you might find it helpful to ask these departments what they have covered with pupils before you teach this unit you could then refer to the work pupils have done in these other subjects at appropriate points in the lessons for example pupils may have created sequences of instructions in control software the following statements are drawn from the dcsf publication assessing pupils progress in ict at key stage 3 dcsf 2008 they illustrate af2 handling data sequencing instructions and modelling at the different levels of attainment 9/40
[close]
p. 10
sample teaching unit computer programming level 3 level 4 level 5 level 6 level 7 10/40
[close]
p. 11
sample teaching unit computer programming level 8 11/40
[close]
p. 12
sample teaching unit computer programming scenario 1 computer programming using alice this unit is designed to introduce programming to pupils through the open source programming package alice http www.alice.org alice contains a library of images and backgrounds for pupils to use the tutorials referred to in this teaching unit are also accessible from within the software the unit is designed and used by emma wright head of ict computer science harvey grammar school folkestone kent alice is a tool that is designed to introduce programming concepts without the need to launch directly into learning code this project focuses upon the use and creation of events and methods that enable the user to create their own virtual world complete with animated characters a feature of this project is that it also introduces the pupil to problem solving techniques that will help them to progress their skills by breaking down problems using hierarchy charts stepwise refinement and a state transition diagrams see glossary this project covers 7 lessons which are approximately 50-60 minutes in duration and are structured as 1 introduction to alice vocabulary inputs processes outputs 2 creation of new methods hierarchy charts 3 events stepwise refinement 4/5/6 project design development evaluation 7 state transition diagrams presentation of work for display the activities and curriculum content are mapped against aspects of the national curriculum for ict 2007 national curriculum mapping 1.1a 1.1b 1.1c 1.2a 1.3a 1.3b 1.3c 1.4a 1.4b 1.5a 1.5b 2.1a 2.1b 2.1c 2.1d 2.2a 2.2b 2.2c 2.2d 2.2e 2.2f 2.3a 2.3b 2.3c 2.4a 2.4b 2.4c 3a 3b 3c 3d 3e 4a 4b 4c 4d 4e 4f 12/40
[close]
p. 13
sample teaching unit computer programming lesson number learning objective we are learning to walt learning outcomes what i am looking for wilf rationale this is because tib prerequisite skills of pupil and teacher and resources 1/7 know that a computer program is a series of instructions programmed in to automate a sequence to achieve a useful result know that an object can perform a process or a series of steps and that methods can be applied to an object know that a computer can change an array of inputs process them into something new understand that a process consists of working with a range of inputs which when processed create a given output how to apply methods to an object within a programming environment assessed deliverables completion of tutorial 4 tutorial 1 ipo diagram importance of computer programming to make computers do what we wish them to do in this order 1.1a 1.1b 2.2a 2.3c tutorial 4 beach house c alice/alice required/gallery tutorial 1 ice skater c alice/alice required/gallery key words include method object detail event editor property input process output starter how do you make a cup of coffee what are the inputs process and output talk alice environment describe that the software enables animations to work hands on understand the concepts of a `world and `actors within that world introduction tutorial 4 hands on introduction to alice introduce the dancer as an `object pupils to run through the first tutorial change the dancer s sequence talk what are the inputs/process/outputs present this in diagrammatic form using a whiteboard use some examples activity pupils to complete this process as an activity for the movement of the dancer talk explain that everything we do on a computer needs a purpose an end result extension to experiment moving actors in the library plenary oral quiz of the keywords homework download and install the alice software or gain access to alice in out-of-school/study time 13/40 nc strategy and qca references
[close]
p. 14
sample teaching unit computer programming lesson number learning objective we are learning to walt learning outcomes what i am looking for wilf rationale this is because tib prerequisite skills of pupil and teacher and resources 2/7 know that new `methods are being created all the time in the world and that computer science is responsible for some of them understand how to create a new method and what these methods can be relate movement back to the overall purpose of the animation know that a hierarchy chart can be used to represent a numbered list of steps thus enabling problems to be broken down into logical steps to create a new method using alice as a tool and to create a hierarchy chart to represent the decisions you took to create this new method programming enables boundaries to be broken and new things to be created tutorial 2 defending nap time gallery 1.1a 1.1b 2.2a hierarchy chart example understand that a problem can be broken down into smaller ones and that a hierarchy chart can be used to diagrammatically represent steps assessed deliverables tutorial 2 creation of a hierarchy chart starter recap quiz on keywords of last lesson discussion are new objects and new methods being created all the time in the real word discuss advances in technology e.g ipod generations hands on alice creation of a new method `to make the bunny jump discussion how do we diagrammatically represent solutions to problems the hierarchy chart hands on pupils to create their own hierarchy chart to the bunny jump discussion does breaking down a problem into sub problems help make them easier to solve homework think of new method that can be applied to a technological gadget of your choice explain what the new method will do and how the user might benefit 14/40 nc strategy and qca references
[close]
p. 15
sample teaching unit computer programming lesson number learning objective we are learning to walt learning outcomes what i am looking for wilf rationale this is because tib prerequisite skills of pupil and teacher and resources 3/7 that programming enables events to be created that can be controlled by the user that objects can be manipulated by the user in the form of a key press or mouse click programmin g enables us to control what we can do on screen something we can all take for granted headphones tutorial3 penguin song required/gallery 1.1a 1.1b 2.2a those events comprise of logical steps that can be broken down that the process of stepwise refinement is used to create algorithm which is the description of a process that achieves some task stepwise refinement example assessed deliverables tutorial 3 stepwise refinement task starter discussion about homework pupils are encouraged to talk about their ideas hands on `go through tutorial `penguin song discussion pupils to think about the steps that they went through to create the effect talk about stepwise refinement show an example to explain and discuss e.g making a burger toast bun grill burger add toppings etc hands on students using ms word to write a stepwise refinement plan for their penguin song may require help and guidance from teacher plenary when we use office software what are the `events that we produce and what controls are at our disposal homework use stepwise refinement to create a set of instructions to travel from birmingham to marseille 15/40 nc strategy and qca references
[close]