Return to Course Content Home

Syllabus

Thoughts

Yes, I left this page in because I really didn't want to gut things more than I had already.

That being said, there isn't much here anymore!

Bottom line is, this is the core of a semester long class that I had developed but no longer teach. I didn't have it in me to just retire it, so I figured I'd post it for those who can use the help. There are no assignments, there isn't any online help, but hopefully the content may help somebody.

Prerequisites


Experience with Java or C/C++/Pascal/C#.

I expect all students to have experience programming and to understand the basics of software design, debugging and data structures. I am also assuming some familiarity with C++ (or Java) since experience with a higher level language is a prerequisite for the course. However, since many people may enter the program without knowing Java, I am not assuming you know anything about Java. I also do not assume that you know anything about HTML, HTTP, Servlets or Java Server Pages. If you know neither C++ or Java, or it has been many years since you looked at them, you will want to carefully review the chapters that introduce basic Java syntax and object-oriented programming, and can expect to spend some extra effort compared to other students, especially on the few Java-related assignments. I also assume you can use a Web browser .

Course Objectives

When you have completed the course, you will be able to

  1. Design and create a basic HTML that uses the following:
    1. Basic HTML tags
    2. Tables
    3. Cascading Style Sheets
  2. Validate an HTML page for proper format
  3. Design and create a basic XHTML document
  4. Design and code a Java application that can include the following technologies (Please note that these concepts apply to almost all modern environments, so this will be more beneficial than you might believe)
    1. Frames
    2. Basic Swing Components
    3. Event Handling
    4. Exceptions
  5. Be able to describe and use Object Oriented programming methods, including inheritance and interfaces. Compare the advantages between classes and interfaces
  6. Design and code a Simple GUI Application
  7. Compare the differences between Web Start and Java Applications
  8. Understand the use of Java I/O and design a simple client/server application
  9. Design and code a simple Servlets
  10. Use basic JavaScript in a web page
  11. Understand how Junit is used
  12. Be able to describe and use multi-threading in Java
  13. Design and code a simple JSP page
  14. Describe and use JDBC
  15. Be familiar with web security principles
  16. Understand how to use the Maven build framework
  17. Understand what Restful web services are and how to design a simple one
  18. Understand what JSON is and how to use it

 

You will need the following software for the class.

 

 

Java Compiler:

Okay, what a mess Oracle has made with Java licensing and support.

The server your code runs on is currently supporting the latest version of Java, however, anything after Java 8 is no longer publically available. You have two recommended Java options

  1. Download the latest version of Java from Oracle. I am not a lawyer, but as I read the current licensing, you are using Java for development, so it is free for you to use. Please pay attention to the licensing, because if you use it for anything but development, testing, etc, you need to get a PAID license. The advantage of this approach is that installation is much easier on some platforms, as an installer is provided.
  2. Download OpenJDK from https://openjdk.java.net/ : the advantage here is that this is under the GPL, so it is absolutely free, which is good. However, Oracle, being the stinkers they are have removed any installer, so this is just a zip file of the Java directory structure. This means that you need to set the "path" on your system to point to your Java installation and usually set the JAVA_HOME environmental variable. Details on this will be given later on.

Java Editor:

You will need something to edit Java source code. You can use anything you want as we aren't teaching "how to use" a tool, and I can give some advice on alternate development environments. For many years, this classed used Netbeans, which was a well supported IDE. Once again, Oracle has sloughed off a product on Open Source, so Netbeans no longer has as much integration as it once did. That being the case, we will now use Eclipse as the "supported" IDE for the class.

Please note: You can use any editor/IDE you are comfortable with. However, if you don't use Eclipse, I can't help you with configuration or other IDE issues for other IDEs.

J2EE environment:

We will be using the Tomcat 10 web server. You don't need any special J2EE support, the standard Java SE environment you downloaded above will work fine.

Database environment:

You will eventually (by Module 10) need to install MySQL server and workbench on your system. Historically, we played with Derby as an embedded database, but I eventually decided it was best to just straight into MySQL.

You can get both from the MySQL web site (https://www.mysql.com). We want to use the community edition server (non-enterprise) which can be found at https://dev.mysql.com/downloads/mysql. You will want the MySQL Community Server download.

MySQL workbench can be found at https://dev.mysql.com/downloads/workbench/. Download the version appropriate to your environment. Workbench is a fantastic tool to explore a database and to refine you queries before you include them into your code.