Slide 1

Slide 1 text

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.

Slide 2

Slide 2 text

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.

Slide 3

Slide 3 text

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.

Slide 4

Slide 4 text

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?

Slide 5

Slide 5 text

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.

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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?

Slide 11

Slide 11 text

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.

Slide 12

Slide 12 text

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.

Slide 13

Slide 13 text

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.

Slide 14

Slide 14 text

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.

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

Y O U ’ R E N O T D U M B

Slide 17

Slide 17 text

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…

Slide 18

Slide 18 text

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.

Slide 19

Slide 19 text

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.

Slide 20

Slide 20 text

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/