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

Exercism

Ruby

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
  • Join Exercism’s Ruby Track for access to 109 exercises grouped into 16 Ruby Concepts, with automatic analysis of your code andpersonal mentoring, all 100% free.
  • Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.
  • Ruby was created as a language of careful balance. Its creator, Yukihiro “Matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.
  • He has often said that he is "trying to make Ruby natural, not simple," in a way that mirrors life.
  • Building on this, he adds: "Ruby is simple in appearance, but is very complex inside, just like our human body."
  • You can read more about the Ruby language on its site.

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Lasagna
    • Learn about the basics of Ruby by following a lasagna recipe.
  • Amusement Park
    • Learn about nil and instance variables by designing a system to administer attendance and rides in an amusement park.
  • Amusement Park Improvements
    • Learn about booleans by writing a system that can check if an attendee can use a ride.
  • Log line Parser
    • Learn about strings by processing logs.
  • Assembly Line
    • Learn about numbers by analyzing the production of an assembly line.
  • Savings Account
    • Learn about floating point numbers by adding interest to savings accounts.
  • Port Of Palermo
    • Learn about the symbols while helping out with modernize the ports of Palermo computer system.
  • Chess Game
    • Learn about ranges while making a chess game.
  • BlackJack
    • Learn about cases while simulating blackjack
  • Bird Count
    • Learn about arrays by keeping track of how many birds visit your garden.
  • Boutique Inventory
    • Learn advanced enumeration functionality by preparing your online fashion boutique for its big annual sale.
  • Boutique Inventory Improvements
    • Learn about ostruct by refactoring your online fashion boutique's inventory management system.
  • Locomotive Engineer
    • Learn about decomposition and multiple assignment in Ruby while helping Linus with his train control system.
  • Moviegoer
    • Learn about the ternary operator by building out rules for a movie theater's website.
  • Simple Calculator
    • Learn about exceptions and error handling by building a simple calculator.
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • Resistor Color Duo
    • Convert color codes, as used on resistors, to a numeric value.
  • Acronym
    • Convert a long phrase to its acronym.
  • High Scores
    • Manage a player's High Score list.
  • Reverse String
    • Reverse a given string.
  • D&D Character
    • Randomly generate Dungeons & Dragons characters.
  • Matrix
    • Given a string representing a matrix of numbers, return the rows and columns of that matrix.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • 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.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • Clock
    • Implement a clock that handles times without dates.
  • Twelve Days
    • Output the lyrics to 'The Twelve Days of Christmas'.
  • Tournament
    • Tally the results of a small football competition.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • Resistor Color
    • Convert a resistor band's color to its numeric representation.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Leap
    • Determine whether a given year is a leap year.
  • Pangram
    • Determine if a sentence is a pangram.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Transpose
    • Take input text and output it transposed.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Flatten Array
    • Take a nested list and return a single list with all values except nil/null.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Resistor Color Trio
    • Convert color codes, as used on resistors, to a human-readable label.
  • Saddle Points
    • Detect saddle points in a matrix.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Proverb
    • For want of a horseshoe nail, a kingdom was lost, or so the saying goes. Output the full text of this proverbial rhyme.
  • Palindrome Products
    • Detect palindrome products in a given range.
  • Parallel Letter Frequency
    • Count the frequency of letters in texts using parallel computation.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • Alphametics
    • Given an alphametics puzzle, find the correct solution.
  • Binary Search
    • Implement a binary search algorithm.
  • Two Bucket
    • Given two buckets of different size, demonstrate how to measure an exact number of liters.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Rail Fence Cipher
    • Implement encoding and decoding for the rail fence cipher.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Flower Field
    • Mark all the flowers in a garden.
  • Robot Simulator
    • Write a robot simulator.
  • Bottle Song
    • Produce the lyrics to the popular children's repetitive song: Ten Green Bottles.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • 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.
  • 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.
  • List Ops
    • Implement basic list operations.
  • Robot Name
    • Manage robot factory settings.
  • Simple Cipher
    • Implement the Vigenère cipher, a simple substitution cipher.
  • Dominoes
    • Make a chain of dominoes.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • Simple Linked List
    • Write a simple linked list implementation that uses Elements and a List.
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • Change
    • Correctly determine change to be given using the least number of coins.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Affine Cipher
    • Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Custom Set
    • Create a custom set type.
  • House
    • Output the nursery rhyme 'This is the House that Jack Built'.
  • Linked List
    • Implement a doubly linked list.
  • Poker
    • Pick the best hand(s) from a list of poker hands.
  • ISBN Verifier
    • Check if a given string is a valid ISBN-10 number.
  • Complex Numbers
    • Implement complex numbers.
  • Meetup
    • Calculate the date of meetups.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • Bowling
    • Score a bowling game.
  • OCR Numbers
    • Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Zipper
    • Creating a zipper for a binary tree.
  • Grep
    • Search a file for lines matching a regular expression pattern. Return the line number and contents of each matching line.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • 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.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • 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.
  • Connect
    • Compute the result for a game of Hex / Polygon.
  • Microwave
    • Convert the buttons entered on the microwave panel to their timer equivalent
  • Darts
    • Calculate the points scored in a single toss of a Darts game.
  • Bank Account
    • Simulate a bank account supporting opening/closing, withdraws, and deposits of money. Watch out for concurrent transactions!
  • Gilded Rose
    • Refactor an inventory system and add a new feature to it.
  • 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.
  • Zebra Puzzle
    • Solve the zebra puzzle.

Reviews

Start your review of Ruby

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.