Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
When you learn something, you are most effective if you are able to "latch on" to something you already know and build from there. So, your task as a teacher is to figure out what they already know, compare that to where you want to get them, then build the bridge.

Part of the problem is that they already have prejudices about programming - that it's hard, arcane, and confusing. Of course, we all know that programming is nice and easy, but you have to convince them in their innermost heart of hearts that this is true. And, the neat thing is that it's really easy to go about it.

Everyone knows how to give directions from point A to point B. Well, that's all programming is - giving directions to a moron that will remember everything you tell them and do it as often as you want. So, start them out with exercises on giving directions. Get them to give even more and more detail, because you have to assume the person has less knowledge of the world. I'd progress something like this:

  1. Directions to you
  2. Directions to someone from Europe
  3. Directions to someone from China
  4. Directions to someone who's never seen a car
  5. Directions to someone who has no clue about modern society

As they get more and more complex, go from a list to a flowchart. Then, show them how the flowchart of their directions (with all the added stuff) gets converted into pseudo-code. Presto! They've just written their first computer program. This should take about 2 hours.

At this point, it would be good to break for 10 minutes, let it soak in, then split into small groups in order for them to do another, similar problem. Leave the first one on the whiteboard for reference. After an hour, let them present their solutions.

After lunch, now that they have connected the act of programming to something they already understand, they will have the necessary scaffolding to hook all the stuff you want to teach them. Your syllabus is just fine.

------
We are the carpenters and bricklayers of the Information Age.

Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose

I shouldn't have to say this, but any code, unless otherwise stated, is untested


In reply to Re: What are the most basic, generic aspects of programming? by dragonchild
in thread What are the most basic, generic aspects of programming? by theAcolyte

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (1)
As of 2024-04-24 14:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found