Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego."— Presentation transcript:

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

2 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, Lecture

3 During an average 50 minute “lecture” period, how much time do students spend speaking?  A) <5 minutes  B) 5-10 minutes  C) minutes  D) More than 20 minutes

4 During an average 50 minute “lecture” period, how much time do students spend working/analyzing problems?  A) < 5 minutes  B) 5-10 minutes  C) minutes  D) More than 20 minutes

5 During an average 50-minute lecture how many minutes do YOU spend speaking or working/analyzing problems?

6 What we know about how people learn  Transmissionist Model

7 Scientifically Outdated, Culturally a Known Failure

8 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

9 Let’s have a learning experience…

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

11 So, you learned, right? Let’s check your learning  What’s this number?

12 So, you learned, right? Let’s check your learning  What’s this number?

13 So, you learned, right? Let’s check your learning  What’s this number? [2] Teaching Teaching and Understanding Understanding, Aarhus University. Video (on web)

14 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)

15 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…

16 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 }

17 Manage Cognitive Load: System  Separate syntax and semantics  Remove syntax error possibilities

18 Manage Cognitive Load: System  “Novice” IDE

19 Manage Cognitive Load: System  Visualization of “mental model” of program state  Use contextualized programming environments

20 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

21 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

22 Does this work?  UCSD - Within instructor comparison  : Java, with “engaging” lecturer 76% retention in major 1 year later  : Media Computation in Java, Peer Instruction 92% retention in major 1 year later

23 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

24 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?

25 Questions? Ask me about the 2 minute pause study…

26 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)

27 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


Download ppt "BEST PRACTICES IN TEACHING INTRODUCTORY PROGRAMMING Beth Simon, Computer Science and Engineering UC, San Diego."

Similar presentations


Ads by Google