CIS/CMSC 274A
Object-Oriented Design and Programming

Syllabus - Spring Semester 2008

Instructor:  Dr. Ralph D. Meeker
Office: Scholl 156    Phone: 829-6561
E-mail: rmeeker@ben.edu


TEXT:

Horstmann, Cay, Object-Oriented Design & Patterns, Second Edition, John Wiley & Sons, Inc. (2006), ISBN 0-471-74487-5 (Required)


DESCRIPTION:

An introduction to object-oriented design and programming with an emphasis on design patterns. Includes classes, objects, class design, interfaces, polymorphism, GUI programming, inheritance, abstract classes, and frameworks. Programming in Java. Introduces the BlueJ development environment and the Unified Modeling Language (UML).


PREREQUISITE:     CIS/CMSC 205


GOALS:

After completing this course, students will have mastered the following topics:

  1. Object-Oriented Design
   
  • A simple methodology
  • CRC cards and UML diagrams
  • Design patterns
  2. User-Interface Programming
   
  • Swing applications
  • Event handling
  • Java 2D graphics
  3. Advanced Java Language
   
  • Interface types
  • inner classes
  • Reflection
  • Frameworks

IDEA OBJECTIVES:


COURSE REQUIREMENTS:

Homework and programming exercises as assigned, participation in class, two hour exams, comprehensive final examination.


GRADING:

Homework exercises 100 points
Programming assignments 100 points
Mid-term exams 200 points
Final test 200 points
A =  
540-600 points
B =  
480-539 points
C =  
420-479 points
D =  
360-419 points
F <=
359 points
Note:   It is the responsibility of any student who is unsure of the grading scale to ask the instructor for clarification.


OUTLINE:

This course will focus on chapters 1 through 8 of the assigned text. Additions and deletions will be made as appropriate.


I. A Crash Course in Java


  1. Defining classes and methods
  2. Objects and object references
  3. Exploring objects with BlueJ
  4. Documentation comments
  5. Numbers, strings, and arrays
  6. Packages
  7. Exception handling
  8. Common utility classes
  9. Programming style guidelines

II. The Object-Oriented Design Process


  1. Identifying classes and methods
  2. Relationships between classes
  3. CRC cards
  4. UML class, sequence, and state diagrams
  5. Case study

III. Guidelines for Class Design


  1. Designing and implementing the interface of a class
  2. The importance of encapsulation
  3. Analyzing the quality of an interface
  4. Programming by contract: preconditions, postconditions, and invariants

IV. Interface Types and Polymorphism


  1. Frames, images, and shapes
  2. The Icon interface type
  3. The Comparable and Comparator interface types
  4. Anonymous classes
  5. User interface actions
  6. Designing interface type
  V. Patterns and GUI Programming
   
  1. Alexander's architectural patterns
  2. Software design patterns
  3. The Iterator patterns as an example of a design pattern
  4. The Observer patterns, model/view controller, and Swing listeners
  5. The Strategy pattern and layout managers
  6. The Composite pattern, user interface components, and containers
  7. The Decorator pattern, scroll panes, and borders
  VI. Inheritance and Abstract Classes
   
  1. Defining and implementing subclasses
  2. Invoking superclass constructors and methods
  3. Abstract classes and the Template Method pattern
  4. The inheritance hierarchy of Swing components
  5. The inheritance hierarchy of graphical shapes in the java.awt.geom package
  6. The inheritance hierarchy of exception classes
  7. When not to use inheritance
  VII. The Java Object Model
   
  1. The Java type system, primitive types, wrappers, and array types
  2. Type inquiry and reflection
  3. Object equality and cloning
  4. Serialization
  5. Generic types
  6. Components and JavaBeans
  VIII. Frameworks
   
  1. The framework concept
  2. Applets as a simple framework
  3. The collections framework
  4. Application framesworks
  5. The graph editor framework
  IX. Advanced Topics (time permitting)
   
  1. Multithreading
  2. More design patterns

TECHNOLOGY:

This course will require students to use technology in at least the following ways:


SOFTWARE DEVELOPMENT TOOLS:

