Stories

January 26, 2021 ยท View on GitHub

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.

ConceptStoryDescription
actor-modelTake-A-Number MachineYou 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-functionsBomb DisarmingHello again, Agent Double-Null0111.
arraysElyse's EnchantmentsAs a magician-to-be, Elyse needs to practice some basics. She has a stack of cards that she wants to manipulate.
arraysGarden bird countYou're an avid bird watcher that keeps track of how many birds have visited your garden in the last seven days.
basicsLasagna RecipeThe story of this exercise uses a lasagna recipe to focus on the creation of basic functions, operators, integers, and return values.
binary-dataFile SnifferThe 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.
booleansPac-ManThis story uses the classic arcade game Pac-Man as a basis for teaching the boolean type / boolean logic concept.
booleansRPG Quest LogicIn 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.
classesAmustment Park AttendeeIn 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.
classesRemote control carIn this exercise you'll be playing around with a remote controlled car, which you've finally saved enough money for to buy.
closuresWeb Design AgencyYour 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.
conditionalsVehicle PurchaseIn this exercise you're going to write some code to help you help you prepare to buy a new vehicle.
constructorsRemote control car raceIn this exercise you'll be organizing races between various types of remote controlled cars. Each car has its own speed and battery drain characteristics.
datetimesAppointment schedulerIn this exercise you'll be working on an appointment scheduler for a beauty salon in New York that opened on September 15th in 2012.
datetimesThe Time-KeeperSarah 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-digBasketball team websiteYou'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.
enumerableFashion BoutiqueYou 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.
enumsLog line parserIn this exercise you'll be processing log-lines.
errorsInstruments of TexasIn this exercise you will be handling errors being raised by functions created by your team while creating an RPN calculator.
flag-enumsWebsite account permissionsIn this exercise you'll be checking permissions of user accounts on an internet forum. The forum supports three different permissions:
floating-point-numbersSavings accountIn 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):
functionsLasagna MasterIn this exercise you're going to write some more code to help you cook your brilliant lasagna from your favorite cooking book.
higher-order-functionsSecret AgentHello, Agent Double-Null0111.
inheritanceRole-playing gameIn 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.
ioRPG Character SheetYou 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-functionSecret DeviceThis story uses the setting of creating a device to encrypt messages reliably and repeatedly using anonymous functions.
listsLanguage ListThis story facilitates the exploration of lists in a language.
loopsBartenderYou 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.
mapsHigh Score BoardThis 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.
matricesExercism Logo MatrixThis story involves playing around with a matrix representing the Exercism logo, making it frown, rotating it, ...
method-overloadingGame Master of a Role Playing GameIn 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.
nullabilityName badgesIn 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]".
numbersCar production lineIn 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).
numbersFreelancer RatesIn 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.
optionalsPizza SlicesYou 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-matchingNumber guessing gameIn 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-typesRNA & DNA ProcessingIn 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.
promisesKlingon Translation ServiceIn this exercise you'll be providing a TranslationService where paid members have some quality assurance.
propertiesWeighing machineIn this exercise you'll be modelling a weighing machine.
randomnessRPG Quest Logic 2In 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.
recordsRoot for NBA team algorithmIn 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.
recursionPizza deliveryIn this exercise you're working at a pizza place that delivers to customers.
regexEvent IngestIn this story, you have a program which needs to ingest events, but messages are using 3 different date formats:
shopping-cartShopping cartWe 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.
stringsEccentric Party RobotOnce 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.
stringsHigh school sweetheartsIn this exercise, you are going to help high school sweethearts profess their love on social media by generating an ASCII heart with their initials:
stringsLog line parserIn this exercise you'll be processing log-lines.
stringsPoetry club door policyA 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-charactersCustom SignsIn this exercise you'll be writing code to help a sign company create custom messages for their signs.
structs-and-classesWindowing systemIn 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-typesValentines dayIn 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-operatorsEmployee SalaryIn 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.
tuplesKitchen CalculatorThe story facilitates the exploration of tuples in a language.
tuplesSanta's HelperYou 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.

Implementations

These are the implementations of the stories in the various tracks.

