This file is auto-generated and should not be modified manually.
A collection of story and narrative ideas that can be used when writing Concept Exercise specs.
Concept | Story | Description |
---|---|---|
actor-model |
Take-A-Number Machine | You are writing an embedded system for a Take-A-Number machine. It is a very simple model. It can give out consecutive numbers and report what was the last number given out. |
anonymous-functions |
Bomb Disarming | Hello again, Agent Double-Null0111. |
arrays |
Elyse's Enchantments | As a magician-to-be, Elyse needs to practice some basics. She has a stack of cards that she wants to manipulate. |
arrays |
Garden bird count | You're an avid bird watcher that keeps track of how many birds have visited your garden in the last seven days. |
basics |
Lasagna Recipe | The story of this exercise uses a lasagna recipe to focus on the creation of basic functions, operators, integers, and return values. |
binary-data |
File Sniffer | The story of this exercise uses the premise of comparing the file extension to the binary file format to explore the ideas of binary data, pattern matching, string encoding. The student is tasked with writing some functions to compare the expected media type to the file's encoded media type. |
booleans |
Pac-Man | This story uses the classic arcade game Pac-Man as a basis for teaching the boolean type / boolean logic concept. |
booleans |
RPG Quest Logic | In this exercise, you'll be implementing the quest logic for a new RPG game a friend is developing. The game's main character is Annalyn, a brave girl with a fierce and loyal pet dog. Unfortunately, disaster strikes, as her best friend was kidnapped while searching for berries in the forest. Annalyn will try to find and free her best friend, optionally taking her dog with her on this quest. |
classes |
Amustment Park Attendee | In this story, you are working with an amusement park to implement an admittance system. People (attendee) come in to the park and are measured for their height on arrival. This is because certain rides in the park require you to be a certain height to ride for safety purposes. |
classes |
Remote control car | In this exercise you'll be playing around with a remote controlled car, which you've finally saved enough money for to buy. |
closures |
Web Design Agency | Your design company has primarily been working with CSS transformations to build webpages. After some discussion, a decision is made to start using JavaScript to perform some of the calculations dynamically. Some of your teammates are less experienced with JavaScript, so you decide to use a function closure to create reusable transformation for {x, y} coordinate pairs. |
conditionals |
Vehicle Purchase | In this exercise you're going to write some code to help you help you prepare to buy a new vehicle. |
constructors |
Remote control car race | In this exercise you'll be organizing races between various types of remote controlled cars. Each car has its own speed and battery drain characteristics. |
datetimes |
Appointment scheduler | In this exercise you'll be working on an appointment scheduler for a beauty salon in New York that opened on September 15th in 2012. |
datetimes |
The Time-Keeper | Sarah is a time-keeper. She's actually the best there is. When asked by kids what a time-keeper does, she loves to show them a jar full of white sand. See, she says: "I'm keeping time safe!" |
deep-dig |
Basketball team website | You're working on a website for basketball team. The website displays lots of data, but unfortunately what is displayed changes often. As the data is stored in a single object, this is not hard to do, but it is time-consuming and boring. You've therefore decided to automate things. |
enumerable |
Fashion Boutique | You are running an online fashion boutique. Black Friday is coming up, so you need to take stock of your inventory to make sure you're ready. |
enums |
Log line parser | In this exercise you'll be processing log-lines. |
errors |
Instruments of Texas | In this exercise you will be handling errors being raised by functions created by your team while creating an RPN calculator. |
flag-enums |
Website account permissions | In this exercise you'll be checking permissions of user accounts on an internet forum. The forum supports three different permissions: |
floating-point-numbers |
Savings account | In this exercise you'll be working with savings accounts. Each year, the balance of your savings account is updated based on its interest rate. The interest rate your bank gives you depends on the amount of money in your account (its balance): |
functions |
Lasagna Master | In this exercise you're going to write some more code to help you cook your brilliant lasagna from your favorite cooking book. |
higher-order-functions |
Secret Agent | Hello, Agent Double-Null0111. |
inheritance |
Role-playing game | In this exercise you're playing a role-playing game named "Wizard and Warriors," which allows you to play as either a Wizard or a Warrior. |
io |
RPG Character Sheet | You and your friends love to play pen-and-paper role-playing games, but you noticed that it's difficult to get new people to join your group. They often struggle with character creation. They don't know where to start. To help new players out, you decided to write a small program that will guide them through the process. |
lambda-function |
Secret Device | This story uses the setting of creating a device to encrypt messages reliably and repeatedly using anonymous functions. |
lists |
Language List | This story facilitates the exploration of lists in a language. |
loops |
Bartender | You are a master mixologist, making tasty drinks for the public to enjoy on their nights out. But you figured that you could make your life easier by writing a bit of code to help you with your job. |
maps |
High Score Board | This exercise uses the setting of maintaining a high-score board for an arcade hall to teach the concept of key-value collections (maps, hashes, associative arrays, dictionaries, etc.). A player's name serves as the key, and the score serves as the value. |
matrices |
Exercism Logo Matrix | This story involves playing around with a matrix representing the Exercism logo, making it frown, rotating it, ... |
method-overloading |
Game Master of a Role Playing Game | In this exercise you're playing a role-playing game named "Wizard and Warriors" with your best friends. You are the game master, the person tasked with making the game world come alive for the other players. A key aspect of this is describing the game to the players: what is a character's status, what the town they're visiting looks like, etc. |
nullability |
Name badges | In this exercise you'll be writing code to print name badges for factory employees. Employees have an ID, name and department name. Employee badge labels are formatted as follows: "[id] - [name] - [DEPARTMENT]" . |
numbers |
Car production line | In this exercise you'll be writing code to analyze the production of an assembly line in a car factory. The assembly line's speed can range from 0 (off) to 10 (maximum). |
numbers |
Freelancer Rates | In this exercise you'll be writing code to help a freelancer communicate with a project manager by providing a few utilities to quickly calculate day- and month rates, optionally with a given discount. |
optionals |
Pizza Slices | You have a number of pizza slice shops in your town and you want to write a web app that will let you compare two different pizza configurations to let you know who will give you the bigger slice. |
pattern-matching |
Number guessing game | In this exercise, you are playing a number guessing game with a friend. The rules are simple: you secretly choose a number between 1 and 100 and your friend tries to guess what number you've chosen. To help your friend, you respond differently depending on how close the guess was to the number you've chosen (42 ). These are the rules for the different replies: |
primitive-types |
RNA & DNA Processing | In biology libraries, Nucleic Acids may be encoded as 4-bit types (see for example BioSymbols.jl). This can be used as a context for an exercise introducing primitive types, or other concepts related to bit manipulation. |
promises |
Klingon Translation Service | In this exercise you'll be providing a TranslationService where paid members have some quality assurance. |
properties |
Weighing machine | In this exercise you'll be modelling a weighing machine. |
randomness |
RPG Quest Logic 2 | In this exercise, you'll be extending the quest logic for the new RPG game a friend is developing. To make the game more interesting, your friend wants you to add random events that change the situation. |
records |
Root for NBA team algorithm | In this exercise you're a big sports fan and you've just discovered a passion for NBA basketball. Being new to NBA basketball, you're doing a deep dive into NBA history, keeping track of teams, coaches, their win/loss stats and comparing them against each other. |
recursion |
Pizza delivery | In this exercise you're working at a pizza place that delivers to customers. |
regex |
Event Ingest | In this story, you have a program which needs to ingest events, but messages are using 3 different date formats: |
shopping-cart |
Shopping cart | We need to model a shopping cart for a corner shop. The cart should keep track of the list of items added, and correctly calculate the price. |
strings |
Eccentric Party Robot | Once there was an eccentric programmer living in a strange house with barred windows. One day he accepted a job from an online job board to build a party robot. The robot is supposed to greet people and help them to their seats. The first addition was very technical and showed the programmers lack of human interaction. Some of which also made it into the final edition. |
strings |
High school sweethearts | In this exercise, you are going to help high school sweethearts profess their love on social media by generating an ASCII heart with their initials: |
strings |
Log line parser | In this exercise you'll be processing log-lines. |
strings |
Poetry club door policy | A new poetry club has opened in town, and you're thinking of attending. Because there have been incidents in the past, the club has a very specific door policy which you'll need to master, before attempting entry. |
strings-and-characters |
Custom Signs | In this exercise you'll be writing code to help a sign company create custom messages for their signs. |
structs-and-classes |
Windowing system | In this exercise, you will be simulating a windowing based computer system. You will create some windows that can be moved and resized and display their contents. The following image is representative of the values you will be working with below. |
sum-types |
Valentines day | In this exercise, it's Valentine's day and you and your partner are planning on doing something nice together. Your partner has lots of ideas, and is now asking you to rate the ideas, in order to find the activity to engage in. |
ternary-operators |
Employee Salary | In this exercise, you'll be implementing rules for calculating the total salary of a empyoyee in a month. The International Siderurgy Company (ISC) needs help to calculate the salary for the employees, given that different factors can alter the final wage value for each employee. |
tuples |
Kitchen Calculator | The story facilitates the exploration of tuples in a language. |
tuples |
Santa's Helper | You are an elf working in Santa Claus' logistics division and you have been given a pair of tasks from the boss for upgrading the system's software. |
These are the implementations of the stories in the various tracks.