Please install the JDK and JDK docs in a path without spaces

To avoid path problems and for convenience adding new versions of the JDK, you should install Java in a short path without spaces.

Good: c:\java\jdk8u144 (Windows), /opt/java/jdk8u144 (Linux).
Bad: c:\Program Files\Java Development Kit\jdk_1.8.0u144

Programming Tools You Need

BlueJ (IDE) for Windows and Mac OSX includes the Java JDK. If you install BlueJ you can skip #1.

  1. Java Development Kit (JDK): JDK 8 Downloads at http://www.oracle.com/technetwork/java/javase/.
  2. Integrated Development Env (IDE) for writing code. Please try BlueJ, but you can use whatever IDE you prefer.
    • BlueJ - great for learning. You can interactively run code without compiling, view objects, and visualize project structure.
    • Eclipse - powerful, but complex.
    • Netbeans - similar to Eclipse but easier to get started. Install the “Java SE” version.
    • IntelliJ IDEA - many say this is most powerful Java IDE. Somewhat hard to master. The “professional” edition has a free Student License. There is also a “Community Edition” that is free for everyone.
  3. JDK Documentation. Please install on your computer and bookmark the API docs in your browser (demo in class).
    • You can view the JDK Documentation online at http://docs.oracle.com/javase/8/docs/, but its much faster to install on your computer and bookmark it.
    • The Java API is what you need most. Bookmark it!
    • Download. You don’t need the JavaFX docs.
    • The IDE (Eclipse, BlueJ, Netbeans) can show context sensitive help using the API docs on your computer. Eclipse can also get Javadoc from source code.
  4. Git command tool from http://git-scm.org/download/ (not needed at beginning). The “git” command line program is needed to submit some assignments. IDEs have builtin Git support, but command line is sometimes better.

Big Java, 5th Ed by Cay Horstmann. Book is easy to read and covers a lot. Horstmann has written many popular Java books, including Core Java and Object-oriented Design & Patterns.

Oracle’s Java Tutorial is very comprehensive and covers beginning to advanced topics. The Really Big Index page is the best way to find specific material (so bookmark it).

We suggest you download the tutorial and install it on your computer. You can download the tutorial as HTML or ebooks (ePub).

Online Coding Practice

  • elab for lab work in this course.
  • codingbat.com - many short problems, with explanation and solutions. Enter code into browser window and see test results immediately. Students can share their progress with instructor.
  • Adaptive Java by JetBrains at stepik.org is very nice. It chooses problems based on your past answers (adaptive), so problems get progressively harder. You can write code in browser or upload a file. Has hundreds of problems.
    • Stepik also has a Python course integrated into PyCharm Edu edition. codingbat.com also has Python problems.

UML Diagrams

Unified Modeling Language (UML) is a standard for diagrams that describe software – like circuit diagrams for software. In Programming 2 (OOP) you will use UML a lot.

The UML class diagram and sequence diagram are very helpful for design and coding; they are also easy to learn.

Some tools for drawing UML diagrams are:

  • Violet is a simple, easy-to-use UML editor written in Java. I use version 2.0.1 (not the newest) because it inserts less space.
  • Eclipse plugin - draw UML or generate UML class diagram from Java code.
  • Netbeans and IntelliJ IDEA also have UML extensions.
  • Paper and pencil. :-)

For Instructors

  • For automatic grading: http://web-cat.org
  • Online exercises: http://stepik.org. Has java and python courses. You can also create your own course.
  • Fatalai (@gmail) is using stepik.org