Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Exercism

JavaScript

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
JavaScript is a programming language that allows web pages to be dynamic. It is an interpreted language, which means that it doesn't need to be compiled: instead the interpreter (such as a web browser) will parse the code and turn it into code that their machine can run - suitable for creating dynamic websites that can run on any browser on any computer!

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Lucian's Luscious Lasagna
    • Learn the basics of JavaScript cooking a brilliant lasagna from your favorite cooking book.
  • Annalyn's Infiltration
    • Help Annalyn free her best friend using boolean logic in JavaScript
  • Freelancer Rates
    • Learn about numbers whilst helping a freelancer communicate with a project manager about day- and month rates.
  • Poetry Club Door Policy
    • Learn about strings using poems to get into the poetry club.
  • Elyses Enchantments
    • Help Elyse with her Enchantments and learn about arrays in the process.
  • Vehicle Purchase
    • Learn about comparison and conditionals while preparing for your next vehicle purchase
  • Bird Watcher
    • Professionalize counting the birds in your garden with for loops and increment/decrement operators
  • Mixed Juices
    • Help your friend Li Mei run her juice bar with your knowledge of while loops and switch statements.
  • Lucky Numbers
    • Practice type conversion while helping your friend Kojo with his website www.fun-with-numbers.com.
  • Elyses Analytic Enchantments
    • Elyse's magic training continues, teaching you about useful built-in methods to analyse arrays.
  • Elyses Destructured Enchantments
    • Elyse's magic training continues, teaching you about array destructing and the rest/spread operator.
  • Train Driver
    • Professionalize using rest and spread operators.
  • Elyses Looping Enchantments
    • Sift through Elyse's array of cards using various looping methods.
  • Amusement Park
    • Learn about undefined and null by managing visitors and tickets at an amusement park.
  • Pizza Order
    • Allow customers to calculate the cost of their order
  • Coordinate Transformation
    • Practice your knowledge of closures by implementing various coordinate transformations.
  • Fruit Picker
    • Learn about callbacks ordering fruit from the grocer
  • Translation Service
    • Connect to the Klingon Translation Service and learn about promises.
  • High Score Board
    • Practice JavaScript objects by tracking high scores of an arcade game.
  • Ozan's Playlist
    • Use sets to avoid repeating tracks in a playlist
  • Lasagna Master
    • Dive deeper into JavaScript functions while preparing to cook the perfect lasagna.
  • Factory Sensors
    • Learn how to handle errors by creating a piece of software for a newspaper factory.
  • Elyses Transformative Enchantments
    • Elyse has grown her magical powers and attempts some really cool tricks now while you learn about transforming arrays.
  • Custom Signs
    • Learn about template strings and the ternary operator ...
  • Windowing System
    • Learn about prototypes and classes by developing a windowing system.
  • Regular Chatbot
    • Learn the basics of regular expressions with JavaScript by helping a chatbot understand humans.
  • Appointment Time
    • Learn how to work with dates by managing appointments
  • Captain's Log
    • Learn about randomness and the Math.random() function while helping Mary generate stardates and starship registry numbers for her Star Trek roleplay.
  • Recycling Robot
    • Learn about type checking while helping manage an assembly line
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • Resistor Color
    • Convert a resistor band's color to its numeric representation.
  • Resistor Color Duo
    • Convert color codes, as used on resistors, to a numeric value.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • Line Up
    • Help lining up customers at YaÊ»qÅ«b's Deli.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Pangram
    • Determine if a sentence is a pangram.
  • Matrix
    • Given a string representing a matrix of numbers, return the rows and columns of that matrix.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Book Store
    • To try and encourage more sales of different books from a popular 5 book series, a bookshop has decided to offer discounts of multiple-book purchases.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Split Second Stopwatch
    • Keep track of time through a digital stopwatch.
  • Linked List
    • Implement a doubly linked list.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • List Ops
    • Implement basic list operations.
  • Robot Name
    • Manage robot factory settings.
  • Simple Cipher
    • Implement the Vigenère cipher, a simple substitution cipher.
  • Wordy
    • Parse and evaluate simple math word problems returning the answer as an integer.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • Leap
    • Determine whether a given year is a leap year.
  • Reverse String
    • Reverse a given string.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Camicia
    • Simulate the card game and determine whether the match ends or enters an infinite loop.
  • Clock
    • Implement a clock that handles times without dates.
  • Meetup
    • Calculate the date of meetups.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Bank Account
    • Simulate a bank account supporting opening/closing, withdraws, and deposits of money. Watch out for concurrent transactions!
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • Complex Numbers
    • Implement complex numbers.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Palindrome Products
    • Detect palindrome products in a given range.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Acronym
    • Convert a long phrase to its acronym.
  • High Scores
    • Manage a player's High Score list.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Transpose
    • Take input text and output it transposed.
  • Grep
    • Search a file for lines matching a regular expression pattern. Return the line number and contents of each matching line.
  • Rectangles
    • Count the rectangles in an ASCII diagram.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • OCR Numbers
    • Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled.
  • Relative Distance
    • Given a family tree, calculate the degree of separation.
  • Saddle Points
    • Detect saddle points in a matrix.
  • Forth
    • Implement an evaluator for a very simple subset of Forth.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
  • House
    • Output the nursery rhyme 'This is the House that Jack Built'.
  • ISBN Verifier
    • Check if a given string is a valid ISBN-10 number.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • Proverb
    • For want of a horseshoe nail, a kingdom was lost, or so the saying goes. Output the full text of this proverbial rhyme.
  • Twelve Days
    • Output the lyrics to 'The Twelve Days of Christmas'.
  • Promises
    • Practice promises by implementing some common promise functions.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Resistor Color Trio
    • Convert color codes, as used on resistors, to a human-readable label.
  • Dominoes
    • Make a chain of dominoes.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • Rational Numbers
    • Implement rational numbers.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • Custom Set
    • Create a custom set type.
  • Binary Search
    • Implement a binary search algorithm.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • Simple Linked List
    • Write a simple linked list implementation that uses Elements and a List.
  • Word Search
    • Create a program to solve a word search puzzle.
  • Variable Length Quantity
    • Implement variable length quantity encoding and decoding.
  • Two Bucket
    • Given two buckets of different size, demonstrate how to measure an exact number of liters.
  • Alphametics
    • Given an alphametics puzzle, find the correct solution.
  • Connect
    • Compute the result for a game of Hex / Polygon.
  • Bowling
    • Score a bowling game.
  • Strain
    • Implement the `keep` and `discard` operation on collections.
  • Flatten Array
    • Take a nested list and return a single list with all values except nil/null.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Diffie-Hellman
    • Diffie-Hellman key exchange.
  • Affine Cipher
    • Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • Robot Simulator
    • Write a robot simulator.
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Change
    • Correctly determine change to be given using the least number of coins.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • D&D Character
    • Randomly generate Dungeons & Dragons characters.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Darts
    • Calculate the points scored in a single toss of a Darts game.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Square Root
    • Given a natural radicand, return its square root.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Flower Field
    • Mark all the flowers in a garden.
  • Queen Attack
    • Given the position of two queens on a chess board, indicate whether or not they are positioned so that they can attack each other.
  • React
    • Implement a basic reactive system.
  • Zipper
    • Creating a zipper for a binary tree.
  • Zebra Puzzle
    • Solve the zebra puzzle.
  • Tournament
    • Tally the results of a small football competition.
  • Rail Fence Cipher
    • Implement encoding and decoding for the rail fence cipher.
  • REST API
    • Implement a RESTful API for tracking IOUs.
  • Go Counting
    • Count the scored points on a Go board.
  • Knapsack
    • Given a knapsack that can only carry a certain weight, determine which items to put in the knapsack in order to maximize their combined value.
  • Prism
    • Calculate the path of a laser through reflective prisms.
  • Satellite
    • Rebuild binary trees from pre-order and in-order traversals.
  • Poker
    • Pick the best hand(s) from a list of poker hands.
  • Eliud's Eggs
    • Help Eliud count the number of eggs in her chicken coop by counting the number of 1 bits in a binary representation.
  • Parallel Letter Frequency
    • Count the frequency of letters in texts using parallel computation.
  • Bottle Song
    • Produce the lyrics to the popular children's repetitive song: Ten Green Bottles.
  • Markdown
    • Refactor a Markdown parser.
  • Micro Blog
    • Given an input string, truncate it to 5 characters.
  • Ledger
    • Refactor a ledger printer.
  • State of Tic-Tac-Toe
    • Determine the game state of a match of Tic-Tac-Toe.
  • Lens Person
    • Use lenses to update nested records (specific to languages with immutable data).
  • Killer Sudoku Helper
    • Write a tool that makes it easier to solve Killer Sudokus
  • Conway's Game of Life
    • Implement Conway's Game of Life.

Reviews

Start your review of JavaScript

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.