| Credit Hours: | 4 |
| Course Coordinator: | Cynthia Brown |
| Course Description: | Examines aspects of the Java(tm) programming language including object-oriented programming, the Java class libraries, and writing applications
with a graphical user interface (GUI). Additional topics may include the
Extensible Markup Language (XML), networking, concurrent programming, the
Unified Modeling Language (UML), object-oriented design patterns, remote
method invocation (RMI), security, Java Database Connectivity (JDBC), and
Java 2 Enterprise Edition (J2EE). Each student will be responsible for five
programming projects, in-class quizzes, and a final exam. Students are expected
to have a solid programming background in a language such as C, C++, Pascal, or
Fortran and a strong working knowledge of the UNIX development environment. |
| Prerequisites: | Fundamental concepts of Object-Oriented Programming, basic knowledge of
data structures (sets, maps, etc.), notion of concurrent programming, basic
concepts of networking components (sockets, servers, etc.), familiarity with GUI
programming components (buttons, menus, etc.) |
| Goals: | Provide a Provide a solid background for Java application development. Reinforce
object-oriented programming concepts. Build a non-trivial, functional application.
Expose students to an application programming interface that they did not design
or implement.
Upon the successful completion of this course students will be
able to:
- Compile and run a Java program consisting of code developed by both
the student and someone else.
- Demonstrate a working knowledge and solid understanding of the fundamental
Java programming APIs.
- Apply software engineering and software development techniques in an
individual and a group environment.
- Experiment with developing Graphical User Interfaces.
|
| Example Textbooks: | Thinking In Java by Bruce Eckel. |
| References: | The Java Tutorial
(http://java.sun.com/docs/books/tutorial/index.html) |
| Major Topics: |
- The Java Programming Language
- Object-Oriented Programming
- The Java API (java.lang, java.io, java.util)
- Using XML with Java (SAX and DOM APIs)
- Concurrent Programming
- Networking
- GUI development with the Abstract Windowing Toolkit (AWT) and Swing
- Introduction to Java security mechanisms
|
| Laboratory Exercises: |
- Compiling a simple program (1 week)
- Writing a simple class (1 week)
- Writing several domain classes (1 week)
- Reading and writing application data from a file (1 week)
- Sorting and formatting application data (2 weeks)
- Reading and writing application data as XML (2 weeks)
- Developing a client/server application or a GUI (2 weeks
|
| Oral and Written Communications: | Every student is required to submit at least 5 written reports (not including exams,
tests, quizzes, or commented programs) of typically 1 pages and to make 0 or 1
oral presentations of typically 7 minutes duration. |
| Social and Ethical Issues: | None. |
| Theoretical Content: | This course is applied in nature and covers very little theoretical content. |
| Problem Analysis: | For the most part, the students are given well-defined specifications for the
behavior of their programs including command line interfaces. The amount of
problem analysis is limited. |
| Solution Design: | Through the project and group work, students are given a series of problems to
solve. As the course progresses, the students are responsible for designing an
increasing protion of their projects. Sample programs are provided to demonstrate
good design and implementation practices. Students who choose to create a GUI
application for their final project have complete control of the look and feel, as well
as the implementation, of their programs. |