University of Denver
University College
Information and Computer Systems
Syllabus
Java Programming — ICT-4361


Note: This syllabus is a living document, and may change approximately weekly. Watch the announcements for any significant changes notifications.


Course Summary

Course Name

Java Programming

Course Number

ICT-4361

Instructor

Michael I. Schwartz

Class Meetings

Online Course

March 21st—May 27th 2016

Adobe Connect optional live sessions offered, beginning Tuesday, March 22nd

Room

Online
Adobe Connect optional session will be offered, assuming student input favors them, Tuesdays, 6-8 PM MT.
Adobe Connect provides live audio and video support at the URL posted in the Course Announcements on Canvas
URL will be posted under the course announcements.
Live classes may be adjusted based on student preference.

Dates and Times instructor is unavailable

Friday afternoon, 5PM through Saturday

6 PM March 23-March 24, April 3, April 24, April 29, May 4-5

Course Description

In this ten week class we will be covering the following areas:

  • Introduction to Java Applications
  • The Java Programming Environment
  • Fundamental Programming Structures in Java
  • Objects and Classes in Java
  • Inheritance
  • Interfaces and Inner Classes
  • Exceptions and Exception Handling in Java
  • Streams and Files
  • Applets
  • Swing, Graphical User Interface Components
  • Multithreading
  • Java Database Connectivity
  • Servlets
  • Networking
  • Collections

The assignments will include 10 programming projects. This course is similar to an exercise class. You learn new concepts and techniques, and then, exercise these new found skills. At the end of the class you should have a clear understanding of Object Oriented programming using the Java environment and class library.

Course Prerequisites

ICT-4300, Web Enabled Information Systems
ICT-4305, Object-Oriented Methods
ICT-4315, Object-Oriented Programming

Course Objectives

At the end of this course, a student will:

  1. Demonstrate Object Oriented Programming concepts, including composition, inheritance, and polymorphism, using the Java programming language;
  2. Install and run the Java runtime environment;
  3. Develop, compile, and run Java applications;
  4. Design, build, and run Java GUI applications using Swing and AWT;
  5. Develop simple web applications using the J2EE framework;

Required Materials and Resources

Text

Java, How to Program, 10th Edition (Pearson) by Deitel and Deitel, ISBN 978-013380780-6.

Instructor slides are available via Canvas for student convenience.
In most cases, the instructor slides are sufficient for understanding the material.

