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
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,
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 lecture how many minutes do
YOU spend speaking or working/analyzing problems?
What we know about how people learn
Transmissionist Model
Scientifically Outdated,
Culturally a Known Failure
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
Here is an important new number system. Please learn it.
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
4
7
2
5
8
3
6
9
So, you learned, right?
Let ’ s check your learning
What ’ s this number?
1
4
2
5
3
6
7 8 9
[2] Teaching Teaching and Understanding Understanding, Aarhus University. Video (on web)
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)
You can’t do the learning for the student!
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
On to Introductory Programming…
Best Practices
Introductory Programming
Learning a new “language”
Flow not even the same int x = 30; for (int i = 0; i < 100; i = i + i%x)
{
//Now here’s the repeated stuff
}
Lens: Manage Cognitive Load
Amount of “stuff” you have to keep active while learning
Separate syntax and semantics
Remove syntax error possibilities
“Novice” IDE
Visualization of “mental model” of program state
Use contextualized programming environments
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
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
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
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
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?
Ask me about the 2 minute pause study…
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)
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