About: What can be better than a cup of coffee during a break? A coffee that you don’t have to make yourself. It’s enough to press a couple of buttons on the machine and you get a cup of energy; but first, we should teach the machine how to do it. In this project, you will work on programming a coffee-machine simulator. The machine works with quite typical products: coffee, milk, sugar, and plastic cups; if it runs out of something, it shows a notification. The machine can make three types of coffee: espresso, cappuccino and latte. Since nothing’s for free, it also collects the money.
Result: This project allows you to get a taste of Java. An important part of Java are classes, and this is what you will practice here. Try yourself at working with loops and conditions and get more confident in Java programming.
What you’ll do and what you’ll learn
Stage 1: Hello, coffee!
Write a program that puts basic information on the screen: give the machine a chance to tell the customers what it’s doing!
Stage 2: Machines have needs
Program the machine to calculate the amount of ingredients it needs depending on how many people want some coffee.
Stage 3: Enough coffee for everyone
Working with conditions, program the machine to estimate how many creamy coffees it can make based on the amount of ingredients we enter.
About: A famous game with a 3x3 field. You can build a simple AI and play against it. You’ll learn to create bots of various types of difficulty.
Result: While working on this project you’ll learn to develop like a pro in a comfortable environment. You’ll learn to work with data using arrays and check for valid user input. Start using methods and classes to easily add new functionality to your project. They will allow you to decompose the program and simplify its understanding and further development.
What you’ll do and what you’ll learn
Stage 1: Print a state of the game field
Write a program that displays some information on the screen.
Stage 2: Create a simple game field
Start working with data using arrays to store the current game state.
Learn to work with user input.
Stage 3: Print the game state
Analyze your data and display the result on the screen.
About: A simple assistant that will help you in your learning and make it more fun
Result: Best choice for complete beginners both in Java and in programming. As you move through the project you’ll install Java on your machine and learn to work in a professional development environment. You’ll get to know the basic syntax of Java and will start writing simple programs using variables, conditions, loops, and methods.
What you’ll do and what you’ll learn
Stage 1: Greeting
Write a program that displays some information on the screen.
Stage 2: Introducing yourself
Start handling user’s input and working with math operations.
Stage 3: Guessing the age
Use loops for repeating a command.
About: We’re all quite used to our good old decimal system of numerals. But let’s not forget that there are countless other ways to count! Whether we convert numbers from one system to another just for fun or to store large data more efficiently, a converter would be helpful. In this project you will create a mathematical helper that will help you convert numbers from system m to system n.
What you’ll do and what you’ll learn
Stage 1: For example
Start with outputs and the binary system: print a line with an example conversion.
Stage 2: Almost an octopus
Learn the basics of working with Scanner class: teach the converter to determine the last digit of the octal number, converted from the decimal system.
Stage 3: Convert decimals
With the help of switch operator and prefixes, convert the number to any system of your choice.
About: Calculators are a great help: everyone is familiar with them. Why not write one yourself, and make it really special? Completing this project, you will write a calculator that not only adds, subtracts, multiplies, and works with variables, but also is smart enough to remember your previous calculations.
Result: Apart from writing quite a useful program (everyone uses calculators!), you will learn a lot about arrays, stacks, strings and queues. You will also get a closer experience with BigInteger class.
What you’ll do and what you’ll learn
Stage 1: 2+2
Your calculator is taking the first steps: teach it to calculate the sum of two integers and display the result on the screen.
Stage 2: 2+2+
Enable your calculator to keep adding the numbers on a loop until the user presses “exit”
Stage 3: Count them all
With the help of arrays and strings, make it possible to calculate sums of multiple integers.
About: You’ve come so far, *username*! Yet sometimes it’s nice to refer to old and simple basics: shall we remember some linear algebra? In this project, you will write a program that can solve linear equations (you wish you had it back at school, don’t you?) It won’t be working with powers and radicals, but on the other hand, it will be able to handle matrices and complex numbers.
Result: Practice the ever-useful essentials (classes, arrays, files) and learn to handle complex numbers and matrices.
What you’ll do and what you’ll learn
Stage 1: Simple and real
Start with real numbers and simple equations of (a*x = b) type.
Stage 2: X and Y
Let’s get serious: enable the program to solve systems with two variables.
Stage 3: Equations
Practice working with multidimensional arrays, files and the command line: get data from a file and solve multiple linear equations.
About: Google is our door to endless information: rumour has it, you can find anything there if you know how to search. It is the most well-known example of a search engine, and here you will be able to create your own. It probably won’t compete with Google: yours will be but a simple version of a search engine. It will process some data and search it for a word or a phrase. Simple but cool. Let’s get started?
Result: Gain confidence in working with files and console; learn how to optimize the search process.
What you’ll do and what you’ll learn
Stage 1: String theory
Set two strings (where to search and what to search) for the program to return an index of the searched word or report “not found”.
Stage 2: Expand the search
With the help of arrays and linear search, add more strings to the program and search for specific data from that input.
Stage 3: User menu
Using switch operator and methods, create a user menu for your search engine.
About: Get firsthand experience of creating a small inhabited universe and observe the many patterns in which this “life” can evolve. Generation by generation, watch the cells come and go, reacting to their environment, perishing from loneliness or finding comfort in company. In this project, you will write a simple “Game of Life”, a classic toy for programmers to entertain and educate themselves. Careful: might be hypnotizing!
Result: Practice using Swing library for creating GUI and get confident working with Random class and multithreading.
What you’ll do and what you’ll learn
Stage 1: Let there be light
Create something out of nothing: generate a starting combination and specify the field.
Stage 2: Generations
Using classes and arrays, enable the player to enter the number of generations and see what the outcome is.
Stage 3: Life goes by
Make your game truly entertaining by letting the player observe your universe live and evolve.
About: Neural networks: what a trend nowadays! It might seem like a kind of magic, but upon completing this project, you’ll see that you are already competent enough to build your own neural network. Your network will be able to recognize numeric data, allowing you to digitize checks and even some captchas. If you aren’t too intimidated by words like “sigmoid” or “backpropagation”, click select and let’s get started!
Result: Take a journey from building your first neuron at the first stage to fully understanding the workings of OOP at the last one. As a bonus, you can expand your expertise way beyond Java: check out some cool resources on machine learning.
What you’ll do and what you’ll learn
Stage 1: Neuron creator
This is so exciting: create not one but nine neurons in order to recognize ones and zeros in a 3x3 net.
Stage 2: The joy of recognition
You have a 3x5 net with digits; teach the network to recognize simple numbers.
Stage 3: Learning time
Time to work with machine learning: based on ideal examples, improve the recognition process.
About: Looks like you like challenges! This project, however, is not too tricky if you’re feeling like an advanced learner. A text editor you’re going to write allows to search for specific files and open them. Check out the prerequisites, and if you’re ready, let’s roll!
Result: Apart from applying your basic knowledge about loops, strings, methods, classes and other topics, you will get a grasp of SWING, a widget library for GUI (graphical user interface).
What you’ll do and what you’ll learn
Stage 1: A window to editing
Using your competence in inheritance and newly acquired knowledge of SWING, create a window where the user can enter a text.
Stage 2: Saved and loaded
Get familiar with files and buttons in SWING library: add the buttons and enable the user to save files.
Stage 3: Menu, please!
Create a menu for a user to save the text, exit the program etc.
About: Blockchains are data structures where blocks are inseparably connected. What makes blockchains so special is the security level they offer due to the way they are constructed. Blockchains are unhackable, so it makes perfect sense why cryptocurrency makes use of this technology. In this project, you will try yourself at making a microcosm where virtual miners earn cryptocurrency and exchange messages and transactions using blockchain. As difficult as the project might be, it is bound to pay off: not in cryptocurrency, but in knowledge and skills.
Result: Get a profound understanding of how blockchains work, apply your hashing and multithreading skills and learn about (de)serialization: many great topics in one exciting project.
What you’ll do and what you’ll learn
Stage 1: Blockchain essentials
Get to know the structure of blockchains: learn how to create blocks and make them secured and connected.
Stage 2: Serialization applied
Make cryptocurrency mining possible in your virtual world: generate magic numbers and store them in blocks.
Stage 3: Miner mania
Generate random numbers in several threads; when a miner finds the magic number, a blockchain is created, and mining goes on.
About: The Web is called so for a reason: all these pages are connected to many others through links, resembling a spider’s web. It’s easy to get lost and miss important links, so in this project you will write a program that might help. A Web Crawler collects and saves links from a given page, storing them in the memory for you to access later.
Result: You seem like a quite advanced user! Here you will gain even more skills: get to know Swing library and learn how to distribute tasks among the threads and control them.
What you’ll do and what you’ll learn
Stage 1: Crawl through the window
Review what you know about Swing and inheritance in order to create a simple interface: a window with text.
Stage 2: Links, links
Feed the first link to your program so that it displays the page’s content.
Stage 3: Titles
Practice working with regular expressions: teach the program to parse and display the page’s title.