310 likes | 453 Views
Say it another way Sam. Christopher Carter ▲ Formerly of Sheffield Hallam University. Teaching programming. Who are we teaching?. 80’s mathematically literate highly motivated Some could already program (badly!) 90’s Mathematically less able Well motivated
E N D
Say it another way Sam Christopher Carter ▲ Formerly of Sheffield Hallam University
Who are we teaching? • 80’s • mathematically literate • highly motivated • Some could already program (badly!) • 90’s • Mathematically less able • Well motivated • Fewer had concept of programming • 00’s • Many have no concept of algebra even • Poorly motivated – fearful of programming • Culture of being ‘cool’ to skip lectures and tutorials • Pressure to pass high percentage of students
What we aim to teaching them • 80’s • Teach as much as possible • Challenge was to wean students off poor habits • Discrete mathematical framework • 90’s • Teach concepts rather than techniques • Challenge to understand and simplify material • Software Engineering context • 00’s • Teaching concept of programming • Challenge becomes how to motivate • May not gain more than ability in logical thinking
How do we teach it? • 80’s • Many programming exercises building up to quite advanced programs • 90’s • Algorithm design – programming in the large – team programming – modifying existing programs • 00’s • Try to find ways to motivate students – reduce fear factor - experience they may wish to follow up later
Why learning paths? • Some years ago I noticed that: • After ~50 hours a large minority of students seemed not to understand the first thing about programming. • First 4 weeks of learning seemed crucial. • If students didn’t ‘get it’ within that time they seemed to mentally switch off for the rest of the course (relying on friends for help with tests or simply dropping out). • Seemed worth making a disproportionate effort to get first few weeks right.
Strategy • Set up BB to get students to share their experiences (of Maths and other things); • Help students reflect on how they learn; • Try to overcome problem of getting stuck (and not asking for help) by offering alternative routes to knowledge. • Make first assignment as non-threatening and enjoyable as possible;
First assignment • Orally assessed low weighting (5%) • Credit for learning styles questionnaire. • Credit for taking part in BB discussion. • Credit for images using Paint (simple interface). • Students had to choose a learning method. • Get program working (using chosen method). • Record position and size of objects on VB form and put these numbers into Start Subroutine.
Maths in School BB • “Who likes maths? Def not me” • “At school I struggled with maths, so I had to go to extra classes to keep up with the class work , which helped me a lot.” • “I'm glad it's not just me that sometimes struggles a bit, I don't feel so alone now :)” • “maths was so boring in school, now its even more boring!!! But I still go to lesson!!!!” • “i've never been could at maths and don't think i'll ever be!!!!” • “I v never been to good at maths but it seems to be alright at the movement”
We already see a problem • Students are very careless about way they put sentences together even when their peers can read their mistakes: • First thing that typing in other people’s programs teaches us: • Wrong syntax is unforgiving – less so in VB! • accepts ‘if a = 3 or 4 then a = 5 and b = 5’ • Ouch!!
5 dimensional Felder model • Inductive Deductive – (fundamentals first vs. problem/discovery) • Felder says don’t need to consider - all learning should be inductive! (problem/discovery) What type of learner do you think you are?
Are you Active or Reflective? • When I am learning something new, it helps me to: • talk about it. ACTIVE • think about it. REFLECTIVE • I would rather first: • try things out. ACTIVE • think about how I'm going to do it. REFLECTIVE
Are you Sensing or Intuitive? • I would rather be considered • realistic. SENSING • innovative. INTUITIVE • I am more likely to be considered: • careful about the details of my work. SENSING • creative about how to do my work. INTUITIVE
Are you Sequential or Global? • When I start a homework problem, I am more likely to: • start working on the solution immediately. SEQUENTIAL • try to fully understand the problem first. GLOBAL • I tend to : • understand details of a subject but may be fuzzy about its overall structure. SEQUENTIAL • understand the overall structure but may be fuzzy about details. GLOBAL
Are you Visual or Verbal? • I like teachers • who put a lot of diagrams on the board. VISUAL • who spend a lot of time explaining. VERBAL • When I get directions to a new place, I prefer • a map VISUAL • written instructions. VERBAL
Lessons of Learning model • Lesson for teachers: • Does your teaching assume that all learners have the same learning style as yourself? • Lesson for learners: • If you are finding a subject difficult or boring it may just be you are trying to learn it or being taught it in a way that does not suit you.
How I compare with my students Key: Me – my profile f/t – full time students p/t – part time students Results for students are similar to those reported in the literature e.g. http://www.eng.monash.edu.au/uicee/gjee/vol6no1/Zywno.pdf
Choosing a first program • Football seems very popular with both sexes • Action programs Visual more fun than static ones • Football penalty program allows us to introduce elements that are fundamental to good programming.
Different Learning paths • Type it all in and get it working: • Learning by repetition! • Experimentation: • For those who don’t like discipline? • Theory first: • For those who like to read the instructions. • Step by step: • For cautious people who like to understand one thing before going on to the next.
Type it in method • Name and place all the Controls • Set the properties such as Style & Color • Note Top Left Height and Width of each Control • Add code for Start button BUT • Substitute dimension values recorded above. • Add code for Hit Ball button • Explanation of how it all works (pseudo-code) • Add Text Box explain and run program. • 10 exercises on changing the program and explaining what the effect is.
Exercises after typing in • Position the ball closer to the striker • Position the Goalie in front of the goal • Make Striker head ball by changing Top • Stop Label from moving • Make ball move backwards • Make ball move down instead of up
Experimentation • Don’t bother changing default names • Start with clickable image move 300 units. • After certain point image moves down instead. • Call click routine recursively. • Introduce loop instead of above recursion. • Add Command Button. • Explain need for more disciplined approach. • Start again correctly naming project etc.
Strengths and weaknesses Consider Experimenter personality type: • Strength • Willing to try things if instructions don’t work • Weakness • May not be very disciplined (sloppy control names ?) Taking strengths and weaknesses into account : • particularly emphasise the importance/advantages of taking care over naming controls etc. • take for granted they will be willing to try things out.
Theory First • Explain Boolean logic / defensive programming (Enabled property) • Mention States of the program and which controls are enabled in which states • Introduce code to implement states • Add user instructions • Pseudo-code of iteration then implement • Assignment statements etc.
Learn by Doing • Make ball jump from left to right suddenly. • Make ball move in steps (repeated code). • Using a loop to make it move smoothly. • Making player move up to ball etc. • Resetting things to start positions. • Add user instructions. • Preventing unwanted user input.
Type it get it working: Highly Active Rather Sensing Rather Verbal Rather Global Experimentation: Highly Active Highly Intuitive Rather Verbal Rather Global Theory first: Highly Reflective Rather Intuitive Visual Verb neutral Rather Sequential Step by step: Highly Active Highly Visual Visual Verb neutral Highly Sequential Methods vs. Personality
Programming - Hidden benefits • Second Semester spent considerable time with individuals trying to explain (for example): • Why their code won’t do anything: If a = 0 and a = 3000 then • Or if 5 questions can be answered correctly, incorrectly or not at all. What was wrong with: if 5 are right and 1 is wrong then if 4 are right and 2 are wrong then • Doing programming is obviously useful in helping students to think logically!
Summary • Teaching programming is a challenge. • Football penalty program a good model. • Learning paths are worth the effort; even if not fully appreciated by the students. • Students do use a range of methods • Half of them tried all four possible methods! • Concept of leaning styles seems useful: • but I am not sure exactly why.