I love the initiaion here and i am anxiously waiting for the simple vending machine tutorial. I am one of those guys who were in a class where the lecturer started by Java can do everything but i am yet to accomplish something ...


As a rookie coder, I'd like to contribute to the list:

  1. Rock/Paper/Scissors
  2. The Game of Life (by John Conway)
  3. Project Euler (google it)
Votes + Comments
Good suggestions, thanks

How about a calculator (scientific to challenge yourself and convert into an app)


I got some ideas too...

Web Bot: Create a web bot that crawls the web by jumping across hyperlinks and creates a list(not necessarily detailed) of pages found and indexes them in a database. You can keep adding new features to make the program better and better. I believe this will give adequate practice as far as networkig concepts and database concepts are concerned.

Make a program to convert from decimal to binary format, or hexadecimal to decimal format, or vice versa, and experiment with different methods; then determine which one is the best...

Come to think of it, though, why not have a look at Martyr2's Mega Project List (something like 150+ ideas, most of which can be implemented in Java): http://www.dreamincode.net/forums/topic/78802-martyr2s-mega-project-ideas-list/

Edited by deltascrow


I've found that the best way to learn is to compete with friends who're also learning.
Who uses more advanced stuff?
Who codes faster?
Who's code is faster?


somewhat new to programming myself, would be appropriate to upload my code some where for people to make comments and suggestions?


@j.t.casperson, you can upload your code in the forums so we can help you fix them and evaluate them :)


Hey which is the best book for the learners to learn java...
Will you give me suggestion for choosing the right book to learn java...
Thank you in advance..


Do any of these programs, and actually plan them out (UML, GUI sketches, etc.) ahead of time.


Here's the page to the World Finals of the ACM ICPC programming competition. Btw, get involved with that it's an excellent experience.

Click Here


Do you really think that a learner (and this topic is called "Java projects for learners") is going to enter the World Finals of a programming competition? Please try to keep your posts relevant.


Yes I do since I participated in them as a Sophmore and the problems aren't that much more difficult that what I faced last year. These are for college students not professional programmers; aka for beginners.


Easy project idea: Crossword support tool.

Give it a word with some letters missing and it shows you all possible solutions
Give it some letters and it shows you all possible anagrams (1 word = easy, 2+ words = harder)

Could be command prompt, but a GUI would be nicer.

(You can find good word lists on the web, especially those intended for Scrabble players)


Here's a good one involving recursion...
write a method to evaluate arbitrary arithmetic expressions according to the normal rules of arithmetic. Eg given "(2+4)*4" as input it should return 24 as the result.
It's about 100 lines of code. No special Java stuff needed, but the recursion will stretch your brain.

Edited by JamesCherrill


If you are a beginner, you have to learn step by step. Project is nothing but the collection of programs.
First you don't think about project. You have to do more practice by programs in the below concepts.
1. Write a program by using arithmetic operators.
2. Write a matrix program by using looping and arrays.
3. Handle the exceptions in your programs.
4. Write a simple program with multi threading concepts.
5. Write a program to handle the data by using collection objects
6. Write a program to store and retrieve the data from database by using jdbc.
After practicing the above programs, you can start your project with mini application.

Edited by JamesCherrill: Do not sign your posts with 'fake signatures'; Use the signature facility from your profile editor


I dont have much programming experience, though sometimes I come up with some cool ideas. Last time I was having bath :-) and I came up with this one.

Most of us use REAL Keyboard while logging into Accounts from other computers. ( Not Me I use Virtual Keyboard)
So, everytime you enter your Credentials from a keyboard you risk of getting them logged, as there might be a keylogger installed. Places like cyber cafe, schools, offices are Vulnerable.
This can be avoided by using Virtual On-Screen Keyboard.
I know Windows provide one. Dont know if MAC and Linux too (let me know if they do). As JAVA programs can be executed on any of these OS ( provided JVM is present), a portable virtual keboard can come in handy.

So I propose to make a Virtual On-Screen Keyboard.



Keeping in mind with the aspect of "for learners", Here are some projects I started out with.


Area Calculator
Calculate the area given the shape and dimensions needed, then output.

Make a Blackjack game that asks the user if he wants to hit. Check for
bust if total exceeds 21.

Simple addition, subtraction, division, and multiplication calculator.

Ceasar Cipher
Encrypt a String given a shift value.
See This.

Fibonnaci Sequence
Calculate the fibonnaci sequence up to a given number of times.

Grading Program
Output a mark(A, B, C, D, or F) given a number 0-100.
F = 0 - 59
D = 60 - 69
C = 70 - 79
B = 80 - 89
A = 90 - 100
EXTRA: Change A to 90 - 99 and give A++ for 100.

