Syllabus


Short Description

Introduction to professional software development in Java; tools for coding, testing, version control, documentation; language-specific best practices stemming from principles of component-based design.

Course Objectives

The aim of this course is for students to:

  • Master core Java language features including: objects, classes, interfaces, inheritance, and exceptions
  • Master core SDK packages including: collections framework, logging, and IO
  • Master core best practices for component-based development including: separation of abstract state and concrete representation and coding to the interface
  • Master the use of a modern IDE, such as Eclipse
  • Be familiar with advanced language features including: iterators, generics, and assertions
  • Be familiar with foundations of an object-oriented paradigm, in particular: encapsulation, inheritance, and polymorphism
  • Be familiar with the application of design patterns including: immutable objects, factories, and singleton objects
  • Be familiar with best practices with regards to object equality, object cloning, and checked/unchecked exceptions
  • Be familiar with CVS, JUnit, and Javadoc
  • Be exposed to advanced SDK packages including: Swing for GUIs and network programming
  • Be exposed to exotic language features including: nested classes, nested interfaces, and annotations

Prerequisites

CSE 321.

Textbooks

Core Java, Volume 1, by Horstmann and Cornell [required].

A summary of other, recommended, references is available at the class web site.

Course Outline

Week Topics:Language Topics:Tools Topics:Practice Reading
1 Overview Eclipse
2 Objects, classes, interfaces
3 Javadoc, JUnit Immutability
4 Generics, Polymorphism
5 Inheritance, Exceptions Equality
6 Collections
7 Assertions, IO Factories
8 Swing CVS/SVN Logging
9 Nested classes, Type bounds MVC
10 Networking, Reflection Singleton

Grading

Individual Labs 55 %
Team Lab(s) 15 %
Midterm 10 %
Final 20 %

An 85 or higher is an A (or A-);
75-85 is a B (+/-);
65-75 is a C (+/-);
55-65 is a D (+/-);
and anything less than 55 is an E.

Please note the following:

  • Exams are done individually.
  • Labs, unless explicitly noted otherwise, are done individually.
  • A class participation penalty of 5 % will be assessed if I can not match your name and face by the end of the quarter.

Late Policy

Assignments are turned in by the beginning of class on their due date. Assignments will be accepted up to 24 hours late with a 25% penalty and up to 48 hours late with a 50% penalty.

Disability Statement

Any student who feels he/she may need an accommodation based on the impact of a disability should contact the intructor privately to discuss their specific needs. The Office for Disability Services at 614-292-3307 in 150 Pomerene Hall will help in coordinating reasonable accommodations for students with documented disabilities.

Academic Misconduct

Students are expected to submit work that is entirely their own. It is a violation of course rules to use any part of someone else's solution as one's own. This includes using code (or code fragments) from other students currently registered for the class as well as from students from previous classes.

Please review COAM's rules for academic integrity.