The Java Software Development Kit (SDK) from Sun Microsystems is a set of command-line programs for compiling, running, and documenting Java programs. Versions for several platforms are available at http://java.sun.com/j2se. BlueJ provides an interactive environment for constructing objects and invoking methods on the objects. You can download BlueJ from http://www.bluej.org.The BlueJ development environment works with the Java SDK and lets you test classes without having to write a new program for every test. For simple UML diagrams, you can use the Violet tool provided by Cay Horstmann and available for download at the companion Web site for the textbook or from http://horstmann.com/violet. All three of these software packages are also available from the instructor on a CD-ROM.


SCHEDULE:


Class meets Tuesdays and Thursdays, 9:30 - 10:45 am, Scholl-223
  Test 1 - Thursday, 21 February

Test 2 - Tuesday, 8 April

Final Exam - Wednesday, 7 May, 10:15 am - 12:15 pm

CLASS ATTENDANCE:

Students are expected to attend each class meeting as class participation is an essential ingredient for success in the course. Students are responsible for all material covered in class, even when absent.


LATE ASSIGNMENTS:

Assignments are due on the date announced at the time assignments are made. Late assignments will be penalized 20% of the point value for the assignment for each calendar day by which the assignment is overdue.


ACADEMIC HONESTY:

The search for truth and the dissemination of knowledge are the central missions of a university. Benedictine University pursues these missions in an environment guided by our Roman Catholic tradition and our Benedictine heritage. Integrity and honesty are therefore expected of all members of the University community, including students, faculty members, administration, and staff. Actions such as cheating, plagiarism, collusion, fabrication, forgery, falsification, destruction, multiple submission, solicitation, and misrepresentation, are violations of these expectations and constitute unacceptable behavior in the University community. The penalties for such actions can range from a private verbal warning, all the way to expulsion from the University. The University's Academic Honesty Policy is available at www.ben.edu/ahp and students are expected to read it.

Academic honesty and integrity will be upheld in this course. Plagiarism or academic dishonesty will not be tolerated. My responsibility is to ensure that the academic work in this course is challenging, relevant, useful, fair and unambiguous. Your responsibility is to perform this work to the best of your ability. Collaboration is allowed and encouraged only on homework assignments, as discussion among peers is a useful tool for understanding the concepts. For case studies, such collaboration is integral to the assignment. Collaboration on exams is not acceptable. The bottom line is that I expect that all material submitted for grading represents the efforts of the student(s) submitting the work. I will follow up on any suspected incidents of academic dishonesty. If academic dishonesty is found to exist, the first offense will result in zero credit for the exam or assignment. The second offense will result in an F grade for the course.


CLASSROOM BEHAVIOR:

The instructor’s goal is to create and maintain a classroom environment that is conducive to learning. You must do your part to help accomplish this goal by adhering to certain appropriate behaviors. These include: arriving to class on time, being prepared for class, being present for the entire class period, turning off cell phones, and using other electronic devices only when appropriate.


OTHER INFORMATION:

If you have a documented learning, psychological, or physical disability, you may be eligible for reasonable academic accommodations or services. To request accommodations or services, please contact Tina Sonderby in the Academic Resource Center, 249 Kindlon Hall, 630-829-6512. All students are expected to fulfill essential course requirements. The University will not waive any essential skill or requirement of a course or degree program.


ACADEMIC ACCOMMODATIONS FOR RELIGIOUS OBLIGATIONS (AAFRO):

A student whose religious obligation conflicts with a course requirement may request an academic accommodation from the instructor. Students must make such requests in writing by the end of the first week of the class.


VARIOUS BENEDICTINE UNIVERSITY POLICIES:


RESPONSIBILITY OF STUDENT:

If you are unsure of anything specified in this syllabus, it is your responsibility to ask the instructor for clarification.


OFFICE HOURS:

Scholl Hall 156 except as noted

Monday 2 - 4 pm (in Scholl-215)
Tuesday 5 - 6:15 pm (8 January - 18 March)
Wednesday
3 - 4 pm
Thursday 11 am - 12 noon
Friday 10 - 11 am

Other times are available by appointment. Contact me at 630-829-6561. Please leave a voice mail message and phone number where you can be reached.



Top of page

Back to Dr. Meeker's Home Page

These pages were last updated on 19 December, 2007 by R. Meeker.