Teaching Perl to Middle School Students

jjohn on 2000-04-13T17:54:43

Read about the adventures of teaching middle school kids Perl. Who says Perl isn't a good first language?


I wouldn't call this a success.

Abigail on 2000-04-13T23:27:16

Almost 90% dropped out in the first 6 hours they got exposed to Perl. If this is supposed to say anything about Perl a first language, then it shouts out: No, no, nooooooooo!. The given handouts are sometimes plain wrong.

-- Abigail

I would

jjohn on 2000-04-14T02:00:15

Well, the attrition was high, but the teacher suggested that factors other than Perl were responsible. Factors like programming is hard. I saw high attrition rates in college for CS classes, although not 5/6 of a class.

Please note that once some of the project was working, many dropouts became interested again.

So, yeah, I do count this as a success. :-)

Re:I would[n't]

hfb on 2000-04-14T02:32:00

6 boys, no girls.

But I think it is totally cool that someone is trying to teach kids how to program.

My money is still on 'Perlhouse Rock' :)

e.

Re:I would

Abigail on 2000-04-14T03:18:33

Well, the attrition was high, but the teacher suggested that factors other than Perl were responsible. Factors like programming is hard. I saw high attrition rates in college for CS classes, although not 5/6 of a class.

Actually, the drop out was 7 out of 8. There were 8 people taking the course, 6 of them students of the school, 2 of them teachers of the school. None of the adults survived. And if programming is hard was a factor, than the conclusion ought to be that Perl certainly didn't make it any easier.

So, yeah, I do count this as a success.

If having only one person managing to get through a mere 6 hours of Perl is to be called a success, you have hollowed out the meaning of the work success to a degree it doesn't have a useful meaning anymore. When would you call something a failure?

-- Abigail

Re:I would[n't]

Abigail on 2000-04-14T03:48:33

6 boys, no girls.

The gender of the two teachers taking the course was not disclosed.

-- Abigail

Re:I wouldn't call this a success.

sethg on 2000-04-14T16:52:01

I agree with Abigail. "Programming is hard" is a cop-out.

If you're looking for reasons why so many of the students dropped out, consider how you introduce Perl to them:

  • In the first lesson, you map certain concepts from high-school English class onto Perl. First, you don't need this to be able to use Perl. Second, the students who hate their English classes would only think less of Perl through the association. Third, the model of "subject / verb / direct object / punctuation" maps very poorly onto Perl syntax, so you're only setting students up to be further confused later on.
  • In the second lesson, you teach exponential notation, exponentiation, octal notation, hexadecimal notation, and escape characters within strings. If a student asks, say, how to include a quotation mark within a literal string, obviously you should explain how. But if your short-term goal is to write a program to play "Hangman", why include these things in the lesson plan?
  • In the third lesson, your sample program has the line $NumWords = @Words. First, $NumWords doesn't seem to be used in the rest of the program. Second, you're bringing in the implicit conversion of a list to a scalar, a Perl feature which trips up even experienced programmers and which many new students will not find intuitive.
If I were giving middle-school students a six-hour Perl class, I would teach regular expressions. I'd create a words file, write up some one-liners that ground through it with simple regular expressions (that didn't require any escapes), and then have the students try them out, discuss their effects, and make up new one-liners.

This would get the kids involved with the language as quickly as possible, rather than sitting there listening to me blabber on about features and style rules. One could spend six hours teaching nothing but regular expressions, and it would be six hours well spent.

Furthermore, with such a restricted subject, it's easier to assess whether your students have actually learned anything: you can give them problems much simpler and more focused than "write a tic-tac-toe game".

FWIW, I have a master's in deaf education, and have spent some time in front of a classroom in various situations (including a Logo class I did back when I was in high school). On the other hand, I'm not working as a teacher now.

My 13 year old is starting to get it.

gaudior on 2000-04-19T20:31:04

When I replaced my creaky old performa575 with a shiny, new beige G3, I gave the 575 to my son, along with my copy of MacPerl:Power and Ease. He has, on and off been going over the examples, poking at things, trying things. I haven't been 'teaching' in a classroom sense, but he is getting it. He has never been exposed to programming in school, so I felt perl was the best language to start with. He'll be able to use it on any computer he ends up using later in life and it's his old man's favorite, so we'll have things to talk about.;-)

A good reference is the Wolf book, by gnat and jon orwant. (sorry, I'm not looking at right now. can't quite get the title into my head) from Orielley. If I had had something like that, I might have stuck with CS in college. Studying data structures in COBOL and Pascal drove me nuts.

