CS 2110 uses the Java Standard Edition (Java SE 8) platform. It is housed in an integrated development environment (IDE) called Eclipse. You have to get both the Java Platform and Eclipse onto your computer. We describe how to do this below..
Note that you need version 8 of Java, not version 7 or 6.
Getting Java onto your computer
Java has two main components:
Java Runtime Environment (JRE). This includes everything needed to run Java programs, including an interpreter for its machine language (the Java Virtual Machinee) and the libraries of codes of classes that come with Java.
A Java Development Kit (JDK). This includes the compiler, which translates Java programs into the Java virtual machine language. It includes a debugger, as well as lots of other pieces, which help Java work smoothly.
You can see a diagram of what each contains on this website: http://docs.oracle.com/javase/8/docs/, but don't get discouraged at its complexity. You don't need to know much more than the fact that there is a JRE and a JDK.
If you think you already have the right JRE and JDK, find out this way:
Here's how to find out which JRE you have on your computer. Open a command window (in Windows, Start > Run... and type
java -version; in Mac OS X, Applications > Utilities > Terminal)
java -version at the command prompt. It should look something like this:
C:\>java -version java version "1.8.0_74" Java(TM) SE Runtime Environment (build 1.8.0_74-b02) ... and maybe another line ...
This says you have version 8 installed (8 and 1.8 are synonymous). You might have something slightly different, like
C:\>java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) ... and maybe another line ...
That's OK, as long as it is 1.8.0_something.
If this command had failed (meaning Java isn't installed at all), that would mean Java was not installed on your machine.
If Java 1.8 is not installed on your computer, you need to install it.
Which JDK do you have? If you are on a PC running Windows and have never installed a version
of the Java Development Kit (JDK) on your machine, you probably don't have it.
If you are on a Mac, you probably do. To find out, type
C:\>javac -version javac "1.8.0_74"
If you get an error message or the version is earlier than 1.8 you MUST (re)install the JDK.
Installing the JRE and JDK together
Visit Oracle's website www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
This is the site to download the Java SE Development Kit 8u74, which includes the JRE and JDK. In the main table, choose the machine on which it will be installed (your computer) and click the appropriate Download item. Once the file is downloaded, you may have to double-click the downloaded file to unpack or unzip it. Then, follow instructions to install it.
We assume the JRE and JDK have been installed as described above.
Visit http://www.eclipse.org/downloads/ This is the site to download the most recent version of Eclipse. Click on the version for your OS and choose the appropriate bit flavor. If you downloaded 32-bit (x86) Java, you should also download 32-bit Eclipse. If you downloaded 64-bit Java, you should also download 64-bit Eclipse.
Mac users will most likely want the 64-bit version, unless they know for sure they are using a 32-bit version of OS.
Clicking that link takes you to a downloads page, where you can download the file from several different sites. Use the one that seems easiest.
After the file is downloaded, double-click it to unpack or unzip it and double click again to start the installation app. Launch the installer, select Eclipse IDE for Java Developers, and follow the on screen instructions. After installation completes, launch Eclipse.
You may be asked where to store the "project workspace". This is a folder where all your Java projects will be placed. Create this workspace somewhere on your harddrive where you can get to it when you want to.
What if you already had a version of Eclipse on your computer
Suppose you have an earlier version of Eclipse on your computer. You should still download and install Eclipse as instructed above. Here are some things to be concerned about.
1. The folders for the old and new versions of eclipse may have the same name (e.g. eclipse). Feel free to rename the new one to something like eclipse8 before you start the application for the first time.
2. When asked where the workspace (that will contain all the projects) should be, make it the same as the workspace for the old version of Eclipse. When you do this, you may be asked whether you want all the projects updated to the new version of Eclipse. Say yes.
3. Once you try a project --e.g. running a program from inside the new Eclipse-- and you see that it works properly, feel free to delete the folder for the old version of Eclipse completely. Or, you might want to leave it there for a few months until you are satisfied that the new version is OK and then, later, delete it.
Compiling and running from the command line
We don't use of this feature in CS2110, but sometimes it is useful to run a Java program without launching it from Eclipse. You can easily do this; Eclipse and Java are really two different systems that talk to each other in a friendly way, but they can also be used independently. The notes that follow explain how you would run your Java program all by itself, if you wanted to do so.
Say your method main is in class
MyProgram and it is
contained in source file
If it is not in a package, navigate
to the folder containing
MyProgram.java and type
If it is in a package (say
source should be in a folder called
to the folder containing
myPackage and type
From the same folder you compiled from, type
java MyProgram <program arguments> if it is not
in a package, and
java myPackage.MyProgram <program arguments> if it is.
Specifying a Classpath
Sometimes you may need to inform Java where to find auxiliary
classes. You can do this with the
Supply a sequence of folders telling Java where to look
for classes, separated by
: (Mac) or
More Ways To Catch Up
- See Oracle's official Java Tutorial.
- Refer to the CS 1110 (formerly 100J) and CS 1130 websites, which contain numerous examples. The lectures on here are close to those we give in the first 3 weeks of CS2110.
- For students with C++ experience, see http://www.perryland.com/Java2.shtml to compare C++ with Java.
CS2110 uses Piazza: a public forum for discussing questions about the assignments. The course staff monitors this group regularly, so this is a great way of getting help and interacting with the course staff. An extra advantage of using the group is that everyone else can benefit from your question as well. Anyone can visit the group and read previous questions here .
If you know the answer to a question, feel free to post a reply yourself, but please avoid giving away any hints on the homework or posting any part of a solution. This will be considered a violation of Academic Integrity. Generally, rough algorithms or non-solution-specific code fragments are OK if you need them to illustrate a point.
In fall 2013, 60% of the incoming students won't have Java experience, and many have relatively little prior OO experience (everyone is expected to have some programming experience, and some prior exposure to OO concepts, but the level of prior experience varies widely). To help out we've created an enrichment course that runs for 1 credit, S/U, and provides extra exposure to the same ideas we'll cover in class. CS2111 is totally optional but could be very helpful to anyone nervous about their background. It is taught by Professor Gries. You would normally take CS2111 in addition to CS2110 and the CS2110 recitation, so CS2111 does involve extra time -- one hour per week. But with this extra help, even people very nervous about programming should be able to keep up with CS2110.
The Academic Excellence Workshops (AEW) offer an opportunity for students to gain additional experience with course concepts in a cooperative learning environment. Research has shown that cooperative and collaborative methods promote higher grades, greater persistence, and deeper comprehension. The material presented in the workshop is at or above the level of the regular course. We do not require joining the AEW program, but do encourage students to join if they are seeking an exciting and fun way to learn. The AEW carries one S/U credit based on participation and attendance. The time commitment is two hours per week in the lab. No homework will be given. This is a wonderful opportunity for students to seek extra help on course topics in a small group setting.
Your fellow undergraduate students, who are familiar with the course material, teach the sessions with material that they prepare. The course staff provides guidance and support but do not actually teach the AEW course content or any session. A representative from the AEW program will be speaking about the program and registration procedures in lecture.
See the AEW webpage for further information.
We have produced over 70 powerpoint slides that give a brief introduction to just about every part of OO in Java. The slides give examples, rather than formal definitions. The first two pages contain an extensive index, so you can easily get to the slides that you want.
We give it in two forms: a pdf file and the source pptx slides. The latter is the best to use so that you can make use of the animations on the slides. It took us a long time to make this up; we did it to help you. Use this resource!
codingbat.com is a website for practicing writing Java code segments to learn about and practice various Java features, from boolean expressions, strings, loops with strings, recursion, and more. Try it out!