Teaching Programming Less Doing, More Understanding Quintin Cutts School of Computing Science University of Glasgow Beth Simon Computer Science and Engineering Department University of California at San Diego Outline • • • • • Background and premise for the talk An alternative instructional design Trying it out live! The effect on students Is this how to introduce computing…? Background • 15 years teaching programming • Never happy with "programming is an innate skill" – increased engagement – interactive classrooms – revised the instructional design • skill development • time-on-task, regular self-study • regular timely feedback – explored attitudes to learning Background (2) • Creating working programs still featured large • Uncomfortable with assessment – predominantly "marking programs" • expensive in time • limited quality feedback • not assessing either process of programming or level of understanding Preliminaries • Premise 1 – We want learners to understand deeply programming concepts and skills, to properly equip them for life-long use of technology and programmable systems • Premise 2 – We assess a learner’s understanding by measuring the quality of the artifacts they produce – Hence, we must assume that delivery of an artifact == understanding Preliminaries • Premise 1 – We want learners to understand deeply programming concepts and skills, to properly equip them for life-long use of technology and programmable systems • Premise 2 – We assess a learner’s understanding by measuring the quality of the artifacts they produce – Hence, we must assume that delivery of an artifact == understanding Who produced the artifact? • The learner – Great. Our assumption is probably correct. – Although, monkeys and typewriters? • (my concern with drag-and-drop etc) • Books / the web / a wizard – Boiler-plate copying is common-place • Teacher / tutor / friend – Often in one ear, out the other – But at least the code is working Quick vote… • To my premise that – we rely too heavily on the assessment of artefacts in programming, because this fails to assess understanding • do you: – – – – – A: strongly agree B: agree C: neutral D: disagree E: strongly disagree How to generate understanding? • Engage students in questioning and discussion • One-on-one is expensive – can we get peers discussing and explaining? • Growing body of instructional designs doing this more efficiently: – Peer Instruction – Flip Teaching – The Khan Academy Example: General Education Computing course • Designed to promote computational thinking – Led by Beth Simon at UCSD to 1000 students in 2010-11 – But also a pilot for a school-level course, CS Principles • Basically, a programming course – But programming very much a vehicle – 7 weeks of Alice, 2 weeks of Excel Exploratory Homework Lecture Q U I Z Lab Exam Exploratory Homework Lecture Lab Exam Q U I Z 1) Individual Vote 2) Group Discussion (fixed 3 person) Tutors actively engage groups in justifying/talking 3) Group Vote (consensus required) 4) Class-wide Discussion Led by Students First – Explain WRONG answers Final Cognitive Modeling by Instructor "What does this code do?" question • World with three “drivable” objects – Rabbit, penguin, cow – Forward, – Turn by .12 revolutions (1/8th of the way around) The scene: When does a party happen? A. B. C. If any of the objects is near the palmtree If all of the objects are near the palmtree Something else (e.g. multiple parties…) Feedback Paraphrase Justify Let’s make the beetles do a dance… • Here's the scene and an activity we want to create: One comes forward All go around Same one goes back Next one comes forward All go around Same one goes back And so on until all four have come forward and back Does this code correctly implement our intended behavior? A. Yes B. No C. I don’t know And WHY! One comes forward All go around Same one goes back Next one comes forward All go around Same one goes back And so on until all four have come forward and back What is new about this code? • Nested “for all” loops • A loop that “iterates” over all items in a list – Inside that is another loop that goes over all the items in a list – In this case, happen to be the same list • Wow, you can do complicated things now… By the way… • How do we summatively assess the understanding? • More MCQs • But also: “How would you explain why the correct answer is correct?” – Of course, this takes more marking – a bit like an short essay question! What are the students taking away? We asked… • Learning computing concepts may have opened many doors for you in your future work. Although you may not ever use Alice again, some of the concepts you have learned may become useful to you. • Some examples include: – Understanding that software applications sometimes don’t do what you expect, and being able to figure out how to make it do what you want. – Being able to simulate large data sets to gain a deeper understanding of the effects of the data. – Understanding how software works and being able to learn any new software application with more ease, i.e. Photoshop, Office, MovieMaker, etc. • Aside from the examples given, or enhancing the examples given, please describe a situation in which you think the computing concepts you have learned will help you in the future. Transfer, Near – 64% • Using new machinery like sound editing equipment … will require the ability to manipulate and design using the basic commands to form a unique creation. Similar to Alice we will be restricted to the amount of actions we can perform sometimes but through our creativity we can manipulate the basic commands of the music program to create variations not standard to the system. Like how we mad[e] frogs appear to be hopping when in actuality the Alice program does not have a specific method that makes frogs hop. Personal Problem Solving Ability: Debugging – 39% • I have learned how to target problems when I am working on a computer and use the process of elimination to try to fix the problem instead of just restarting the computer like I used to. Personal Problem Solving Ability: Problem Design – 29% • We learned in Alice that computers do exactly what you have them do. Using this knowledge, we can understand how programs like Excel and Numbers work and learn that when we are using these programs, we need to specify and be exact with what we are doing in order for the programs to meet our needs and plans. View of Technology – 25% • Now, every time I find myself playing a video game, I actually understand what makes it work. That these games are not magically produced, that it takes time, skill, and sufficient funds to create these games. I appreciate these games more than before taking this class. Transfer, Far – 23% • I feel that learning the language of computing definitely helps you understand dense reading a lot more efficiently. I personally have noticed that my in-depth understanding of Computer Science wording has helped me understand my mathematical theorems and proofs more regularly than before. Confidence – 21% • The things I learned in Alice can help me not to be so frightened in general when dealing with technology. Although I am not certain I have absolutely mastered every concept in Alice, I am certain that I have learned enough to bring me confidence to apply these ideas in the technological world. This is a big deal for me, as I do consider myself quite technologically challenged. I think this class has given me tools for life, that can be applied to both my life at home, socially, and at work. Communication – 7% • In today’s technologically-centered world, using a program like Alice gives us valuable exposure to discussing things technically with other people and explaining clearly what we are trying to do. From our own observations: • We speculate that the students must now have a critical understanding that computing systems are: – Deterministic – Precise – Understandable To conclude • We wrongly equate artifact production with understanding • We need instructional designs that properly develop and assess skills and understanding – One possible design has been presented Should ICT training simply be a programming course of this nature? Or, in other words, are the skills/attitudes described by the learners an essential underpinning for living in the digital world and for further study in CS? Or, in yet more words, is it these skills that explain the traditional double-hump in computing classes? Relevant research • Repeated testing better than repeated study – Roediger & Karpicke 2006 – Karpicke & Blunt 2011 And some more… • Peer working while viewing expert tutors – Craig, Chi & VanLehn 200 • Self-articulation vs. Peer discussion – Teasley, 1993 – Also explores transactive discussion • Situated Learning – Brown, Collins, Duguid 1989 And some more… • Isomorphic questions – Smith et al, 2009 • Catalytic assessment – Draper 2009 • Linked questions – Russell, 2008 • PI in CS – Simon & Cutts, SIGCSE 2010 & Tech Report