Developing Training Materials

By Ashraf Al Shafaki

Basic Guidelines

When designing a computer course it is essential to follow some basic guidelines.

  • Use a single growing example throughout the whole course. Make sure the example is realistic, preferably take something from real life that is both useful and interesting. For instance, if the course is about web design, you may select the core example to be a travel web site.
  • Start each section with preassessment questions. This helps freshen up student minds and increase their motivation and their ability to absorb new information.
  • Provide a summary at the end of each section. This helps fix the basic information learnt and may also act as a reference for students later on.
  • Follow each section with plenty of exercises. Practice is critical when it comes to computer training. A student might know the information but not be able to apply it. That is why practice is very important.
  • Provide clear definitions of terminology in each section. The amount of computer terminology can be huge. Being able to know the exact meaning of each term and to know the term used for each concept is critical for computer students. Learning the sharp meaning of terms enables computer professionals to communicate effectively, find assistance more easily and be able to understand concepts better.
  • Provide plenty of examples and explanations in each section. It is best to start by providing examples then explain the concepts after that rather then starting by trying to define new concepts and giving examples on those concepts after the definitions. The human brain works best by learning from examples and not from sharp and solid rules.
  • Graphics programming is an excellent way to build mastery of programming in programming learners. Graphics programming gives visual feedback to learners which enables them to grasp programming concepts easily and clearly. Moreover, graphics programming can be very motivating to students due to its self fulfilling nature. Graphics programming also opens up possibilities for learners and fuels their desire for experimentation and self learning by discovery through trial and error, doing further reading and asking around.

Closing the Gap

The problem with many computer tutorials, textbooks and documentation is that they go directly from the formal definition of the technology being explained to the content of the material they are writing. This method despite seeming to be the most logical and simplest route to follow, yet ignores the fact that a formal definition of a technology is made for those creating such technology while a tutorial is made for those using that technology.

For instance, let us take CSS as an example. Many CSS tutorials fall into the trap of reading directly from the CSS specification and trying to follow it line by line translating each of its rules into the tutorial and structuring their tutorial upon the structure of the CSS spec document. This is a big mistake. While the CSS spec document is written and structured in such as way so as to precisely define the CSS language in an unambiguous way for developers of web browsers and web authoring tools to refer to, a CSS tutorial should have a totally different approach and structure that is optimized for those who will actually use CSS to style web pages.


The aim of a training course is to assist the trainee in acquiring new skills. To acquire these skills focus should be set on doing and not just knowing. The amount of information present on the Internet and in books is enormous. Anyone trying to learn a new skill by delving into this enormous body of information on the Internet might just get lost and get overwhelmed by the sheer amount of it.

The goal of a training course therefore is not to try and cram as much information as possible into the heads of trainees. The information is always there on the Internet. The goal of a training course should be to try and assist the trainee in finding direction in order to navigate smoothly through this huge amount of information present which would otherwise be confusing to the beginner. Consequently, the course should be simple, clear, and most importantly brief. Focus should be given to essential points. The goal should never be to fill in the head of the trainee with the largest amount of information possible.

It is not just impossible to fill the heads of trainees with everything about the subject underhand, but it is simply counterproductive. A process called information overload can take place in the trainee's head and can block his/her ability to actually do effective and balanced things with the skills he/she learns. Information overload can also impair creativity and kill any potential for further enhancement using self-learning. An agile, lightweight, swiftly moving mind would be better equipped to handle the constantly and rapidly changing elements of the IT world. A brain overweighed with loads of information would simply not be capable of performing in such an environment, not to mention the inability to cope with rapid change.


  • Keep the course brief (80 pages or less for a 24-hour/8-lecture course).
  • Keep discourse to a minimal.
  • Give examples to a maximum.
  • Give simple examples. Do not include 'clever' tricks or non-standard code. Follow conventions and best-practices.
  • Give a single case example and build upon it throughout the lessons. As new skills are learnt through lessons, elaborate on this case example. Use no more than two or three inter-lesson case examples throughout the whole course. A single case example throughout the course would be best unless absolutely necessary to use more than one.
  • Leave room for plenty of lab work. Give plenty of simple easy-to-follow lab exercises plus a few more challenging ones for the more daring students.
  • Do not make an exhaustive list of all commands or a table listing all possibilities. If you find it absolutely necessary, then include such an exhaustive list in a separate appendix at the end of the book and refer to it inside the lesson.
  • When introducing a new concept or feature, let students first feel the need for this concept or feature. Then introduce this concept/feature as a natural solution for that problem or need. Give realistic problems or needs, never give superficial ones.
  • Use the bare minimum when giving code examples. Do not complicate things.
  • Whenever possible, use examples right away instead of expository when explaining new concepts.