StoryTrackExercise
Amustment Park AttendeeRubyinstance-variables
Appointment schedulerC#booking-up-for-beauty
Appointment schedulerF#booking-up-for-beauty
BartenderSwiftmaster-mixologist
Bomb DisarmingSwiftbomb-defuser
Car production lineC#cars-assemble
Car production lineF#cars-assemble
Custom SignsSwiftcustom-signs
Eccentric Party RobotGostrings
Elyse's EnchantmentsJavaScriptelyses-analytic-enchantments
Elyse's EnchantmentsJavaScriptelyses-destructured-enchantments
Elyse's EnchantmentsJavaScriptelyses-enchantments
Elyse's EnchantmentsJavaScriptelyses-transformative-enchantments
Elyse's EnchantmentsSwiftmagician-in-training
Employee SalaryJavaternary-operators
Event IngestElixirdate-parser
Exercism Logo MatrixJuliaexercism-matrix
Fashion BoutiqueElixirboutique-inventory
Fashion BoutiqueElixirboutique-suggestions
File SnifferElixirfile-sniffer
Freelancer RatesElixirfreelancer-rates
Freelancer RatesJavaScriptnumbers
Freelancer RatesSwiftfreelancer-rates
Game Master of a Role Playing GameC#wizards-and-warriors-2
Garden bird countC#bird-watcher
Garden bird countElixirbird-count
Garden bird countF#bird-watcher
High Score BoardElixirhigh-score
High Score BoardSwifthigh-score-board
High school sweetheartsElixirhigh-school-sweetheart
Instruments of TexasElixirrpn-calculator
Kitchen CalculatorElixirkitchen-calculator
Klingon Translation ServiceJavaScriptpromises
Language ListClojuretracks-on-tracks-on-tracks
Language ListElixirlanguage-list
Language ListF#tracks-on-tracks-on-tracks
Lasagna MasterSwiftlasagna-master
Lasagna RecipeC#lucians-luscious-lasagna
Lasagna RecipeElixirlasagna
Lasagna RecipeF#lucians-luscious-lasagna
Lasagna RecipeJavaScriptbasics
Lasagna RecipeJavabasics
Lasagna RecipeJulialasagna
Lasagna RecipeRubylasagna
Lasagna RecipeSwiftlasagna
Log line parserC#logs-logs-logs
Log line parserPythonlog-levels
Log line parserRustenums
Log line parserSwiftlog-lines
Log line parserC#log-levels
Log line parserC++strings
Log line parserF#log-levels
Log line parserGostrings-package
Log line parserJavastrings
Log line parserPythonprocessing-logs
Log line parserRubystrings
Name badgesC#tim-from-marketing
Name badgesElixirname-badge
Name badgesJavaScriptnullability
Number guessing gameElixirguessing-game
Number guessing gameF#guessing-game
Pac-ManElixirpacman-rules
Pac-ManPythonghost-gobble-arcade-game
Pizza SlicesSwiftpizza-slices
Pizza deliveryF#pizza-pricing
Pizza deliveryJavaScriptrecursion
Poetry club door policyJavaScriptstrings
Poetry club door policySwiftpoetry-club
RNA & DNA ProcessingElixirdna-encoding
RPG Character SheetElixirrpg-character-sheet
RPG Quest Logic 2Juliaannalyns-infiltration2
RPG Quest LogicF#annalyns-infiltration
RPG Quest LogicJavaScriptbooleans
RPG Quest LogicJuliaannalyns-infiltration
Remote control car raceC#need-for-speed
Remote control carC#elons-toys
Remote control carElixirremote-control-car
Role-playing gameC#wizards-and-warriors
Root for NBA team algorithmF#bandwagoner
Santa's HelperSwiftsantas-helper
Savings accountC#interest-is-interesting
Savings accountC#interest-is-interesting
Secret AgentSwiftsecret-agent
Secret DeviceElixirsecrets
Take-A-Number MachineElixirtake-a-number
Valentines dayF#valentines-day
Vehicle PurchaseJuliavehicle-purchase
Vehicle PurchaseSwiftvehicle-purchase
Web Design AgencyJavaScriptclosures
Website account permissionsC#attack-of-the-trolls
Weighing machineC#weighing-machine
Windowing systemSwiftwindowing-system