5
votes

I will teach Linux to people of the ages 20-75 with no prior Linux knowledge. I want to teach some basic concepts (what's an OS, what's a file system) and some practical knowlede: How to install it, network configuration, set up email client, installing software with a packet manager, etc.

I have held a system administrators course in the past, but was under the impression that my method of teaching was not adequate. I've explained what I was about to show, showed students on the projector, told them to repeat it on their computers and summarized what they should have learned. They could ask questions all the time. But I fear they remembered only one-third of the knowledge I taught them.

I have two questions here:

  • Are there better methods to teach this particular subject in a classroom equipped with computers?
  • Are there some tricks that "slow me down" when I teach stuff that I know inside-out?

4 Answers 4

2
votes

The most important thing to do in the early stages is to avoid being technical at all. If you start with anything even slightly complex you will put them off from the get-go.

These people probably already use Windows or MacOS with absolutely no idea how it works or how to install it if it isn't already provided, so first show them that Linux can be that comfortable too. For example have Ubuntu (or your preferred choice of desktop oriented distribution, Ubuntu certainly isn't the only one) pre-installed on the machines that they are going to be using and hand out a bunch of Ubuntu USB sticks for them to plug in and run for if they are going to be using their own machines.

Show them that starting the OS and accessing the web browser, mail client and office applications can be just as easy as with any other OS. This will reduce the "fear of alien territory" and give them a good place to start from which they can progress to installing new applications and changing the configuration of existing ones. Again, try not to ramp up the complexity to quickly or you will put off those who are not generally technically inclined - if you go too far too fast it will seem far too abstract for them, so take small but concrete steps so they learn a little at each step and can build on that in the next step rather than trying to get there head around several new things at once.

On slowing yourself down, you could try the public speaker's "tell them what you are about to say, say it, then tell them what you have said" rule with slight variation "tell them what you are about to do, do it to show them talking through the processes as you do, then explain what you have just done". Try not to be too repetitious, of course, and this only works in small blocks of information, but the explain-do-reenforce method can work well.

Also, talking through a process while you do it as an example will artificially slow you down - avoid the temptation to throw in several commands and clicks in one go and explain them afterwards, do each step at a time and talk in between. This works particularly well if you are about to ask them to perform the same task on their stations, as this becomes part of the explain-do-reenforce process (you do+explain, they do step-by-step with you repeating what was said in the example before, then repeat key points and ask them to talk about it (i.e. "any questions?" or "how does that compare to what you do with ?" or "do you think you could use this for XYZ?").

2
votes

My tips are:

  1. Capture their interest by showing Linux do something (three or four more commands in a series of pipelines tac| awk| sed | grep |sort |uniq. Then show them how each one works.
  2. Get each person to tell you something they want to achieve on the course and help them work towards that objective.
  3. Get a good grasp of your training materials and stick to just enough for you to get the course completed.
  4. Encourage questions and try things out with the students individually (sometimes it's best to put a certain amount of time on the course aside for this stuff).
  5. Look at 'classic' book like "The Unix Programming Environment", "Programming Pearls", "Unix Power Tools" and see how they teach different concepts.
1
  • "Get each person to tell you something they want to achieve on the course and help them work towards that objective." To add on this: Save some of these objectives you feel being the most productive for future courses to serve as examples.
    – korkman
    Apr 3, 2010 at 13:33
0
votes
  • let them try. "The theory is the practice of grandmasters." This was said about chess, but applies perfectly to many things, including linux. You can master something only if you try to do that and try hard. Sole talent is almost worthless, you have to be persistent.
  • if you manage to push the newbies into groking the MVC pattern, that would be a huge achievement. Because there are so many linux distros with their specific gotchas. Teach them to see the important things, not the external looks.
  • do not forget that if you know something well, you start accepting it as axiom, you think less about details. Try to look at things from a newbie's perspective, that'll help you to explain in better to others
0
votes

Here's a few tips that have helped me get across unix and networking concepts.

  • Unix everything is a file!!!!

  • X windows GUI is just a program, like any other program

  • Unix is like plumbing, instead of plumbing water , your plumbing data. I use lots of slides with water pipes and plumbing diagrams, people don't understand unix, but they do seems to understand house hold plumbing. :-)

  • networking encapsulation can be thought of like Russian dolls.

    http://arts.anu.edu.au/languages/russian/russian_dolls.jpg

  • depending on the level of the users, getting the to a do a lfs install get most users understanding the basics and also lets users gain a sense of achievement (i.e. they built their own operating system).

  • Using recorded screen sessions of common tasks, that can be taken home by students and replayed in their own time.

  • Teaching users how to ask questions, if you can ask better questions you get better answers!!!.

  • Sessions should be split into Theory, Q&A and Practical Sessions. Practical sessions should have a well defined goal and a time limit. You should be able to identify which students are happy with the material and those that need extra help.

  • This guide is free and is good for people who are just starting. http://rute.2038bug.com/index.html.gz

  • Introduce them to IRC newbie channels!!

  • A picture paints a thousands words, lots of stuff in computer science is abstract, so the use of diagrams and slides can get students to 'get it'.

  • Get them to read server fault.

Not the answer you're looking for? Browse other questions tagged .