Jason Orendorff
March 08, 2014
94

# Teaching Programming

Slides and notes for Eliza Brock’s lightning talk at Click 2014.

Eliza is a Nashville developer and instructor at Nashville Software School.

March 08, 2014

## Transcript

1. ### T E A C H I N G P R

O G R A M M I N G E L I Z A B R O C K I N S T R U C T O R , N A S H V I L L E S O F T WA R E S C H O O L Hi! I’m Eliza Brock. I’m an instructor at Nashville Software School, where I teach the advanced software development course. I’m here today to talk to you about my experiences in teaching programming. ! To start off, let’s talk about what programming is, exactly.
2. ### T H I N K I N G A B

O U T T H I N K I N G P R O G R A M I N G I S : In my view, programming is, primarily, an analytical process wherein we take human thought and shape it into something that can be expressed to and via a computer in a very literal way.
3. ### F R A M I N G T H E

P R O B L E M P R O G R A M M I N G I S I think that the most fundamental skill required by and developed in programming is the ability to properly frame problems.
4. ### T W O T R A I N S :

• Train A leaves the station at 2:15, going 20 miles per hour • Train B Leaves the station at 3:00, going 45 miles per hour • When do they collide? My favorite way to illustrate this is with the Train Problem. ! 2 trains leave a station. The first train travels 20 miles per hour. The second leaves 45 minutes late traveling 45 miles per hour. When do they collide?
5. ### B X : 0 4 5 M P H A

X : 1 5 2 0 M P H T H E H A R D WAY: ! T R A I N A L E A V E S T H E S TA T I O N A T 2 : 1 5 , G O I N G 2 0 M I L E S P E R H O U R T R A I N B L E A V E S T H E S TA T I O N A T 3 : 0 0 , G O I N G 4 5 M I L E S P E R H O U R ? I’m not going to lie. The first time I was shown this problem, I thought “Oh, snap. We’re going to have to use calculus”. On the surface, this is a hard problem to solve, with multiple moving objects going at different speeds. ! However, my teacher’s purpose in showing us this problem wasn’t to teach us math. It was to teach us about how to frame (and reframe) problems.
6. ### T H E E A S Y WAY: R E

F R A M E T H E P R O B L E M T R A I N A L E A V E S T H E S TA T I O N A T 2 : 1 5 , G O I N G 2 0 M I L E S P E R H O U R T R A I N B L E A V E S T H E S TA T I O N A T 3 : 0 0 , G O I N G 4 5 M I L E S P E R H O U R B X : - 1 5 2 5 M P H A X : 0 In this case, you can take all the pain out of the calculations by treating Train A as a fixed point, and using relative velocity. It doesn’t matter where the trains are in space. It only matters that Train B is 15 miles away from Train A and headed towards it at a relative velocity of 25 miles per hour. ! This is the single most valuable thing I learned in physics and I think about it constantly in my work. The moment you reframe the problem, it solves itself.
7. ### T E A C H I N G TA K

E S L E A R N I N G Teaching takes learning. I get better at programming every time I teach.
8. ### W E A R E A L L S T

U D E N T S ? ! So, when it comes down to it, whether professional educators or professional programmers, we are all students.
9. ### A I M U P A N D T O

T H E R I G H T S T U D E N T P R O G R E S S O V E R T I M E As long as our skills are going up and to the right, we’re doing it right. It doesn’t matter if you start out at 10% or 90%, as long as you’re learning. While we’re at it, though, comparing yourself to your peers is a losing game
10. ### T H E S T U D E N T

P E R C E P T I O N This is a student’s perception of three of their peers. ! It looks like the guy in the middle is a rock star, right?
11. ### T H E S T U D E N T

P E R C E P T I O N I S W R O N G Nope. Novices can only really perceive each other’s confidence. Not their actual skills.
12. ### T H E R E A L I T Y

The reality is that every student has a spectrum of skills that they’re working on. Each person has strengths and weakness that can’t be summed up with a ranking.
13. ### T H E D U N N I N G

- K R U G E R E F F E C T And, to top it off, people are just awful at self-evaluation.
14. ### W H AT I T E L L M Y

S T U D E N T S So, here’s what I tell my students.
15. ### Y O U H AV E T O D O

I T, N O T R E A D I T Trying to learn programming without actually programming is about as effective as trying learning to ride a bike without a bicycle.

U M B
17. ### Y O U R J O B I S T

O G E T U P A N D T O T H E R I G H T 0 25 50 75 100 Progress Over Time 0 3 6 9 12 It doesn’t matter how fast you’re going and it doesn’t matter if you have set backs. Your job is to get up and to the right. If you’re concerned that someone else is getting there faster, remember that…
18. ### M Y J O B I S T O G

E T Y O U B U N C H E D U P 0 25 50 75 100 Value Axis 0 3 6 9 12 My job is to get you bunched up on your way up.
19. ### T H E R E A R E S T

U P I D Q U E S T I O N S . A S K T H E M A N Y WAY S E R I O U S LY. W E ’ R E N O T F O O L I N G T H E M W H E N W E S AY, “ T H E R E A R E N O S T U P I D Q U E S T I O N S ” . There are stupid questions. Ask them anyway. ! *Seriously. We’re not fooling them when we say “There are no Stupid questions”. Of course there are. But, we all have to go through phases of learning when we don’t yet have a frame of reference for asking good questions. It’s fact of life.
20. ### I M A G E C R E D I

T S : Girl with Camera: http://www.flickr.com/photos/skippy/208393621/ Train Station: http://www.flickr.com/photos/brostad/2764467121/ Train Tracks: http://www.flickr.com/photos/pagedooley/3351663193/ Citadel: http://www.flickr.com/photos/47283811@N06/11653306543/ Girl with Hands on Ears: http://www.flickr.com/photos/bolonski/6899771379/ Graphs created with: https://infogr.am Tent in the Mountains: default Keynote stock imagery Dodo: http://www.flickr.com/photos/arminflikr/55192044/ Starry Evening: http://www.flickr.com/photos/izzie_whizzie/1172195060/ Foggy Day: http://www.flickr.com/photos/alicepopkorn/8141067886/