1 / 27

Best practices in teaching introductory programming

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

rex
Télécharger la présentation

Best practices in teaching introductory programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Best practices in teaching introductory programming Beth Simon, Computer Science and Engineering UC, San Diego

  2. 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

  3. 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

  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) 10-20 minutes • D) More than 20 minutes

  5. During an average 50-minute lecturehow 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? 1 2 3 4 5 6 7 8 9

  13. 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)

  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 (inti = 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 • 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

  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

More Related