Re:My 13 year old is starting to get it.

gnat on 2000-04-21T16:05:44

I wish I had written the Wolf. Sorry, "Mastering Algorithms with Perl" is by Jon Orwant, Jarkko Hietaniemi, and John MacDonald. I can only claim credit for cowriting the Perl Cookbook.

Nat

Re:My 13 year old is starting to get it.

gaudior on 2000-04-24T12:12:55

I can only claim credit for cowriting the Perl Cookbook

For which I offer many thanks, to you and TomC. I am about to buy my 3rd copy, as they seem to grow legs and wander off to other cubicles.

Teaching Perl to Middle School Students...

r124c41 on 2000-07-07T06:35:45

I have updated the information about teaching perl to middle school students to reflect this year's experiences.

For the Middle School in Fall 1999, we had about 18 kids initially dropping to 14 steady state, made up of 4 girls/10 boys. For the Middle School in Winter 1999-2000, there were 8 kids - all boys. For the Middle School in Spring 2000, there were 2 to 4 kids. The ones who attended regularly were 2 girls.

Re:I wouldn't call this a success.

r124c41 on 2000-07-07T06:43:34

I would agree with Abigail that from a hard nosed point of view of how many kids actually learned Perl and how much did they learn, it wasn't a success.

From the point of view of simply getting the institution of the school to offer the experience, though, it was a considerable success. It is a good school but it still takes a lot of work to get perl to be allowed on the computers, to get a teacher willing to be involved, and then finally to have some kids who are interested.

The other element of success was that I learned a lot more about what works and what doesn't work for middle school students.

(By the way, I appreciate Abigail's critical reading of the handouts. I have updated them and would be pleased to hear of errors.)

Re:I would[n't]

r124c41 on 2000-07-07T06:50:30

The gender of the two teachers taking the course was not disclosed.

During that session (Spring 1998) the two adults were made up of one man and one woman. The woman lasted the longest.

Re:I wouldn't call this a success.

r124c41 on 2000-07-07T07:13:42

Yes, sethg is right on the money in analyzing many of the reasons why my first attempt at teaching Perl to middle school students had such a high attrition rate.

The suggestion of "one liners" (though I didn't try to do regular expressions until about lesson six of my revised approach) was essentially what I learned worked.

In the most successful of the Middle School efforts last year, by the end of the computer club unit (which lasted from about October through January) the 13 or 14 students each wrote their own adventure game in Perl based on a story of their own devising. The stories ranged from "Teletubbies" (which one boy wrote to amuse his little sister) to "Bill Gates versus Apple Computer" (which had some interesting plot concepts).

Re:Teaching Perl to Middle School Students...

r124c41 on 2000-07-07T14:05:32

As a follow up, I wanted to mention that my current direction is to switch the course over to Javascript from Perl. Don't get me wrong--I like Perl but there are a number of reasons from a teaching and institutional deployment perspective that make Javascript more attractive.

Some of them are:

  1. that the Javascript "compiler" is integrated with the browser,
  2. that practically every student both at home and at school has a Javascript-capable browser and, like Perl, Javascript is fairly platform and browser-independent,
  3. that the student can immediately take the Javascript home and put it up on his/her web site and thereby amaze and impress their friends (e.g., to do the same with perl scripts--e.g., cgi-scripts--requires ISP-approval and is too frought with security issues),
  4. that Javascript is more well-integrated with graphics and animation so it more easily satisfies a student's hunger for "making lights flash and bells ring", etc. (I did look at some Perl graphics packages but decided the Javascript approach was better for what the students are interested in),
  5. that Javascript has a level of programmability that is sufficient for getting across the idea of coding. This means that doing Javascript is reprsentative of the coding experience. This fits in with the middle school philosophy of encouraging exploration of topics in order to see what they are really like. Many students, for example, have an unrealistic view of what it takes to program a computer. Arranging that they have to struggle with code and bugs is important. Javascript is sufficiently programmable that they can have to do that and so can take away an experience that is valid enough to guide them accurately as they make career and lifestyle choices.
The Spring 2000 session was the first trial run of that. I wasn't entirely satisfied with it. But the Middle School that I work with in the Spring is my "lab" school. It's small enough that I can try out new things without being in the pressure cooker of having 18 students waiting around while I fix trivial gotcha's.

(The security system on the WNT boxes are causing a few problems because the execution of local scripts appears to be somewhat blocked but hopefully that can get worked out.)