#Introduction
- Michael Sperber
- Not sure he knows how to teach how to teach
- Teaching since 1987
- Languages in Dr. Racket built explicitly for teaching beginners
- Not Racket itself (Racket is a professional FPL)
#REFERENCES
- Structure and Interpretation of Computer Programs (Book, programming)
- How To Design Programs: An Introduction to Programming and Computing (Book, programming, online, free)
- Mindset: The New Psychology of Success (Book, selfhelp)
#The One Thing If what you're teaching is compelling to you, that does not mean that it is compelling to students, or that it is a good thing to teach or method of teaching
We don't want to teach syntax or whatever, We want to know: At the end of your course, are your students able to program.
#Teaching Stuff
- Students will look for ways to implement what they know in your programming language
- Using scheme, a student who knows java may find a way that:
- They can "return" to end a program
- They can access state of their program
- They can assign or mutate a value
- Your students are NOT YOU
- Students will come in to courses with a different mindset
- Think Scheme is a wonderful language, so it must be wonderful for teaching
- This is not so.
#Make Teaching Effective
- Be systematic/methodical in your teaching
- Functional programming supports this
- "Design Recipes", like essay composition structure
- Will use the same approach to write programs
- "Bootcamp Approach" vs "Friendly Kitten Approach"
- Bootcamp works better with no detriment to popularity of teacher/course
- Form
- Even necessary in programming
- "Multiple solutions" is actually detrement
- Should have a "right" solution to a problem (in teaching)
- Feedback
- You want an environment that gives immediate, useful feedback to students
- Don't start teaching with Types
- Feedback is not always useful
- Will block students in ways that serve no useful purpose
#Intro summary
- Don't grow attached to your own tools
- Functional programming
- Specific language
- Students don't have to love you
- Only program what you can explain
- Don't give examples with out of scope code
- Observe & measure your students
- "Kill your darlings"
#GEMOETRIC SHAPES
- Taken from old US Navy problem
- Squares, circles, overlayed shapes
- Find out if one point is inside a certain geometric shapen on a grid