(Java) Student Pet Project?

So I'm in my first semester in programming and I thought a side project would be a good idea to keep "in the game" so I'm looking for ideas to what kind of projects I could embark on. I still haven't gone into the GUI stuff, but I'm also looking for ways to get ahead.

Any ideas?

What have you done thus far?  If this is your first semester, you are only a month into it.  And if you have not done any programming prior to this, it is probably better to focus on learning the language and OO concepts.  If you guys are using Java 8 in your class, there are so many changes to the language—some of which have fundamentally changed the language—there is a lot to learn.

I would probably start reading ahead in the book and start tinkering with any sample code provided by the book or any supplement material.  Tinker with the code and make sure you fully understand what it does and what any changes you make to it cause.

After that, I would probably try to map every day things and interactions into Java objects.  Maybe implement something like a vending machine.  I don’t mean make a GUI that represents a vending machine.  I mean define what Java objects would be required to represent a vending machine, how the objects interact with each other, and how the user interacts with a vending machine.  This may sound trivial, but once you start to decompose something like this into objects and interactions, you will not look at a vending machine the same way again.

I don't know about you, but my college has a AMCS (Applied Math-Computer Science) Club. They do coding challenges, compete in contests and every year they build battleship AI and duke it out.

We're about 1.5 months in and we're using 1.7. We are just starting on while loops after doing for loops and I think I've mostly gotten my head wrapped around the pesky nested loops. I will follow your advice and look at different everyday objects like microwaves, vending machines and card readers because its a method that sounds intriguing.

Also, would a transition from 1.7 to 1.8 be difficult? I will stick with 1.7 of course, but I would also have to do 1.8 at some point.

A transition to Java 8 should not be too difficult.

One of the fundamental changes between 1.8 and 1.7 is that Java 8 allows you to define default methods in Interfaces.  Prior to Java 8, any Java class that implemented an interface was forced to provide an implementation for every method defined in the interface.  With Java 8, you can define default methods, and any method in an interface that has a default implementation does not have to be overridden—it can be, but does not have to be.

So you may hear your professor stating any class that implements an interface must provide a definition for all methods defined in the interface.  With default methods in Java 8, this is no longer a true statement.

Some of the other big changes are the addition of lambda expressions, which essentially add some functional elements—there is more to it than that, but that is the gist—to the Java language.  Java was fundamentally an Object Oriented language.  Java 8 also adds some aspects of big data processing.

since you are looking to get ahead, find a good online tutorial and read up. get used to google searching everything. also, become comfortable with reading the java documentation. its good stuff. not sure how your professor will handle introducing GUI, but at my uni they have students work with the swing api. please dont get into that habit of using swing. its old and ancient and needs to die. javafx is another gui library in java, use that. its much nicer. not as really refined as swing but so much newer.

Can I use Java 7 with JavaFX? or is it just a Java 8 thing?

if you use it with java7, you have to include it in the project class path. the jar file needed is jfxrt.jar