For each Track

  • job role: (ex: network admin, web developer, web designer, graphic designer, software developer, systems analyst, technical writer, secretary)
  • objectives: (to be taken from the "responsibilities" section of job ads)
  • duration: total duration of courses + project
  • courses
  • project

For each Course

  • title
  • objectives
  • prerequisites
  • duration: total duration of lessons
  • software and hardware requirements
  • table of contents
  • lessons
  • index

For each Lesson

  • title
  • objectives
  • duration: total duration of learning objects
  • pre-assessment questions
  • overview
  • learning objects + glue
  • summary
  • review questions

For each Learning Object

  • title
  • objectives: what will be achieved after learning this learning object
  • prerequisites: zero or more learning objects upon which the current learning object depends
  • duration: estimated amount of time needed to complete the learning object
  • explanation: discourse introducing the learning object and explaining it
  • examples: illustrative examples to help in understanding the learning object
  • lab exercises
  • assessment: a set of MCQ questions.


  • Punctuation is never preceded by a space. For instance, write "Is this is a question?" and not "Is this a question ?" Putting a space before the question mark (or any other punctuation: a coma, a period, or a semicolon) is incorrect.
  • Insert a space between a word and opening brackets after it. For instance write "I like (or even love) this kind of books," but do not write "I like(or even love) this kind of books."
  • Use "and" instead of "&."
  • Do not use brackets a lot in sentences.
  • Hyphens are often used in English to make a noun or an adjective that is composed from more than one word. For example you can say "a not-so-good idea" to qualify the word "idea" using a compound adjective which is "not-so-good." Hyphens are not used with verbs nor are they used to combine words that have "and" in them. For example it is wrong to say "save-and-exit."
  • When using a word figuratively put it between single quotes and not between double quotes. For example say: This cat 'talks' well. Do not say: This cat "talks" well.
  • When wanting to start in a new page do not use carriage returns (Enter) to reach the new page. Use a page break instead.
  • Do not use smilies :-) :-(.
  • Insert a space between a number and the word following it. Write "2.1 Functions" and not "2.1Functions."



  • Use no more than two or three different fonts in your entire document.
  • Do not use colors other than black for text. The course book will be printed in black and white. Colors might print with a light shade of gray that may decrease readability. Moreover, designing the document in color will not give a correct view of how it would look like in print.

Body text

  • Use a serif font. You can use Times New Roman, yet preferably use Georgia .
  • Use a 12 point font size.
  • Do not underline. Use italics on a specific word instead to emphasize it.
  • Do not write a word in all uppercase to emphasize it. Use italics instead.
  • Paragraphs should not be right justified. Paragraphs should be left unjustified to allow for easier reading.

Titles, subtitles

  • Use a sans-serif font. You can use Arial, yet preferably use Verdana.
  • Use a large point size font (14 - 28).
  • Do not underline.
  • Do not use italics.
  • Do not put a colon at the end.
  • Start every word (except prepositions and two-letter words) with a capital letter.


  • Use the Courier New font.
  • Use a 12 point font size.


  • Use Microsoft Word to write your course book document.
  • Keep the view of the document at a 100% zoom factor.
  • Save the document with the name of the course followed by the word "Course". For instance, if you are developing the JavaScript course, save the document as "JavaScript Course.doc".
  • Compress the document using WinZip.