This course covers the fundamental concepts of object-oriented
programming languages, including data abstraction and typing,
class inheritance and generic types, prototypes and delegation,
concurrency control and distribution, object-oriented databases,
and implementation. Object-oriented solutions will be developed
in one or more high-level object-oriented programming languages.
Instructor
Texts
Required
Martin Fowler.
UML Distilled.
Reading, Massachesetts: Addison-Wesley, Inc.
Recommended
Lippman, Lajoie, Moo.
C++ Primer (5th Edition)
Gamma, Helm, Johnson, Vlissides.
Design Patterns: Elements of Reusable Object-Oriented Software
This course explores the object-oriented programming paradigm
in detail. Object-oriented programming is a shift
in the way programs are design as well as implemented. Thus:
Students will understand the difference between traditional
"structured programming" design and implementation
and object-oriented design and implementation. Specifically,
students will understand and be capable of appropriately
using:
Classes
Objects
Messages (aka methods)
Inheritance
Polymorphism
Genericty
Students will be familiar with an object-oriented
design methodology (e.g, the Unified Modeling Language - UML).
Students will utilize one or more "object-oriented"
programming languages to develop object-oriented
solutions to programming problems.
Object-oriented programming is both a way of thinking and
conceptually designing software, as well as a programming
methodology. Thus this course will devote an equal
amount of time to understanding the object-oriented design
paradigm and object-oriented programming.
A well-designed object-oriented model is easily
translated into any number of programming languages that
support object-oriented concepts while a poorly-designed
model can result in endless difficulties regardless of
the power of the implementation language or the skill of
the programmer.
The course will include regular homework and programming
assignments (please see my
comments on collaboration and
programming). Assignments are
due before 11:59pm on the due date; there will be
NO CREDIT given for late assignments (without
an official excused absence) -
turn in as much as you can.
Reading assignments should be completed
before the lecture covering the material.
Not all reading material will be covered in the lectures,
but you will be responsible for the material on homework
and exams.
Quizes over the assigned reading
may be given at any time.
The Vision Statement of the Computer Science and Information Systems
majors states that our students are distinctive by:
"Bringing a Christ-centered worldview to our increasingly technological
world."
As one step towards the fulfillment of this objective, each
semester, we will identify an influential Christian writing to be read
and reflected upon by students in our classes throughout the term.
This will be treated as an official component of every course and will
be uniquely integrated and assessed at our discretion, generally
as a component of the quiz grade.
See the semester's reading schedule.
In addition, regular meetings will be scheduled throughout the semester
that can be attended for Chapel credit.
It is my hope that students will not view this as one more task to
complete, but as a catalyst for continued discussion ultimately leading
to a deeper walk with Christ.
The chief end of man is to glorify God, and enjoy Him
forever. (Westminster Confession)
If you have specific physical, psychiatric, or learning disabilities and
require accommodations, please contact the Disability Services Office as
early as possible so that your learning needs may be appropriately met.
You will need to provide current documentation of your disability to the
Disability Services Office. For more information, go to
ds.georgefox.edu
or contact Rick Muthiah, Dean
of the Center for Teaching and Learning (ext. 2314)