280 likes | 444 Views
Best practices in teaching introductory programming. Beth Simon, Computer Science and Engineering UC, San Diego. What versus How Content versus Pedagogy. Pedagogy – applies to teaching any course C ourse design: L earning goals of the course How students should be different at end of course
E N D
Best practices in teaching introductory programming Beth Simon, Computer Science and Engineering UC, San Diego
What versus HowContent versus Pedagogy • Pedagogy – applies to teaching any course • Course design: Learning goals of the course • How students should be different at end of course • What students should be able to do at end of course • Homework, Projects, Reading, Lecture
During an average 50 minute “lecture” period, how much time do students spend speaking? • A) <5 minutes • B) 5-10 minutes • C) 10-20 minutes • D) More than 20 minutes
During an average 50 minute “lecture” period, how much time do students spend working/analyzing problems? • A) < 5 minutes • B) 5-10 minutes • C) 10-20 minutes • D) More than 20 minutes
During an average 50-minute lecturehow many minutes do YOU spend speaking or working/analyzing problems?
What we know about how people learn • Transmissionist Model
How People Learn [1] • People actively construct their own knowledge • Individual, based in pre-existing understanding • Tied to language • Technology allowing us to observe learning as it happens • Furthering understanding of the biological processes and changes the occur during learning [1] How People Learn: Brain, Mind, Experience and School Expanded Edition. Ed. Bransford
So, you learned, right?Let’s check your learning • What’s this number?
So, you learned, right?Let’s check your learning • What’s this number? 1 2 3 4 5 6 7 8 9
So, you learned, right?Let’s check your learning • What’s this number? 1 2 3 4 5 6 7 8 9 [2] Teaching Teaching and Understanding Understanding, Aarhus University. Video (on web)
Constructivism • All new learning is based in pre-existing knowledge that you hold. • You store things in long term memory through a set of connections that are made with previous existing memories. • “Creating memories” (aka learning) involves having neurons fire (and neurons link up in networks or patterns)
Remember This! • Don’t think about lecture in terms of what “you will do” • What will students, do, think, explain? • Move from “Sage on the Stage” to “Guide on the Side” • Provide materials for students before lecture (videos, reading) • Spend lecture time with the most difficult concepts You can’t do the learning for the student! On to Introductory Programming…
Best Practices Introductory Programming • Learning a new “language” • Flow not even the same • Lens: Manage Cognitive Load • Amount of “stuff” you have to keep active while learning int x = 30; for (inti = 0; i < 100; i = i + i%x) { //Now here’s the repeated stuff }
Manage Cognitive Load: System • Separate syntax and semantics • Remove syntax error possibilities
Manage Cognitive Load: System • “Novice” IDE
Manage Cognitive Load: System • Visualization of “mental model” of program state • Use contextualized programming environments
Manage Cognitive Load: Stress • Use Pair Programming for Homework Assignments • McDowell, UC Santa Cruz, Williams NCSU) • Use Peer Instruction in Lecture • Also good for instructors who don’t frequently teach introductory programming • Simon, UC San Diego, Cutts Univ. of Glasgow
Manage Cognitive Load: Stress • Support Growth Mindsets: Carol Dweck • Encourage focus on learning “useful tool”, not earning grades • Cognitive Modeling – especially showing mistakes and how to recognize and think about them • Videos of coding with reflecting commentary • Peer Instruction
Does this work? • UCSD - Within instructor comparison • 2006-2007: Java, with “engaging” lecturer • 76% retention in major 1 year later • 2009-2010: Media Computation in Java, Peer Instruction • 92% retention in major 1 year later
Before “Intro Programming” • Recent efforts in US (also in Scotland) to define “university-level general education computing” • Deep understanding of core concepts • Debugging and Analysis skills • Confidence • Cognitive Load • Remove Syntax • Simple IDE (“Play” == Run) • Visual, Contextual Advanced Placement CS Principles (in US) Targets ALL College-Preparatory Students
Think-Pair-Share • How does your current curriculum “rate” in management of cognitive load? • System • Stress • Lecture Environment • Programming/Homework Experiences • What is ONE THING you will bring up at your institution to promote adoption of best practices?
Questions? Ask me about the 2 minute pause study…
Extra Resources • Useful hands on materials • Carl Wieman Science Education Initiative (UBC) • What all instructors should know • What to do on the first day of class • Clickers / Peer Instruction videos (~7) • Handbook for using clickers/peer instruction • Fun and Interesting • Video: Teaching Teaching and Understanding Undersatnding (20 min) Google: Aarhus • Video: Farewell Lecture Eric Mazur Harvard (60 min)
Take-Home Practices • People can either take notes or THINK • Be sure your POINT is written on a slide (not merely spoken) • So what is really important, so what I want you to know • Add LABELS to diagrams and images • Tell students “what to see” or “how to look” at image • Give an agenda, return to it • Tell students how they will be different at the end of lecture • Can explain, compare/contrast, describe why something is important, identify when X needs to be used • Don’t give a list of topics • Start from students’ pre-existing knowledge/comfort zone, not yours