CIS 502: 
Object-Oriented Programming for Engineers and Scientists


Description

Introduction to object-oriented programming for experienced procedural programmers, with applications from engineering and science; interfaces, classes, packages; implements and extends relationships; design patterns.

Level and Credits

Prerequisites

Quarters Offered

General Information, Exclusions, etc.

Objectives

Text (Recommended)

Topics (Tentative)

Number of Weeks Topics Reading
3 Introduction to the course; component-based software and component relationships; UML diagrams; Java control structures, built-in types, I/O; design-by-contract specifications with preconditions and postconditions; reasoning about program behavior; testing. HC (Ch 1-3),
NK (Ch 1-4)
4 Interfaces, classes, and packages; reference (i.e., object) variables and the problems they cause vis-a-vis value variables; template method pattern; abstract factory pattern; engineering and scientific computing problems from an object-oriented viewpoint. HC (Ch 4-6),
NK (Ch 5-6)
2 Graphical user interfaces; event handling; observer pattern. HC (Ch 7-9),
NK (Ch 15-18)
1 Reviews and exams.  

Lab Assignments

Lab Lab Topic
1 Write a program (using a language and programming style you already know) to find the area of a simple polygon, and test it
2 Write a program in Java to compute the n-th root of a real number using a numerical algorithm of choice, and test it
3 Extend a natural number component family, and test it
4 Implement a natural number calculator with graphical user interface, and test it
5
Implement a natural number component, and test it
6
Implement a flying lawnmower component, and test it
7 Implement a numerical integration component in two different ways, and test it

Grading Plan

Lab Assignments
42%
Homeworks
5%
Class Participation
3%
Exam 1
25%
Exam 2
25%

Relation to ABET Criterion 3 and CSE Program Objectives

Preparer Information and Date: Syllabus prepared by Paolo Bucci, 9/02; last modified 2/10/03.