Unit 8: Prototype development

Learning outcomes

By the end of this unit you should:

  • have designed a prototype
  • have developed a high-fidelity working prototype
  • have improved the prototype based on feedback

Activity 1: Steps in prototype development


There are many types of prototyping. In this course, prototype development refers to the creation of a high-fidelity system that uses working code. The recommended programming language for is Python for NLTK or JavaScript for NLP compromise.

When prototyping there are two key phases: development and evaluation. Evaluation is considered in the following unit, and so only the development phase is discussed in this unit. Development can be divided in multiple ways, but we will use a three-step approach. These steps are:

  1. Design
  2. Development
  3. Refinement

Each step is detailed in the following activities.

software development life cycle

Activity 2: Design


Software design process can be sub-divided into three aspects:

  1. User interface design
  2. Architecture design
  3. Detailed unit design
User interface design

Here it is necessary to consider how people, systems and devices may interact with the tool. For most tools developed during this course, the primary users will be learners of English. For complex tools, it may be necessary to create a design problem statement to identify the agents involved. This statement will identify environmental events and messages from agents that must be addressed. The events and messages need to be identified as precisely as possible. The specifications for the data input and data output need to be determined. Any relationships between events and message need identification.

Architecture design

In this stage, the major system components are considered. The relationships and interactions between the components need to be identified. In many systems, there will be a client-side user interface and a server-side database interface.

Detailed unit design

In this stage, the internal components of each of the items in the major system are considered. The relationships, properties, processes, data structures and algorithms need to be considered. Each unit in the system is assigned a functional responsibility. This makes it easy to identify unit states and changes, control interaction and data flow between units.

programming languages

Activity 3: Developmment

Work with your team to create a prototype.

If you need any help, ask your peers and classmates. If you need help from your tutor, email him directly. If you have a problem, do not wait until the day before submission!


Activity 4: Watching

Watch and listen to this advice on how to solve coding problems (8min 18sec). There are eight steps, all of which should help you.

Knowledge and application

Activity 5: Refinement

Get someone who is not on your team to try your prototype. Record their feedback. Then, make any necessary changes to your prototype.


Make sure you have:

  1. designed your prototype
  2. developed a working prototype
  3. have acted on feedback received from peers and/or your tutor

Running count: 60 of 60 concepts covered so far.

"I made 5,127 prototypes of my vacuum before I got it right. There were 5,126 failures. But I learned from each one. That’s how I came up with a solution. So I don’t mind failure." - James Dyson, British inventor

Copyright John Blake, 2022