Create a software product idea generator


Resolution: Group
Duration: Two to four hours, More than four hours

Overview


Goals

In this project, students will create an idea generator that creates a randomized idea for a new software product based on a pre-existing database of elements, organized in the following categories: need, target audience, design characteristic, technology used. By randomly choosing an element from each category and formulating the result as a full sentence, this generator can be used as a source of inspiration for students trying to come up with a fresh and innovative idea for a PBL project. For example, the suggestions generated by the tool can use the following structure: A(n) [characteristic] product that uses [technology] for [need], aimed at [audience]. Consider the following example suggestions: - An easy-to-use product that uses augmented reality for efficient recycling, aimed at middle-school students. - A gamified product that uses neural networks for flagging fake news, aimed at the general population. The suggestions generated by the tool can inspire future students’ projects. They do not, however, need to be taken literally. In fact, due to the randomized nature of the tool, not all ideas will make equal sense. Users may need to run the generator several times and possibly “lock” the elements they like while randomizing the others. If the time permits, the database can be made updatable by future users.

Learning Objectives

- Analyze existing needs, potential target audiences, as well important and emerging technologies in software engineering (while preparing the database) - Utilize the principles for effective, responsive, goal-specific user experience design (when designing the UI) - Devise a software architecture suitable for the tool - Create a simple randomizer, read from a database (e.g. SQL) or a file (CSV, XML, etc.), render the selected elements as a grammatically correct sentence

Context

Computer-aided and technology-enhanced creativity has become a prominent trend in both education and software engineering. One case in point is the emergence of various online "idea generators," which focus on a broad range of topics, ranging from plots and storylines to brand names. See some examples here: https://www.plot-generator.org.uk/story-ideas/ and here: https://namelix.com/. This example was made by Tallinn University students for educational game ideas: http://dlg.tlu.ee/ While usually basic in terms of the programming skills required, these idea generators can be fun to create and use; in addition, designing and developing them requires a consideration of the users' needs and experience. This connects the programming aspect of the exercise with software design and broader societal context, illustrating how real-life software products are made.