Dear Andy, I have been away and came late to this excellent discussion.
I personally would have only taught the loop constructs without break at this level, and then it is true that the problem 'only' needs the basic syntactic components of loops, decisions, and compound logical expressions. I have found that students pick up ability with decisions very easily (often written in a non-optimal but successful fashion if there are multiple choices) and loops are a lot harder, even basic loops. What is left out is what is takes for the creative or logical steps to compose the pieces in previously unused ways. This is the major challenge, and I think Andy underestimated the amount of creativity required. One can scaffold, giving a student some ownership of a more complicated combination, but the scaffolding does exactly what the name suggests, providing a pre-supplied framework into which you can supply smaller pieces. It gives the illusion of completing more than you have, because a large part of the creative process is hidden in the pre-supplied framework. If you give another problem that needs the same framework, then you are fine. For instance, I have taught as a specific pattern loops with two possible end conditions, with the compound condition and decision after the loop. (Actually I taught it in the more complicated situation where the short-circuit order was important -- a linear sentinel search., where a very subtle bug is caused by the wrong order.) Without having specifically taught such a pattern before giving Andy's problem, I agree with Ivan, that a good logical/mathematical background is likely to make it much easier. Without either, it is a considerable creative process to put the syntax pieces together in the right combination. It would have been a lot easier if 'Mr. Judkis' were the only allowed answer. The idea of deferring the final response until after a conditional outside the loop is subtle for beginners. (I certainly use the scaffolding approach often, though I an still not sure how to use it most effectively to help students gain creative abilities to solve from scratch a problem with a completely *different unknown* pattern.) For me, teaching syntax is boring and straight-forward. Syntax and basic examples using one syntax element at a time do not take your students very far. It is a creative process to get a complicated problem and decide how to combine the basic syntax elements. Teaching the creative process is exciting and challenging, and often frustrating. Different students seem to need such different buildup and guidance. As far as I am concerned, teaching introductory programming is mostly about this creative process. Andy Harrington Andy Judkis wrote: > I've just completed my 6th semester as a teacher, teaching 2 sections per > semester of a 10th grade course that includes a 4 week introduction to > programming in Python. Here's a question from one of my exams: > > Write Python code that will ask the user how who is the best looking > teacher in the school. The program must loop until the user responds either > "Mrs. McGrath" or "Mr. Judkis". If the use responds "Mr. Judkis", the > program must print out "Excellent choice." If the user responds "Mrs. > McGrath", the program must print out "Also a fine choice." If the user > responds with anything else, the program must print out "Wrong, sorry." and > ask again. > > Rather than catalog my frustrations, let me just pose a question to you > all -- how much Python exposure do you think it should take before a student > should be able to answer this question? If a student can't even answer > this, is it reasonable to say that they have learned any programming at all? > (I know that they might have learned something -about- programming, but that > is not the same thing.) > > Thanks, > > Andy Judkis > > (By the way, anybody out there going to be at CS4HS next week at CMU? If so > I'd love to get together with you . . ) > -- Andrew N. Harrington Computer Science Department Director of Academic Programs Loyola University Chicago http://www.cs.luc.edu/~anh 512B Lewis Towers (office) Phone: 312-915-7999 Snail mail to Lewis Towers 416 Fax: 312-915-7998 820 North Michigan Avenue [EMAIL PROTECTED] for graduate admin Chicago, Illinois 60611 [EMAIL PROTECTED] for undergrad admin [EMAIL PROTECTED] as professor _______________________________________________ Edu-sig mailing list [email protected] http://mail.python.org/mailman/listinfo/edu-sig
