Java is a very widely used Object Oriented programming language. It's safe, simple to use and portable so that you can "write once, run anywhere".
Pick a problem and open it and solve it.
SlaveCode's classic introductory exercise. Just say "Hello, World!".
Learn about the basics of Java by following a lasagna recipe.
Learn about booleans while helping Annalyn rescue her friend.
Learn about arrays by keeping track of how many birds visit your garden.
Learn about lists by helping Karl keep track of the languages he wants to learn on SlaveCode.
Learn about exception-handling by making a simple calculator.
Learn about characters and StringBuilder by cleaning strings.
Learn about classes by working on a remote controlled car.
Learn about classes by creating cars.
Learn about interfaces by working on cars.
Learn about numbers by analyzing the production of an assembly line.
Learn about strings by processing logs.
Learn about ternary operators by calculating salaries.
Learn about switches by developing a system to report on soccer matches.
Learn about inheritance by creating an RPG.
Learn about enums by parsing logs.
Learn about the null literal and nullable variables in java by printing name badges.
Learn about randomness by helping Mary generate stardates and starship registry numbers for her Star Trek themed pen-and-paper role playing sessions.
Learn about the LocalDate and LocalDateTime classes by working on an appointment scheduler for a beauty salon.
Learn about method overloading by extending your favorite RPG.
Learn about bit manipulation by writing a program to decrypt a message.
Learn to use sets by playing a vintage trading card game
Learn about maps while managing international calling codes.
Determine whether a given year is a leap year.
Reverse a given string.
Create a sentence of the form "One for X, one for me.".
Determine if a number is an Armstrong number.
Calculate the points scored in a single toss of a Darts game.
Randomly generate Dungeons & Dragons characters.
Write a Domain Specific Language similar to the Graphviz dot language.
Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
Manage a player's High Score list.
Convert a resistor band's color to its numeric representation.
Convert color codes, as used on resistors, to a numeric value.
Convert color codes, as used on resistors, to a human-readable label.
Given a DNA strand, return its RNA complement.
Convert a long phrase to its acronym.
Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
Given a moment, determine the moment that would be after a gigasecond has passed.
Calculate the Hamming distance between two DNA strands.
Given an input string, truncate it to 5 characters.
Determine if a sentence is a pangram.
Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
Help Eliud count the number of eggs in her chicken coop by counting the number of 1 bits in a binary representation.
Translate RNA sequences into proteins.
Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
Given a number from 0 to 999,999,999,999, spell out that number in English.
Given a word, compute the Scrabble score for that word.
Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
Calculate the number of steps to reach 1 using the Collatz conjecture.
Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
Implement various kinds of error handling and resource management.
Check if a given string is a valid ISBN-10 number.
Determine if a word or phrase is an isogram.
Write a tool that makes it easier to solve Killer Sudokus
Given a diagram, determine which plants each child in the kindergarten class is responsible for.
Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
Given a number determine whether or not it is valid per the Luhn formula.
Given a string representing a matrix of numbers, return the rows and columns of that matrix.
Given a number n, determine what the nth prime is.
Calculate the path of a laser through refractive prisms.
For want of a horseshoe nail, a kingdom was lost, or so the saying goes. Output the full text of this proverbial rhyme.
Practice stateful logic and time handling by implementing a fixed-window rate limiter
Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
Detect saddle points in a matrix.
Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
Keep track of time through a digital stopwatch.
Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
Convert delivery date descriptions to actual delivery dates.
Determine if a triangle is equilateral, isosceles, or scalene.
Output the lyrics to 'The Twelve Days of Christmas'.
Implement variable length quantity encoding and decoding.
Score a single throw of dice in the game Yacht.
Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
Bob is a lackadaisical teenager. In conversation, his responses are very limited.
Take a nested list and return a single list with all values except nil/null.
Implement Conway's Game of Life.
Search a file for lines matching a regular expression pattern. Return the line number and contents of each matching line.
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.
Refactor a ledger printer.
Make sure the brackets and braces all match.
Given a DNA string, compute how many times each nucleotide occurs in the string.
Compute Pascal's triangle up to a given number of rows.
Clean up user-entered phone numbers so that they can be sent SMS messages.
Implement a program that translates from English to Pig Latin.
Compute the prime factors of a given natural number.
Given a family tree, calculate the degree of separation.
Manage robot factory settings.
Implement run-length encoding and decoding.
Given a string of digits, output all the contiguous substrings of length `n` in that string.
Given a natural radicand, return its square root.
Given a phrase, count the occurrences of each word in that phrase.
Determine the game state of a match of Tic-Tac-Toe.
Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.
Convert a number, represented as a sequence of digits in one base, to any other base.
Given an alphametics puzzle, find the correct solution.
Estimate the birthday paradox's probabilities.
Simulate a bank account supporting opening/closing, withdraws, and deposits of money. Watch out for concurrent transactions!
Implement a binary search algorithm.
Produce the lyrics to the popular children's repetitive song: Ten Green Bottles.
Score a bowling game.
Simulate the card game and determine whether the match ends or enters an infinite loop.
Change the data format for scoring a game to more easily add other languages.
Mark all the flowers in a garden.
Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
Given students' names along with the grade that they are in, create a roster for the school.
Output the nursery rhyme 'This is the House that Jack Built'.
Add parity bits to a message for transmission
Implement a doubly linked list.
Count the frequency of letters in texts using parallel computation.
Fill in missing jigsaw puzzle details from partial data
Given the position of two queens on a chess board, indicate whether or not they are positioned so that they can attack each other.
Implement encoding and decoding for the rail fence cipher.
Implement a RESTful API for tracking IOUs.
Write a robot simulator.
Convert modern Arabic numbers into Roman numerals.
Given the size, return a square matrix of numbers in spiral order.
Tally the results of a small football competition.
Take input text and output it transposed.
Parse and evaluate simple math word problems returning the answer as an integer.
Given a word and a list of possible anagrams, select the correct sublist.
Insert and search for numbers in a binary tree.
Implement a clock that handles times without dates.
Implement the classic method for composing secret messages called a square code.
Make a chain of dominoes.
Count the scored points on a Go board.
Refactor a Markdown parser.
Calculate the date of meetups.
Pick the best hand(s) from a list of poker hands.
Parsing a Smart Game Format string.
Write a simple linked list implementation that uses Elements and a List.
Write a function to determine if a list is a sublist of another list.
Refactor a tree building algorithm.
Given two buckets of different size, demonstrate how to measure an exact number of liters.
Create a program to solve a word search puzzle.
Solve the zebra puzzle.
Creating a zipper for a binary tree.
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.
Correctly determine change to be given using the least number of coins.
A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
Implement complex numbers.
Compute the result for a game of Hex / Polygon.
Implement the logic of the hangman game using functional reactive programming.
Implement basic list operations.
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.
Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled.
Detect palindrome products in a given range.
Reparent a graph on a selected node.
Implement rational numbers.
Implement a basic reactive system.
Count the rectangles in an ASCII diagram.
Implement the Vigenère cipher, a simple substitution cipher.
Implement an evaluator for a very simple subset of Forth.
Given an integer N, find all Pythagorean triplets for which a + b + c = N.
Create a custom set type.
Rebuild binary trees from pre-order and in-order traversals.