Guess My Number
Have the computer generate a number that the user has to guess correctly,
if the user guesses incorectly, have the user guess again. Also, tell the
user if the guess was too high, or too low.

String Reverser
Ask the user for a String, then reverse the string and output.

Those are just a few, will post more later.


At my 25th birthday few days ago, i had decided i will do Java no more,cos ask me about books,video tutorials and leaflets of java i had read for the past 4yrs i made up my mind to do Java, i will tell you "it's in hundrends", but till now am still struggling to cope.
With this tread on now my hope is rekindled, thanks alot for this brilliant gesture,am more than ready than ever before and more determined to move on with my goal of becoming an expert programmer,cos projects in here will help me more i believe. Since all i had been lacking is the practical example presented here in this tread
Million thanks to you JamesCherill & rotten69

Edited by gyno


I just saw someone doing a Combination Lock, the idea is to enter 3 numbers and if they match with the password, then you have gained permission. Pretty easy/simple and would definately be useful for people who just start


Nice contribution Slavi. The one you referred to uses a GUI with ten number buttons, and is a very good choice for an early Swing project. (There's not much point doing it as a console text-only project!)


I would have to disagree with that one James. Here's why.

A console combo lock could teach separate classes, constructors and (as much as I now hate it) simple Scanner input. Really simple beginner stuff.
Create 2 classes, Combination, which generates a new combination, and a ComboLock Class which you do the input in and processing and stuff. Of course this class uses the Combination class.

Of course this can be converted to use a GUI after it's done too. In which case, you don't need to write a new Combination class, it's already there!


Doogledude123, can you give ideas for some more of the project's you've done? Some of those seem pretty cool and I am planning to dedicate my entire summer to java, i really want to try if not all atleast most of the ideas


Hey Slavi! Much appreciated that someone thinks what I am doing is pretty cool. So Kudos for that. Heres some more projects.

Number Game
I believe someone posted this here before.
Create a program with a limited set of numbers (I used 1, 2, 5, 10, 100, 1000) that it uses to count with. Have the user pass a number and have the program use the numbers it KNOWS to count to the number passed in from the user.

Sudoku Solver
Someone posted this one here before as well.
Create a program (GUI is easier) where a user gives a Sudoku Board and your program solves it. Have the user input 0 for an unknown. Be sure to check for validity.

Sudoku Game
One I might attempt after the Solver. Create a GUI Sudoku Game making sure to check validity, and having win conditionals. Program a few boards into it.
EXTRA: Have your game generate a random board on a new game. Make sure these boards are valid and can be solved.

Have a list of pokemon in a txt file or something that can be read by your program. The user searches a name, or number which shows the information about that Pokemon.
EXTRA: Include weights, heights, regions found, game they were introduced in, etc.
EXTRA EXTRA: If a user searches for a name, weight, height or game, your program outputs all pokemon that has the text in there name, or sharing the same weight, height, or game.
EVEN MORE EXTRA: Have search filters.
PS: This is best in a GUI program.

Math Calculators
I didn't want to create a seprate one for each of these because theyre pretty straight forward.
Volume Calculator
Quadratic Calculator
Quadratic Solver
Simple Calculator
Body Mass Index Calculator
Area Calculator
Theres just a few. Try to come up with a few more.
EXTRA: Make one project containing all of these.

Character Counts
Have the user input a String of text and have your program count how many of each letter was used in that text.
EXTRA: Print only the letters that were used at least once.

Hotel Application
Pretty straight forward. Have a hotel with a limited amount of rooms, have the ability to book and unbook rooms.
EXTRA: Include information about the people booking the room.
EXTRA EXTRA: Include room types and include prices for each.
SOME MORE EXTRA: Support for multiple Hotels (A Hotel Chain)

Bank Application
Intended for Friday Fun only.
Have the ability to set up new accounts, control balances, make purchases, send money to another account. Again, pretty straight forward.
EXTRA: Create multiple banks and charge fees for sending to another bank.

Group Chat Application
Create a simple chat application that sends text messages to everyone connected to your server. This is a networking application that will teach you client side and server side programming.

Initials Program
Have the user enter theyre full name (first middle and last), output the initals to them in the format lowercase UPPERCASE lowercase.
EXTRA: Output in the same way however mix them up (aLa becomes Laa or aaL).

That should suffice for a while.
I was thinking about doing an Introduction to Java tutorial series. Let me know if you would be interested in that.

Votes + Comments
Excellent list of ideas. W

Implement the game Rock-Papper-Scissors. By doing so, you'll get to play around with getting input by user and displaying the winner.

Further: Create a GUI for the game instead of using the command prompt

Even More! :D - include networking, create a server that receives inputs from 2 clients, check who wins and replies back to the players

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.