Best Practices in Teaching Introductory Programming - Beth Simon
-
Upload
ekitani6817 -
Category
Documents
-
view
224 -
download
1
Transcript of Best Practices in Teaching Introductory Programming - Beth Simon
BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMINGBeth Simon, Computer Science and EngineeringUC, 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
YOUspend speaking or
working/analyzing problems?
What we know about how people learn
Transmissionist Model
Scientifically Outdated, Culturally a Known Failure
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
Let’s have a learning experience…
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 324 657 98
So, you learned, right?Let’s check your learning
What’s this number?
1 324 657 98
[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 (int i = 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