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

Exercism

Scala

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • Leap
    • Determine whether a given year is a leap year.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Reverse String
    • Reverse a given string.
  • Robot Simulator
    • Write a robot simulator.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • Robot Name
    • Manage robot factory settings.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • House
    • Output the nursery rhyme 'This is the House that Jack Built'.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Forth
    • Implement an evaluator for a very simple subset of Forth.
  • Clock
    • Implement a clock that handles times without dates.
  • Meetup
    • Calculate the date of meetups.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Parallel Letter Frequency
    • Count the frequency of letters in texts using parallel computation.
  • Alphametics
    • Given an alphametics puzzle, find the correct solution.
  • Lens Person
    • Use lenses to update nested records (specific to languages with immutable data).
  • Binary Search
    • Implement a binary search algorithm.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Strain
    • Implement the `keep` and `discard` operation on collections.
  • Linked List
    • Implement a doubly linked list.
  • 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.
  • Simple Cipher
    • Implement a simple shift cipher like Caesar and a more secure substitution cipher.
  • 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.
  • Dominoes
    • Make a chain of dominoes.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Connect
    • Compute the result for a game of Hex / Polygon.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • Bowling
    • Score a bowling game.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Bank Account
    • Simulate a bank account supporting opening/closing, withdraws, and deposits of money. Watch out for concurrent transactions!
  • Zebra Puzzle
    • Solve the zebra puzzle.
  • Darts
    • Calculate the points scored in a single toss of a Darts game.
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Accumulate
    • Implement the `accumulate` operation, which, given a collection and an operation to perform on each element of the collection, returns a new collection containing the result of applying that operation to each element of the input collection.
  • Flatten Array
    • Take a nested list and return a single list with all values except nil/null.
  • High Scores
    • Manage a player's High Score list.
  • Pangram
    • Determine if a sentence is a pangram.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Acronym
    • Convert a long phrase to its acronym.
  • 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.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • 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.
  • Matrix
    • Given a string representing a matrix of numbers, return the rows and columns of that matrix.
  • Saddle Points
    • Detect saddle points in a matrix.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • 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.
  • Custom Set
    • Create a custom set type.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Complex Numbers
    • Implement complex numbers.
  • OCR Numbers
    • Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled.
  • Palindrome Products
    • Detect palindrome products in a given range.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • Rail Fence Cipher
    • Implement encoding and decoding for the rail fence cipher.
  • Change
    • Correctly determine change to be given using the least number of coins.
  • Flower Field
    • Mark all the flowers in a garden.
  • Wordy
    • Parse and evaluate simple math word problems returning the answer as an integer.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • SGF Parsing
    • Parsing a Smart Game Format string.
  • Variable Length Quantity
    • Implement variable length quantity encoding and decoding.
  • Zipper
    • Creating a zipper for a binary tree.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • Bottle Song
    • Produce the lyrics to the popular children's repetitive song: Ten Green Bottles.
  • Killer Sudoku Helper
    • Write a tool that makes it easier to solve Killer Sudokus

Reviews

Start your review of Scala

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.