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

4 Credits
January 4th—March 10th
On Campus


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

Thursdays

January 4th—March 10th 2018

Room

Sturm Hall 312

Days instructor is unavailable

Friday afternoon, 4PM through Saturday

Course Description

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. Topics 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 course will also address the use of Java IDEs such as Eclipse and NetBeans. Note: This course does NOT address JavaScript. Prerequisites: ICT 4300, ICT 4305, ICT 4315.


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 6 required programming exercises, and one or two optional ones. In each module, 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. Leverage the Java library, including collections and networking

Required Materials and Resources

Text

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

The publisher is preparing the updated version of the book for Java, so currently the 10th Edition is available only electronically. Apologies for the inconvenience

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://mysite.du.edu/~mschwart/java.html as well as on the Canvas system

Appointments

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

Dates and Times Instructor Is Not Available

Friday evenings and Saturdays.

April 10th

Course Policies and Procedures

Attendance

Attendance and active participation at the class sessions is expected, and comprises the Class Participation portion of your grade.

Assignments

Late work, without prior arrangements, will receive no credit.

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.
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 for online classes)

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 Numbers, Strings, and StringBuilders: https://docs.oracle.com/javase/tutorial/java/data/buffers.html
HW 1 (HTML) [Due next week]
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
HW 2a (HTML) [Due next week]
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) [Due next week]
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) [Due next week]
Optional: HW 10 (HTML) discussed [Optional: Due before course end]
Thinking in Java: Polymorphism, Interfaces

Class 5:
A, C, E

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
HW 4 (HTML) [Due in 2 weeks].
Thinking in Java: Inner classes, Holding your objects, Graphical User Interfaces

Class 6:
A, C, E

Applets
More GUI components

Chapter 22.1-22.3
Supplementary material: Chapters 25

Class 7:
A, C, E

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 5a (HTML) [Due next week]
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 6a (HTML) [Due next week]
Thinking in Java: Containers, Containers in depth, Supplement on JDBC

Class 9:
A, C, D, E

Networking

Chapter 28.1-28.6
Supplementary material: Chapter 27.7-27.9
HW 7 (HTML) discussed [Optional: Due before course end]
Thinking in Java: Supplement on Networking

Class 10:
A, D, E

Web Applications and Servlets

Chapter 29
Final Exam