PEN Platform Spec

Feature Ideas

Online Development


  • The ability for users to edit lessons and for them to be 'forked' (branching variations on lessons while noting where they came from)
  • Modular lessons; paragraphs or other small parts of a lesson should be distinct blocks that can be easily used in other lessons (see “what is a lesson, anyway?” for more info). The lesson-creation UI should suggest modules appropriate for insertion to make lesson writing simpler.
  • The ability to organize lessons with subject tags, stages of completion categories, and into ordered curriculum groups.


  • In-line commenting on lessons
  • Additional methods of organizing lessons: ratings, “official” versions
  • Ability to make other documents associated with lessons that do not have a lesson format - i.e. a worksheet for a class or a set of homework questions.

Appropriate UI


  • A design that is friendly and easy-to-use for non-tech-savvy users
  • Works well for low-bandwidths


  • The ability to display lessons in a printer-friendly format
  • Easy way to put pictures into lessons (without the use of scanners or cameras). For instance - ability to make simple illustrations online without uploading, or an easy way to put pictures in lessons by uploading via cellphone.

Connecting Resources


  • Ability for users to upload files in their chosen format to a searchable database


  • Discussion space (for users to ask questions about lessons, share info etc)
  • Mapping of local resources for lesson and project supplies - a way to share, for example, where to buy electronics supplies in a particular city.
  • “Request” feature for a particular lesson or skill - could be a simple email webform to admins, or a discussion space like Vark or Stack Overflow.
  • Map showing where people are contributing from


  • One webmaster account, several admin accounts, many contributor accounts, and potentially 'student' accounts
  • Front end flexibility: the UI will need serious user testing, so it should be easily modifiable.


So what is a lesson, anyway?

Roughly, PEN 'lessons' are editable documents that provide all the information needed to teach students. Our lessons aim to give students knowledge and to teach them how to make things: all lessons have 'know' and 'do' goals, and many will have prerequisites in one or either category.

Lesson Structure

PEN lessons are divided into a loose 4-part template:

  • 1. Short Intro Paragraph: Describes what the lesson contains - what concepts it teaches, what concepts are required to take it, what happens in the lesson. Approx 200 words.
  • 2. Materials List
  • 3. Background Concepts: Descriptions of all the background science and technical concepts relating to the lesson (e.g. if they were writing a lesson on how to build a DC motor, a user might write background descriptions of induction and torque-speed curves). It could also include step-by-step guides for how to do practical experiments. Preferably should include illustrations.
  • 4. Lesson Plan: Step-by-step in-depth lesson plan, including discussion prompts, teaching tips and detailed activity instructions. Illustrations should be able to be added if users want them.

An example of the kind of lesson users would make is (here).

The 4 sections described above (particularly sections 3. and 4.)can be divided into a series of sub-sections under headings. For instance, a “background concepts” section will be divided into a series of sub-sections (called 'blocks'), each relating to a different background concept or experiment (e.g.”how diodes work” or “experiment to find IV curve of solar cell”). A “Lesson Plan” section is divided into blocks, each relating to an activity done in the class (e.g. “brainstorming session: ways to convert energy” or “group activity: experimenting with mirrors”).

Since many lessons will reuse the same material (for instance, a lesson on motors and a lesson on generators would both talk about electromagnetism), we want teachers to be able to easily search for existing blocks and import their text/images into their own lessons for editing.

Lesson Organization

Description tags - lessons should be associated with a series of “INPUT” (required to teach the lesson) and “OUTPUT” (gained from the lesson) tags. INPUTS cover pre-requisites the students need to have (concepts they should know or skills they should have) and the materials and tools required to complete the lesson. OUTPUTS cover the concepts and skills that students learn in the less, plus any things they make or design in the lesson.

For instance, a lesson's inputs might be “general soldering skills” and “designed H-bridge circuit diagram” and it's outputs “PCB solderings skills” and “completed H-bridge circuit”.

Curriculum Groupings - lessons will also be put into linear progressions called curricula. Lessons can be in more than one curriculum, and users should be able to create their own.

Stage of completion - Lessons should have a known “stage of completion”, showing whether they are a lesson that has been taught successfully several times, a lesson that has just been finished or a lesson that is still in the process of being written.

Lesson Development/Editing

Users should be able to create a custom version of any lesson ('forking' it, in open source terminology) - this is important because the availability of materials or relevance of concepts may vary from place to place. When a user edits a lesson, they should be able to save and re-tag their own version of the lesson, forking the lesson onto their own branch, without changing the original lessons. These forked lessons should be accessible to other users to view, fork or use blocks from.

Notes on lesson UI

  • The lesson editing UI should be an online workspace where lessons can be edited and blocks can be copied from one lesson to another.
  • Because of slow/limited internet connections, offline capability to use the interface to some extent is essential.

Other Editable Documents

The platform should also have miscellaneous other pages, such as teaching tips or in-depth how-to guides on a particular activity (e.g. “how to hold a brainstorming session” or “how to solder onto photovoltaic cells”) that do not specifically fit a “lesson” format, but can be edited and forked in the same manner.

Project/Information Sharing

As well as the specifically formatted lessons, we also want there to be a space where users can upload content in any format they want - where that's uploading photos of projects they've done, class reports or just information about a subject they're an expert on. These uploads should be tagged and captioned, so that they can be searched for, and used as a resource by people developing the formatted lessons.

You could leave a comment if you were logged in.