2012/How to Win Collaborators and Influence Community: Encouraging -& Not Discouraging- Novice Coders

From Open Source Bridge Wiki
Jump to: navigation, search

Interested in helping others learn to code? How do you help give them a running start, without throwing roadblocks in their way? Come get better at helping other people get better.

Speaker: Liene Verzemnieks

Return to this session's details

Contributed notes

Step Zero

As experienced programmers we often begin a new endeavor beyond Step Zero. We did that the first time and find it easy to forget a step zero at all. Liene said, "Teach how to get from zero to one." This is cogent because we're prone to take for granted what the steps are to step one. Examples include:

  • What is an editor?
  • How do I make code do stuff?
  • What website do I download a programming language from?
  • Where in the book store/library are resources on this subject?

Slides!

Speaker Deck slides

Questions

What tools are there to help you learn to teach

Live Cast As You Code

Games

How Do You Teach Programming Without Teaching A Language First?

  • Logo, turtle, scratch
  • Get to hello world. Teach about text editors vs word processors and install one. Install the language on their computer. Show them how to run the code they've written. The ability to make stuff show up on your screen is AMAZING! Even 10 PRINT "HELLO" 20 GOTO 10.
  • Make a peanut butter and jelly sandwich like a computer would.
  • Eliminate the computer and teach algorithmic thinking and debugging. You + whiteboard + marker is your interpreter. Your student programs you, in structured English, to draw a square.
   PEN DOWN.
   GO FORWARD 10.
   TURN LEFT 90.
   GO FORWARD 10.
   TURN LEFT 90.
   GO FORWARD 10.
   TURN LEFT 90.
   GO FORWARD 10.
   PEN UP.

Introduce loops to make that generic.

   PEN DOWN.
   REPEAT 4 TIMES
       GO FORWARD 10.
       TURN LEFT 90.
   PEN UP.

Then the subroutine concept.

   FUNC DRAW_SQUARE
       PEN DOWN.
       REPEAT 4 TIMES
           GO FORWARD 10.
           TURN LEFT 90.
       PEN UP.

Passing arguments and making routines generic

   FUNC DRAW_SQUARE( $SIZE )
       PEN DOWN.
       REPEAT 4 TIMES
           GO FORWARD $SIZE.
           TURN LEFT 90.
       PEN UP.

Physically do this. They'll learn how to issue commands with the right level of accuracy and specificity, see them happen, and debug when it goes wrong.

What was your carrot

  • Wanting to be like my mom
  • Wanting to join the club
  • Wanting to make cool things

Holy smokes these are awesome resources

  • CS Unplugged: Teaching computer science without computers, and aimed to be accessible to school children. Dress up like pirates to learn how finite state automata and regular expressions work! Use fridge magnets to implement error correction routines.
  • Teaching Kids Programming creates programming problems ("recipes") and organizes volunteers to teach kids how to program. Awesome resource for any beginner. http://teachingkidsprogramming.org/