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

Exercism

Java

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Java is among the most popular available programming languages, thanks to its versatility and compatibility. It is widely used for software development, mobile applications and developing larger systems. Java was born in 1995 and is maintained by Oracle. Despite the fact that it isn't as young as some of the fresh languages out there, Java is still really popular. It was designed to be fast, secure, reliable, beginner-friendly and highly portable. This portability perk exists because Java is executed on a cross-platform compatible . Android apps are also developed using Java, since the runs on a Java language environment.

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Cook Your Lasagna
    • Learn about the basics of Java by following a lasagna recipe.
  • Annalyn's Infiltration
    • Learn about booleans while helping Annalyn rescue her friend.
  • Bird Watcher
    • Learn about arrays by keeping track of how many birds visit your garden.
  • Karl's Languages
    • Learn about lists by helping Karl keep track of the languages he wants to learn on Exercism.
  • Calculator Conundrum
    • Learn about exception-handling by making a simple calculator.
  • Squeaky Clean
    • Learn about characters and StringBuilder by cleaning strings.
  • Jedlik's Toy Car
    • Learn about classes by working on a remote controlled car.
  • Need for Speed
    • Learn about classes by creating cars.
  • Remote Control Competition
    • Learn about interfaces by working on cars.
  • Cars, Assemble!
    • Learn about numbers by analyzing the production of an assembly line.
  • Log Levels
    • Learn about strings by processing logs.
  • Salary Calculator
    • Learn about ternary operators by calculating salaries.
  • Football Match Reports
    • Learn about switches by developing a system to report on soccer matches.
  • Wizards and Warriors
    • Learn about inheritance by creating an RPG.
  • Logs, Logs, Logs!
    • Learn about enums by parsing logs.
  • Tim from Marketing
    • Learn about the null literal and nullable variables in java by printing name badges.
  • Captain's Log
    • Learn about randomness by helping Mary generate stardates and starship registry numbers for her Star Trek themed pen-and-paper role playing sessions.
  • Booking Up For Beauty
    • Learn about the LocalDate and LocalDateTime classes by working on an appointment scheduler for a beauty salon.
  • Wizards and Warriors 2
    • Learn about method overloading by extending your favorite RPG.
  • Secrets
    • Learn about bit manipulation by writing a program to decrypt a message.
  • Gotta Snatch 'Em All
    • Learn to use sets by playing a vintage trading card game
  • International Calling Connoisseur
    • Learn about maps while managing international calling codes.
  • Leap
    • Determine whether a given year is a leap year.
  • Reverse String
    • Reverse a given string.
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Darts
    • Calculate the points scored in a single toss of a Darts game.
  • D&D Character
    • Randomly generate Dungeons & Dragons characters.
  • DOT DSL
    • Write a Domain Specific Language similar to the Graphviz dot language.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • High Scores
    • Manage a player's High Score list.
  • 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.
  • Resistor Color Trio
    • Convert color codes, as used on resistors, to a human-readable label.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Acronym
    • Convert a long phrase to its acronym.
  • 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.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • Micro Blog
    • Given an input string, truncate it to 5 characters.
  • Pangram
    • Determine if a sentence is a pangram.
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • 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.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • Error Handling
    • Implement various kinds of error handling and resource management.
  • ISBN Verifier
    • Check if a given string is a valid ISBN-10 number.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Killer Sudoku Helper
    • Write a tool that makes it easier to solve Killer Sudokus
  • 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.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • Matrix
    • Given a string representing a matrix of numbers, return the rows and columns of that matrix.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Proverb
    • For want of a horseshoe nail, a kingdom was lost, or so the saying goes. Output the full text of this proverbial rhyme.
  • Rate Limiter
    • Practice stateful logic and time handling by implementing a fixed-window rate limiter
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Saddle Points
    • Detect saddle points in a matrix.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Split-Second Stopwatch
    • Keep track of time through a digital stopwatch.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Swift Scheduling
    • Convert delivery date descriptions to actual delivery dates.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Twelve Days
    • Output the lyrics to 'The Twelve Days of Christmas'.
  • Variable Length Quantity
    • Implement variable length quantity encoding and decoding.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Flatten Array
    • Take a nested list and return a single list with all values except nil/null.
  • Conway's Game of Life
    • Implement Conway's Game of Life.
  • Grep
    • Search a file for lines matching a regular expression pattern. Return the line number and contents of each matching line.
  • 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.
  • Ledger
    • Refactor a ledger printer.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Relative Distance
    • Given a family tree, calculate the degree of separation.
  • Robot Name
    • Manage robot factory settings.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Square Root
    • Given a natural radicand, return its square root.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • State Of Tic Tac Toe
    • Determine the game state of a match of Tic-Tac-Toe.
  • Affine Cipher
    • Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Alphametics
    • Given an alphametics puzzle, find the correct solution.
  • Baffling Birthdays
    • Estimate the birthday paradox's probabilities.
  • Bank Account
    • Simulate a bank account supporting opening/closing, withdraws, and deposits of money. Watch out for concurrent transactions!
  • Binary Search
    • Implement a binary search algorithm.
  • Bottle Song
    • Produce the lyrics to the popular children's repetitive song: Ten Green Bottles.
  • Bowling
    • Score a bowling game.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Flower Field
    • Mark all the flowers in a garden.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • House
    • Output the nursery rhyme 'This is the House that Jack Built'.
  • Intergalactic Transmission
    • Add parity bits to a message for transmission
  • Linked List
    • Implement a doubly linked list.
  • Parallel Letter Frequency
    • Count the frequency of letters in texts using parallel computation.
  • Piecing It Together
    • Fill in missing jigsaw puzzle details from partial data
  • 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.
  • Rail Fence Cipher
    • Implement encoding and decoding for the rail fence cipher.
  • REST API
    • Implement a RESTful API for tracking IOUs.
  • Robot Simulator
    • Write a robot simulator.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Tournament
    • Tally the results of a small football competition.
  • Transpose
    • Take input text and output it transposed.
  • Wordy
    • Parse and evaluate simple math word problems returning the answer as an integer.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • Clock
    • Implement a clock that handles times without dates.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • Dominoes
    • Make a chain of dominoes.
  • Go Counting
    • Count the scored points on a Go board.
  • Markdown
    • Refactor a Markdown parser.
  • Meetup
    • Calculate the date of meetups.
  • Poker
    • Pick the best hand(s) from a list of poker hands.
  • SGF Parsing
    • Parsing a Smart Game Format string.
  • Simple Linked List
    • Write a simple linked list implementation that uses Elements and a List.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Tree Building
    • Refactor a tree building algorithm.
  • Two Bucket
    • Given two buckets of different size, demonstrate how to measure an exact number of liters.
  • Word Search
    • Create a program to solve a word search puzzle.
  • Zebra Puzzle
    • Solve the zebra puzzle.
  • Zipper
    • Creating a zipper for a binary tree.
  • 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.
  • 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.
  • Complex Numbers
    • Implement complex numbers.
  • Connect
    • Compute the result for a game of Hex / Polygon.
  • Hangman
    • Implement the logic of the hangman game using functional reactive programming.
  • List Ops
    • Implement basic list operations.
  • Mazy Mice
    • Meet Mickey and Minerva, two clever mice who love to navigate their way through a maze to find cheese. They enjoy a good challenge, but with only their tiny mouse brains, they prefer if there is only one correct path to the cheese.
  • 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.
  • POV
    • Reparent a graph on a selected node.
  • Rational Numbers
    • Implement rational numbers.
  • React
    • Implement a basic reactive system.
  • Rectangles
    • Count the rectangles in an ASCII diagram.
  • Simple Cipher
    • Implement the Vigenère cipher, a simple substitution cipher.
  • Forth
    • Implement an evaluator for a very simple subset of Forth.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Custom Set
    • Create a custom set type.
  • Satellite
    • Rebuild binary trees from pre-order and in-order traversals.

Reviews

Start your review of Java

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.