Presentation is loading. Please wait.

Presentation is loading. Please wait.

Learning to Program is Easy

Similar presentations


Presentation on theme: "Learning to Program is Easy"— Presentation transcript:

1 Learning to Program is Easy
Andrew Luxton-Reilly Computer Science Department University of Auckland

2 Purpose of the paper Reflect on disciplinary norms Generate discussion
Challenge the status quo

3 Question: Is it easy or hard to learning programming?

4 Question: Is it easy or hard to learn how to cook?

5 Question: Is it easy or hard to learn how to cook?
Cooking = making toast and spreading vegemite

6 A challenging cooking course
One semester course Designed for people with no prior experience At the end of the course you will be able to: Read a recipe and follow that recipe to produce a well cooked and well presented meal Create new meals based on available ingredients Cook meals in a wood-fired oven The meals should be three courses and suitable for 20 people

7 Question: Is it easy or hard to learn how to cook?

8 Key questions What does it mean to learn how to cook?
What level of expertise do we expect? My son loves making toast at 5

9 How do we describe programming?
Learning to program is hard. Novice programmers suffer from a wide range of difficulties and deficits. Programming courses are generally regarded as difficult, and often have the highest dropout rates (Robins et al., 2003) So what makes programming so hard to learn? Here's a possibility: It's inherently hard. Maybe the task of programming is innately one of the most complex cognitive tasks that humans have ever created (Guzdial, 2010) Never describe my son as having “deficits” because he was learning how to cook. This is the consensus view of CS academics

10 Why do we have this view? 30 years of research has found that students perform at lower than expected levels Soloway’s rainfall problem (Soloway et al., 1983) McCracken working group (McCracken et al., 2001) Leeds working group (Lister et al., 2004) Bracelet group (Whalley et al., 2009) … and many many others Expert educators consistently overestimate what students can achieve.

11 What do we expect? “Suppose I assigned you to write a fifteen-page paper, due two months from now, on Napoleon's invasion of Russia. […] Now suppose I told you that the paper must be written in Swedish, using a quill pen. Now what would you need to know? […] And if I expected you to learn all those things, from scratch, in one semester, you'd think I was nuts. That's what we'll be doing in CS1, trying to learn half a dozen different levels of knowledge at once” (Bloch, 2014)

12 Assessments The assessments determine student grades
Remember that CS Ed researchers, who are expert teachers with an active interest in education still regularly overestimate student ability We set the assessments We determine how difficult they are We deliberately (although perhaps unwittingly) make our courses difficult

13 What happens when we overestimate student ability?
Failure rates of programming courses are high … learning to program can be an incredibly difficult task, to the point where the phrases ``failure rate'' and ``programming course'' are almost synonymous (Watson & Li, 2014)

14 Is it easy or hard to learn programming?
We haven’t answered that yet. The evidence clearly shows that students do not meet our expectations Our expectations set a standard that is difficult to achieve

15 Why do we make it difficult?
It feels good to teach one of the most difficult subjects.

16 Why do we make it difficult?
The ultimate excuse False views on failure and pass rates can have serious implications for the quality of introductory programming courses. A lecturer with a high failure rate might accept that ``this is just the way programming courses are since all programming courses have high failure rates'' and consequently not take action to improve the course in order to reduce the failure rate (Bennedsen & Caspersen, 2007)

17 Why do we make it difficult?
It gives our CS Ed Research community something to do!

18 Why do we make it difficult
Our students work harder that other students Discourages/eliminates weaker students Ensures the subject retains elite status

19 Consequences for students
Remember our Cooking course? Imagine we tell students that this is extremely hard and not all students are suited to cooking Imagine that we set standards that require 20 hours per week of practice, then yell “WRONG” at students every time they make a mistake Now imagine that almost everyone in the class is French, and a lot of them have either had prior experience cooking at home, or have parents who are chefs?

20 Consequences for students in CS
Workload is excessively high (Kinnunen & Malmi, 2006, 2008) CS courses have high drop-out rates (Beaubouef & Mason, 2005) Increases the impact of prior experience (Wilson & Shrock, 2001; Horton & Craig, 2015) Surface learning and plagiarism increase (Sheard & Dick, 2012) Our unrealistic expectations are bad for students!

21 Consequences for women
Difficult courses increase impact of prior experience Women have less prior programming experience (Sinclair & Kalvala, 2015) Women are less confident about programming There are few women in programming courses, so they have less extensive support networks to draw upon Women report workload and difficulty are reasons for changing majors away from CS, or for not pursuing CS (Biggers et al., 2008; Barker et al., 2009; Wolfe & Powell, 2015)

22 What next? The standards we expect are not necessarily the wrong standards, just expected too soon. Learning to program can be easy if we simply adjust our expectations! Collect evidence of what students can realistically achieve at the end of a single semester, without prior experience or excessive workload. print(“Hola”) Learning to program is easy!

23 Learning to Program is Easy
Questions?


Download ppt "Learning to Program is Easy"

Similar presentations


Ads by Google