In addition to our text, the following books are very useful as references or tutorials for Java, as marked

  • TUT:EASY:Head First Java, 2nd Edition (O'Reilly) by Kathy Sierra & Bert Bates
  • REF:VERBOSE:Java in a Nutshell, 5th Edition (O'Reilly) by David Flanagan
  • ADV:MEDIUM:Effective Java (Addison-Wesley) by Joshua Bloch
  • REF:MEDIUM:The Java Programming Language, 3rd Edition (Addison-Wesley) by Ken Arnold, James Gosling, David Holmes
  • If you have a favorite, recommend it! Just make sure to follow the topics along the syllabus
  • TUT:EASY:Thinking in Java 4th Edition, Bruce Eckel

A number of books are recommended for reference and a second source of information for the student.

  • Online resources

Material

The material for this course is mapped to both the textbook and the Thinking in Java book at the end of the syllabus.
A preliminary list of equivalent reading assignments is sprinkled throughout the syllabus. These are for students referencing both books, and are not truly equivalent at this time.

Electronic Mail

Responses can also be received by mailing a description of your problem to mschwart@du.edu.

WWW

Syllabus, HW Problems, and Resources can be accessed on http://www.du.edu/~mschwart/java.html as well as on the Canvas system

Appointments

Call 303-971-6781 (Day), 303-394-3117 (Eves).

Student questions will normally be answered within 24 hours, except as noted above.

Course Policies and Procedures

Attendance

Participation in the weekly discussion is used in lieu of attendance. Active participation is highly recommended, and introduces anciliary learning opportunities. This comprises the Class Participation portion of your grade.

Assignments

Assignments are due each week, and must be handed in on-time. Late work will receive no credit. Make advance arrangements with the instructor for any requested exceptions. Except for the last assignment, all assignments may be resubmitted after rework of indicated portions. Resubmitted assignments will receive a maximum credit of 90%. Assignments are all available at the beginning of the course, though they may undergo clarifications and slight changes.

Note: A coding assignment (HTML) is due at the end of the first week, but is recommended to be completed the first night of class (ClassLive night for online classes)

Coding standards and policies In addition to plagiarism policy adherance (see Instructor's note on plagiarism in a software environment ) Java has a strong set of conventions and standards for programming. These standards are summarized here for student convenience. These standards will be discussed as we move through the course.

Solutions

Available on Canvas after assignment due date.

Scoring Grading [Aligned with UC Standard]
Exam: 25% 94%-100%: A 90-93%: A- 87%-89%: B+
Homework: 65% 83%-86%: B 80%-82%: B- 0%-79%: C or below
Class Participation: 10%  
Posting relevant information to the class discussions on Canvas is evaluated in lieu of attendance for online courses.

Academic Integrity

University College enforces the University of Denver's Honor Code and the procedures put forth by the Office of Citizenship and Community Standards. Academic dishonesty (including but not limited to plagiarism, cheating, and falsification of data and research) is in violation of the Code and can result in a failing grade and/or expulsion from the University.

The University of Denver defines plagiarism as the presentation of another person's idea or product as the student's own. Plagiarism includes but is not limited to the following:

  • Copying word-for-word all or part of another's written work
  • Using phrases, charts, figures, illustrations, graphics, codes, music, mathematical and scientific solutions without citing the source
  • Paraphrasing ideas, conclusions or research without citing the source
  • Using all or part of a literary plot, poem, film, musical score, Internet website or other artistic product without attributing the work to its creator

As student members of a community committed to academic integrity and honesty, it is your responsibility to become familiar with the DU Honor Code and its procedures. Please visit www.du.edu/honorcode or refer to the University College Student Handbook for more information.

The instructor's own thoughts on the meaning of plagiarism in a coding environment is found here (HTML).


Course Schedule

This course enhances the student's experience in object-oriented design and software development by performing and discussing OO design for re-use of general purpose applications and small Java applications, including the Java Collection API and Swing user interface classes. Other topics covered include the use of Java as an object-oriented programming language including encapsulation, simple inheritance, and polymorphism; design of Java classes using Java interfaces and packages; implementation of design patterns in working Java code, and use of Java Base Classes.

The student is encouraged to use one of the several excellent Java IDEs available, with instructor materials covering Eclipse and NetBeans. Note: This course does NOT address JavaScript. Prerequisites: ICT 4300, ICT 4305, ICT 4315.

Exercises are the primary student mechanism to achieve mastery of the subject. Complete sample solutions for each exercise are handed out and discussed by the instructor immediately after the exercises are turned in by the students to reinforce the homework objectives.

Each week's material is covered in a set of slides downloadable from Canvas, and covered in more depth through the book material suggested.

The book material itself is divided into two categories, the basic material needed to understand the subject, and the supplementary material which adds to the understanding of the subject.

The homework knowledge is mostly drawn from the slides; the quizzes and tests are additionally drawn from the basic book material.

Following are the goals for each week's lessons:
Class / Objectives Weekly Goals Reading, Homework Due

Class 1:
A, B

Course Introduction
Overview of Java
Install the Java JDK
Setting up the Java development environment
Writing Java applications
User defined abstract data types (classes)
Java 2 class libraries
Java primitives
Strings
StringBuffers

Chapters 1-3
Supplementary resource: Java tutorial on Strings and StringBuffers: http://java.sun.com/docs/books/tutorial/java/data/strings.html
HW 1 (HTML)
Thinking in Java: Introduction through Everything is an Object

Class 2:
A, B

Java control structures
Java packages
Java methods
Java 2 Math classes
Arrays in Java

Chapters 4-5, 6.1-6.5
Supplementary material: Chapter 7.1-7.3
Quiz
HW 2 (HTML)
Thinking in Java: Control operations, Arrays

Class 3:
A, B

Object-Based Programming
Writing user defined abstract data types (classes)
Class methods and attributes
Static class methods and attributes
Instance class methods and attributes

Chapters 8.1-8.13, 16.1-16.6
Supplementary material: Chapters 8.14-8.15, 16.7
HW 3a (HTML)
Thinking in Java: Access Control, Reusing Classes

Class 4:
A, B

Object-Oriented Programming
Class inheritance
Polymorphism
Java Interface mechanism
Accessibility modifiers

Chapters 9.1-9.7, 10.1-10.7
HW 3b (HTML)
Thinking in Java: Polymorphism, Interfaces

Class 5:
A, C

Graphical User Interface Components
Graphics and Java
2D classes
Java Inner classes

Chapters 12, 13.1-13.7
Supplementary material: Chapters 4.14, 5.10, 6.13, 7.15
Quiz
Thinking in Java: Inner classes, Holding your objects, Graphical User Interfaces

Class 6:
A, C

Applets
More GUI components

Chapter 22.1-22.3
Supplementary material: Chapters 25
HW 4 (HTML)

Class 7:
A, C

Exceptions
Files and Streams
Multithreading

Chapters 11.1-11.9, 17, 26.1-26.5
Supplementary material: Chapters 11.10-11.13, 26.6-26.12
HW 5 (HTML)
Thinking in Java: Exceptions, I/O, Concurrency

Class 8:
A, C, D

Java Collections framework
Accessing databases using Java
JDBC classes

Chapter 15, 16, 20.1-20.6
HW 6 (HTML)
Thinking in Java: Containers, Containers in depth, Supplement on JDBC

Class 9:
A, C, D

Networking

Chapter 28.1-28.6
Supplementary material: Chapter 27.7-27.9
HW 7 (HTML) discussed
Thinking in Java: Supplement on Networking

Class 10:
A, D, E

Web Applications and Servlets

Chapter 29
Final Exam