BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC,...

27
BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego

Transcript of BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC,...

Page 1: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMINGBeth Simon, Computer Science and Engineering

UC, San Diego

Page 2: 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

Page 3: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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

Page 4: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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

Page 5: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

During an average 50-minute lecturehow many minutes do

YOUspend speaking or

working/analyzing problems?

Page 6: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

What we know about how people learn

Transmissionist Model

Page 7: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

Scientifically Outdated, Culturally a Known Failure

Page 8: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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

Page 9: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

Let’s have a learning experience…

Page 10: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

Here is an important new number system. Please learn it.

Page 11: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

So, you learned, right?Let’s check your learning

What’s this number?

Page 12: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

So, you learned, right?Let’s check your learning

What’s this number?

1 32

4 65

7 98

Page 13: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

So, you learned, right?Let’s check your learning

What’s this number?

1 32

4 65

7 98[2] Teaching Teaching and Understanding Understanding, Aarhus University. Video (on web)

Page 14: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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)

Page 15: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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…

Page 16: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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 }

Page 17: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

Manage Cognitive Load: System

Separate syntax and semantics Remove syntax error possibilities

Page 18: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

Manage Cognitive Load: System

“Novice” IDE

Page 19: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

Manage Cognitive Load: System

Visualization of “mental model” of program state

Use contextualized programming environments

Page 20: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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

Page 21: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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

Page 22: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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

Page 23: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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

Page 24: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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?

Page 25: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

Questions?

Ask me about the 2 minute pause study…

Page 26: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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)

Page 27: BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego.

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