I have created a basic computer education project for an audience of elderly students (over 50 years old).

The course is very basic, with lessons from "How to turn on/off your home computer" to "Create your first e-mail" to basic use of the Microsoft Office suite.

After the end of those classes, some students started to look for a more advanced course, covering topics such as programming. With them in mind, we were trying to define a basic CS/programming curriculum for them.

One of the challenges here is the students' expectations:

  • With a hands-on/bootcamp approach we can intimidate some of them who want the course just for curiosity and not to get a new career;
  • On the other hand, a very theoretical course will not meet the expectations of these students who want a career change or something similar.

I know that is impossible meet everyone's expectations, but does anyone have any previous experience in the creation of a programming curriculum for an elderly audience? How can we balance the students' expectations?

  • 4
    $\begingroup$ I'm not sure that "elderly" is enough information here. Is this a recreational course at a retirement facility? Are these just regular adults signing up for coursework in order to learn a skill? $\endgroup$
    – Ben I.
    Commented May 26, 2017 at 15:14
  • 2
    $\begingroup$ Do you have the scope to break the course into optional modules, or structure it more as a drop-in (with a published schedule)? $\endgroup$ Commented May 26, 2017 at 15:29
  • $\begingroup$ There is a discussion about this thread here $\endgroup$
    – Ben I.
    Commented May 26, 2017 at 17:54
  • 1
    $\begingroup$ I don't think that one-size-fits-all approach is good. State the goals of the class beforehand. $\endgroup$
    – user58697
    Commented May 26, 2017 at 19:03
  • 1
    $\begingroup$ @SeanHoulihane. Break the course in modules is an good idea that actually never crossed my mind. I'll think about it and share with my partners. $\endgroup$
    – James
    Commented May 29, 2017 at 11:27

6 Answers 6


If the students in this course are the same ones, or similarly educated, that finished the last course, you could be over thinking the issue. They don't yet have the exposure to know they want to become programmers.

Design the next course as an Introduction to Programming. To borrow from the course catalog for KCTCS pg. 253:

Computational Thinking

Promotes understanding of computer programming and logic by teaching students to think like a computer. Covers skills needed to develop and design language-independent solutions to solve computer-related problems. Covers development and design basics including use of variables, control and data structures, and principles of command- line and object-oriented languages.

That should give the enough knowledge to choose programming as a second career if they want. As an alternative, you could do web page development. That gives a faster return on their work, and allows you to also cover programming using JavaScript. Web page creation is something that more of your audience can potentially utilize in personal life, without having to make a career out of it.

As a third course you could get into the theory and "nitty-gritty" of programming.

  • $\begingroup$ You might want to elaborate on "They don't yet have the exposure to know they want to become programmers" and maybe add some more specifics about the course $\endgroup$
    – thesecretmaster
    Commented May 30, 2017 at 10:29
  • 5
    $\begingroup$ The OP states the previous course covered from "turning on the computer" up to email and "basic use for Microsoft Office suite." At that level they haven't learned enough to know what programming is, so how can they know they want to do it? $\endgroup$ Commented May 30, 2017 at 10:38

Age in itself may not be the significant characteristic. For example, it is common for our undergraduate computer science classes to include students over age 50 as they constitute part of our demographic (in which the average age of undergraduates is 23 years). Perhaps key issues are student background and preparedness.

You might consider approaches successfully used for "broadening participation" in computer science, regardless of the age group to which they were initially applied.

Examples of the kinds of resources that might be applicable include Exploring Computer Science and CS Unplugged


I've personally had a lot of enjoyment from doing something like FreeCodeCamp (https://www.freecodecamp.com) and wonder if older adults might like starting out with something like simple web design. It seems like most people probably have a reason to make a website, and knowing the basics of web design helps to understand how the internet works. The nice thing about FreeCodeCamp is that it is self-paced and has some theory, so if people want to keep going toward a career that is an option, but if not, there is no pressure.


As mentioned before age is generally speaking not significant for this problem.

I believe that the safest bet is an hands-on/bootcamp approach, since a very theoretical course may just scare away both people who take the course just for curiosity and those who want a career change.

I think one of the key aspects here is which programming languages and tools you decide to use.

  • $\begingroup$ Learning to program is definitely hands-on. It is as close to riding a bicycle as your brain is going to get. $\endgroup$
    – user737
    Commented Jun 14, 2017 at 19:19

If the goal is simply to handle two types of audiences, you can structure the entire course that way - suggest that every class member choose a path. The rough outlines of the course will be the same, but the assignments will be rather different. Those who are looking for a lighter introduction won't have to understand every word said in class, whereas those on the more serious track will be expected to keep up and speak up if they run into trouble.

Two-path courses are a little harder to design, but can pay off handsomely, with courses that everyone feels comfortable and learns in. It's hard to give more specific advice about how to split tracks until a general topic is chosen. (Phone app programming? Intro to Java? HTML/CSS/SQL/Javascript?) The bulk of the split-curriculum planning then goes topic by topic, lab by lab.


Have you considered teaching Debian Gnu/Linux. This is a Unix operating system, and consists of only Free Software, that is software that allows you to be free, including the freedoms to use, study, modify, and distribute (for any price).

This has may advantages:

Freedom to use in the way that why want.

The system is written for the user. Not for the company that made it, for media companies, for advertisers, or for the NSA.

Ease of use

It is now easier to use that Microsoft's Windows:

  • It has a very nice windowing system (a choice of several, I like kde, but gnome is simpler), more powerful, and more consistent to use that Microsoft's.

  • It also has a very nice command-line interface: much, much better than Microsoft's cmd. This is used by intermediates and experts as is much easier, for most tasks, than a graphical interface. Most people use both, as they are well integrated.

Good for beginner, intermediates and experts

Microsoft has successfully optimized their software to be easy to use for beginners, specifically the first few weeks. After that while we, as experts, usually know how to do things, it is a lot of effort. Also there are a lot of surprises for beginners and intermediates.

In Microsoft's Windows , if there is no button to click, then you choose, don't do it, or get visual studio out, and write a C#/VB program. In Unix there as a gradual path from beginner to expert.

Easy to learn

Because it is more consistent, it is easier to learn. When I put Debian on my dad's computer, he stopped phoning to ask for help. He just used it. Before this I could go around to see him, and he would explain what he was trying to do and how he was trying to do it. I would often have to say, you seem to be doing it all correct, I have no idea why it does not work. I eventually got fed up and installed Debian.

Learn it once

Unix improves, but they ensure that it stays backward compatible. What I learnt is 1991 is still (98%) applicable today. However this has not held it back (some people disagree), at least it has not held it back enough to allow Microsoft to catch up.

Lots of software

You think space is big, but that is peanuts compared to Gnu/Linux. Debian currently has ≈ 43,000 packages (180GB, but you will not need it all, ½GB for a good system, I am a power user and mine in 15GB): These include Office tools, web-browsers, web-servers, software-development tools, etc, etc …

Uses less resource

Installing Apache warns 540 kB additional disk space will be used. Mono Develop (Like visual studio, written by novel) warns 13.6 MB of additional disk space will be used.

These are big programs, that do as least as much as the Microsoft equivalent. Apache is currently the worlds most popular web-server.

What's a Virus

A virus is something that attacks through vulnerabilities in the operating system. Unix culture is to fix the vulnerabilities.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.