logo

Unit 8: Prototype development

Learning outcomes

By the end of this unit you should:

  • understand how to brainstorm ideas
  • have selected an aspect of time and tense to visualize
  • have designed a prototype visualizer
  • have developed a high-fidelity working prototype
  • have improved the prototype based on user and/or peer feedback
Rubik

Activity 1: Steps in prototype development

Read.

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. There is no limitation on the choice of programming language, and previously students have submitted work in Golang and Elm.

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 four-step approach. These steps are:

  1. Idea generation
  2. Design
  3. Development
  4. Refinement

Each step is detailed in the following activities.

software development life cycle

Activity 2: Team or individual work

Read, decide and take action.

You are expected to create a working prototype. In a face-to-face teaching, I would recommend teams of four. The benefits of teamwork are numerous - sharing the workload, learning from others, focussing on strengths, developing communication skills and learning how to cooperate. The main downside of teamwork is the time needed to communicate. Team members who do not do their fair share of work can cause stress, too. However, given covid-19, I understand that many of you may prefer or have to work individually.

Please fill out the Google form on ELMS to let me know your choice.

  1. Team of one: You will work by yourself.
  2. Named team: You have arranged and named own team.
  3. Unknown team: You want to join a team.
individual or team

Activity 3: Brainstorming

Watch and listen to a short explanation (2min 38 sec) on using brainstorming to generation ideas quickly.

If you are able to work with a team, try brainstorming to get as many ideas as possible - good ideas, bad ideas, crazy ideas and with luck - great ideas. Brainstorming is an ideal way to generate ideas quickly. Once you have a long list, then you can each one more carefully.

Activity 4: Idea generation

Select one of the ideas given below, or generate your own idea. Submit your team idea via ELMS.

This is a non-exhaustive list of ideas for projects that can visualize time and tense.

  1. Tenses: Detect and visualize one or more tenses.
  2. Time expressions: Detect and visualize one or more types of time expressions.
  3. Text generation: Generate text and graph from table.
  4. Future aspect: Detect and visualize tenses referring to future time.
  5. Narrative tenses: Detect and visualize tenses in stories, e.g. past progressive, present perfect and simple past.
  6. Tense shifts: Detect when tense changes in story.
  7. Textbook checker: Detect expressions that textbooks state co-occur with present perfect, e.g. just, already, never, have you ever, the first time.
  8. Past tense colorizer: Detect and colour past tense verbs according to type, e.g. regular, irregular.
  9. Your choice: Detect and visualize some aspect of tense and/or time.

This is a non-exhaustive list of ideas for more challenging projects that will result in an overall grade A providing (1) the code works and (2) the code is not plagiarised, e.g. sources are clearly stated.

  1. Tenses (Python): Detect and visualize future predictions and plans. Use machine (deep) learning to distinguish between use of two uses "will" and "going to".
  2. Text generation (Python): Generate a five-sentence paragraph and graph from a table.
  3. Your choice (Python): A challenging project.

Once your team has submitted your choice of topic, you will receive some specific advice on your project

idea light bulb

Activity 5: Design

As a team, consider the following questions.

  1. What will your tool detect?
  2. How will it detect it/them?
  3. What type of visualization will be used?
  4. How will it work?
  5. What software will you use (if any?)
  6. Which progamming language will you use (if any?)
  7. Which libraries will you use (if any?)
  8. What help do you need (if any?)
programming languages

Activity 6: Developmment

Work with your team to create a prototype.

If you need any help, post a message in the forum and other students may respond. If you need help from your tutor, email him directly. If you have a problem, do not wait until the day before submission!

Either share a link to your VCS account (e.g. Github), your online tool or your draft code via ELMS.

help

Activity 7: 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 8: Refinement

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

Either share a link to your VCS account (e.g. Github), your online tool or your final code via ELMS.

Review

Make sure you submit each assigment on time.

Running count: 70 of 70 time-and-tense-related concepts covered so far.

"The great science to live happily is to live in the present." - Pythagoras

Copyright John Blake, 2020