C20 - Class Design and Object Oriented Programming

traderainSoftware and s/w Development

Aug 15, 2012 (5 years and 1 day ago)

265 views

1

of
3


C20
-

Class Design and Object Oriented Programming

Course Description

This course builds on the material covered in the
Introduction to Computer Science

course by
introducing the concepts of class
-
based/object oriented program design and the design of abst
ractions.
This course builds upon the basic JAVA concepts introduced in the intro course by covering the JAVA
language.


Key concepts covered in this course include: design of classes and their methods, data
organization and encapsulation, class inheritanc
e/hierarchies, and polymorphism.


Students will work on
problems of relevant interest including some basic graphical user interface development.

Note: Although this is not an AP course, it is a goal of the course that students completing it will be
prepare
d to take the AP Computer Science exams.

Textbook/Literature

Text:

Introduction to Programming Using Java.


David J. Eck, Hobart and William Smith Colleges, Version
5.1, June 2009
.

F
reely available on line at h
ttp://math.hws.edu/javanotes/
.

The course will also reference
recent editions of
Barron's AP Computer Science A
, Roselyn Teukolsky,
Barrons Educational Series, Inc.


Students may wish to purchase their own copy of this book.

Course Content

I)

Object Oriente
d Abstraction

II)

Basic
Java Review

a.

NetBeans IDE

b.

Java data types, variables and declarations

c.

Java Operators

d.

Java Statements

e.

Enumerations

f.

Functions, Parameters and Return Values

III)

Complete Java

a.

Enumerations

b.

More Statements/Control Constructs

c.

User I/O

d.

File I/O

IV)

Cla
sses, Objects and Instances

a.

Fundamentals of Objects

b.

Object Oriented Abstraction

c.

Class Definitions vs. Class Instances

d.

Class Members

i.

Data

2

of
3


ii.

Methods

e.

Data Encapsulation, Getter and Setter Methods

f.

Built
-
In Java Classes

V)

Constructors and Object Initialization

a.

Inst
ance Variables

b.

Constructors

c.

Garbage Collection

d.

Scope and Object Naming

VI)

Programming With Objects

a.

Wrapper Classes

b.

Autoboxing

c.

‘Object’ Class

d.

OOP Analysis and Design

e.

Project: Card, Hand & Deck

VII)

Inheritance and Polymorphism

a.

Class
Hierarchy

b.

Inheritance

c.

Extending
Existing Classes

d.

Vehicles and Animals

e.

Polymorphism

f.

Abstract Classes

g.

Static vs. Non
-
Static

h.

Overloading vs. Overriding Methods

VIII)

‘this’ and ‘super’

a.

‘this’

b.

‘super’

c.

Subclasses, Constructors and Initialization

IX)

Interfaces

a.

Interface Declarations

b.

Multiple Inheritanc
e

X)

Arrays, ArrayLists, Containers

a.

Arrays and Array Initialization

b.

Using Arrays, For
-
each loops

c.

Array Types and Arrays of Objects

d.

Dynamic Arrays

e.

ArrayLists

f.

Parameterized Types

g.

Vectors

h.

Searching and Sorting


Standard Algorithms

XI)

Linked Data Structures and Rec
ursion

a.

Recursion, Sorting and Searching

3

of
3


b.

Recursive Linking

c.

Linked Lists

d.

List Processing, Inserting, Deleting

e.

Stacks and Queues

f.

Binary Trees


XII)

Exercise: GridWorld Workbook

XIII)

Program Analysis and Design

a.

Specification

b.

Design

c.

Implementation

d.

Verification


XIV)

GUI Prog
ramming

a.

Basic GUI Components in NetBeans

b.

Java Swing Library

c.

GUI Layout

d.

Events and Listeners (Mouse, Keyboard, Timers, etc)

e.

Menus and Dialogs


XV)

AP Exam Preparation


Writing Assignments

This c
ourse

will require
at least
one
writ
ten essay discussing a relevant

issue in computing. The topic
could be related to current events, new technology or innovative uses of computers in society.

Additional writing will be required to specify and document group projects.

Group Projects

There will be at least
two

group pr
oject assignment
s

requiring small teams to conceive of and develop a
small application to demonstrate understanding of course concepts.