![]() | Home Page -- OOP at OSU |
OSU CS 582, Fall 2001 | |
Object-Oriented Analysis and Programming
|
This is the Home Page for the Course Object Oriented Analysis and Programming, being presented both live and on the World-Wide-Web, originating from the Department of Computer Science at Oregon State University in Corvallis, Oregon, USA.
Fall Term, September 24 to December 7, 2001
Topics, Lectures
Welcome to the Oregon State University course in Object-Oriented Programming.
This course is offered in two formats: a conventional in-class lecture format, and an on-line distance education format. As much as possible, the two courses are kept identical, and maintain the same schedule and the same format. The distance students participate in the same discussions as the in-class students and do the same homework.
As much as possible, I want to make the on-line students feel a ``part'' of the same class as the in-class students.
Fall Terms: The course is taught in both formats, with lectures at OSU. Lectures are Monday, Wednesday and Friday, 9 to 9:50 in Weniger 149. OCATE students are welcome to attend the lectures.
The catalog description for this course reads as follows:
``An examination of the ideas of Object-Oriented design and Object-Oriented software construction. The lectures present the concepts of object-oriented analysis and programming in a language independent fashion, illustrated with specific examples from a variety of programming languages. Students are expected to complete and report on a nontrivial project developed in an object-oriented language of their choice.''As indicated in the description, the course is intended to be a broad introduction to the field of object oriented analysis and programming. It is not a course in any particular programming language, although students are expected to have the ability to learn at least one language on their own during the period of the course.
The course is open to any student in the graduate program in computer science at Oregon State University. Undergraduates and students in other departments can take the course with the permission of the instructor. Although the course is listed as a graduate level course (for historical reasons), the material should be accessible to any upper division undergraduate with a background in computer science.
External students are expected to have at least two years programming experience in a conventional programming language, such as C or Pascal. No previous programming experience in Object Oriented languages is assumed.
Students should expect to spend about ten to fifteen hours per week on course material. This includes reading the text, answering the study questions, doing exercises, the midterm exam, and programming the final project.
The obvious way that this course differs from previous years is in the use of the World-Wide Web and electronic mail as a medium for delivery of some of the educational material. Why did we decide to do this?
There are several answers. A major reason is to see if it is possible to combine our local educational mission (that is, teaching students within the department) with our external educational mission (training people in the Oregon community and elsewhere). The Department of Computer Science has traditionally had strong programs in both areas. By merging the programs in this fashion we hope to be able to increase our extension offerings without sacrificing the quality of our local educational program.
For the external student, particularly the computer professional, a major advantage of the WWW is that it provides for asynchronous delivery of educational material. Participants can work on their own schedule, fitting time devoted to coursework in around their work schedule. Given the right equipment, it is even possible to perform the coursework at home in the evenings.
Another reason, is to give us greater experience in the problems and, more importantly, the potential of this new emerging technology. The use of the web is going to increase dramatically in the near future, and we need to understand how to make best use of our resources.
The concept of asynchronous distance learning is designed to help overcome the limitations inherent in traditional instructional techniques, limitations which involve both time and space.
Instruction is asynchronous when it does not constrain the student to involvement in the learning process at a specific time; as, for example, occurs when lectures are presented at a given time of day.
Instruction is distant when it does not constrain the student to be physically present in a fixed location; as, for example, occurs when lectures are presented only in a given classroom.
Previous experiments in educational methodology have explored removing both the limitations of time and space. Recent advances in computer and communications technologies have increased these possibilities. In particular, the growth of the internet has opened a number of intriguing potential tools for use in the asynchronous and distant instructional ``classroom''. Examples of internet tools which are only now being explored as aids in the educational process include electronic mail, newsgroups, and the world-wide-web.
The development of the World-Wide-Web creates a new medium of presentation that is only now starting to be fully recognized and utilized. Using the Web, large amounts of complex information can be quickly disseminated over long distances, and can be easily processed and assimilated by readers working on standard workstations. The type of media that can be supported includes hypertext documents, images, sound, and video clips.
Asynchronous learning means that students need not be gathered together in the same locations at the same time in order for instruction to occur. Rather, students can process the material presented on the web at a time of their choosing. Through mechanisms such as electronic mailing lists and newsgroups, students can also form communities and interact with other students even if they never physically interact.
The second advantage of ADL is tightly connected to the first. If students can learn course material while working at their workstations on their own time, then the need for physical proximity is eliminated. A student communicating with the instructor or with another student via electronic mail or the web looks no different if the student is in the same city as the instructor or if they are many hundreds or even thousands of miles away. By structuring courses around the web we open the possibility for courses to cover a wide physical area.
Continue
A superficial examination of the present material might lead one to believe
that the on-line version of this course is nothing more than a self-study course,
where the student simply sits and reads the textbook.
To understand the difference, we must investigate a little more
deeply the nature of a typical lecture course.
The lecture system of instruction has existed for more than 700 years.
In this period many reforms in educational technique have come and gone,
and yet the lecture has survived.
Although as an instructional technique lectures are often denigrated,
one must regard any idea with such longevity as having a proven success record.
Because of this, it is important to ask what features found in the
method of instructions via lectures
represent the key to this success. This is particularly important when
one is seeking to replace the technique with another form of instruction.
We can perhaps explore this issue by asking a very simple question.
It is usually the case that the information content of a typical university
course is entirely contained within the textbook for that course.
What then makes taking a course different from reading the textbook for
that course?
The answer, I think, is three-fold.
The first part is pacing -- a course is
spread out over several weeks, while a book is typically read in only a few
sittings. A textbook that is quickly read is quickly forgotten.
A course forces the student to address the material in smaller units.
This concentration of effort on small units of information provides
the student with greater time to assimilate course material.
Any effort to replace lectures with an on-line equivalent must
include some mechanism for, ironically, slowing the student down.
A course is more than simply an on-line textbook. There must be
other mechanisms (exercises, illustrations, movies, projects) included
to reinforce and duplicate the acquisition of knowledge from the textbook.
A second part is redundancy, or multiple modes of delivery.
A student taking a course has the opportunity to both hear the lecture
and read the textbook. Information may be learned to a greater or lesser
extent from both, but ultimately both reinforce each other, and the
combination is better than either by themselves. In an on-line and distant
course we admittedly lose some of this advantage. The hope is that by a
combination of forcing the students to take careful notes (by tightly
integrating the study questions with the text) as well as participating
in on-line discussions, we can regain some of what we have lost in
this regard.
But the third part is, I think, perhaps the most important.
When people gather together in a group, there is a common bond formed
simply due to the sense of shared purpose. Place the same group of students
individually in front of a bank of CRT screens running traditional
CIA (computer-assisted instruction) software, and no common bond will
will formed. (I have observed this as both the author and user of
CAI packages). For lack of a better word,
I have been calling this common bond a sense of community.
Is it possible to create this sense of community, this sense of shared
purpose, without sharing physical space? This, I think, is the key to
creating an effective teaching environment.
In the past several years we have seen a number of active and
engaging communities formed in cyberspace on the internet. It is an
open question whether such a group can be created for a class-like setting.
The course material being developed here is part of an experiment to
help answer this question.
It is because this sense of community is so important that I strongly
urge students to join into one or perhaps more study groups.
Study groups can form around physical proximity (two or three people
working at the same location meeting, say, during lunch hour) or around
common interests (two or three people working on projects in Java,
for example,``meeting'' via electronic mail). I will try to help in whatever
ways I can to form such study groups.
The off-campus students are, for the most part, drawn
from the Portland metro area.
However, a few students may be more widely afield.
In past terms, students have been come from OSU, from the Portland area,
and from as exotic places as Iowa or Finland.
The instructor is Professor
Timothy Budd, from Oregon
State University.
Our TA for the term is
Robin Abraham
(winner of the 2001 outstanding GTA
award from the College of Engineering!). Robin can be reached
at abraharo@cs.orst.edu.
I will ask that every member of the class introduce themself in a short
e-mail
introduction.
Students who are able can also create a home page.
Participants are expected to have access to a World-Wide-Web browser,
and be able to send and receive electronic mail.
A graphical browser (such as Netscape) is preferable,
however a text-only browser (such as Lynx) can be used if necessary.
(In the latter case certain essential figures may have to be mailed
to the participant by ordinary postal mail).
The web browser will be used to read the study material, while electronic mail
will be the medium for discussions, homework, and examination.
If necessary, students can be given accounts on an OSU or OCATE machine
in order to create their own web pages, answer questions, and even develop their
projects. Students requiring these services should contact Professor Budd.
My office is Dearborn 218, on the OSU campus.
Office hours are MWF from 10 to 11:30, although you are welcome to try
and drop by at other times.
Phone is 541-737-5581.
Fax is 541-737-3014.
E-mail is budd@cs.orst.edu.
For students not associated with OSU,
the course is offered through OCATE,
the Oregon Center for
Advanced Technology Education.
OCATE is located at
18640 NW Walker Road, Suite 1010, Beaverton OR 97006. Address is the corner of
185th and Walker. The Telephone number is 503-725-2200 and email is
info@ocate.edu. As the registration cost changes from term
to term, I'll let OCATE handle any questions regarding that matter.
This course is based around my book,
An Introduction to Object-Oriented Programming, 3E
(published by Addison-Wesley Longman, 2002).
For the fall of 2001 there is good news and there is bad news.
The good news is that we will be using a new textbook, one that has
been entirely rewritten, and now includes discussion on such current topics
as C# and design patterns. The bad news is that the book will not be
released until October 15th.
I will make PDF files available for the
first
few chapters, and
will handle the distribution of the text as soon as it arrives.
After the 15th,
you should be able to find a copy of this book at any good technical
bookstore (such as
Powells in Portland), or you can order it
on-line.
In the past the on-line prices were often less than the OSU bookstore price,
but now they seem very similar.
A variety of information for the textbook, include an
errata sheet,
is available
on-line.
In addition to the textbook, students will likely want to purchase a
reference manual for whatever language they are using for their project.
The OSU bookstore has quite a range of titles, as do many other technical
bookstores.
If asked (in the discussion group) I can suggest a few titles.
I've written
many books,
several of which are related to the topic of this class.
A course is much more than simply a textbook.
The lectures themselves are only the beginning.
For those taking the course for credit, the final grade will be determined
by the percentage of study questions completed, the mid-term examination,
and an evaluation of the final project (both the program
and the report).
Completion of all material is sufficient to obtain a grade of ``B''.
To obtain an ``A'' grade the student must demonstrate creativity as well as
a firm mastery of the course material.
In order to reduce the load on the Teaching Assistant and instructor
and to encourage greater interaction on the part of participants,
students are encouraged to form study groups.
Study groups work best if there is physical proximity (such as
a number of students from the same industrial site), however they can also
be made to work using electronic mail. Study groups can also be formed
around common interests, for example people using Delphi for their programming
project. While study groups are not a requirement, they are nevertheless
useful. The instructor will try to help in the formation of such groups.
Students taking the course for credit are required to complete a
project in an object-oriented language of their choice.
The only requirement for this project is that it be suitable as a
vehicle for demonstrating to the teaching assistant and the professor
that the student understands the principles of object-oriented
programming. Part of a successful completion of this assignment is
understanding and selecting a type of project that is so suited.
In discussions in the mailing list I will suggest ideas that
have proven to be successful projects in the past.
Students can work in teams on a project. Teams can be no
larger than four individuals, and team projects are held to a
higher standard than are individual projects.
Projects need not be a task specific to this course.
A project that is useful at work or as part of a larger research program
or even in another course can be proposed. In such cases approval for
the use of the project in this fashion must be obtained not only
from myself, but also from the appropriate instructor or supervisor.
Before week six a description of the project must be submitted.
This description will include the
language and platform to be used, the members of the team, and background
on the project (such as if it is being used in a research program or course).
The TA and/or instructor may comment on the project, or
may simply register an assent.
Where practical, source code or executable versions of the project
will be made available to the entire class for examination during
the last week of the course.
In addition to a working project, students must submit a short (five to
twenty page) report describing the project, and how object oriented
principles were used in the programming of the project.
The report should be well-written, formatted and spell checked.
The report is used to determine how well you understood the concepts
that have been discussed in class, so it should be detailed.
Your grade is based on the quality of the report as well as the
coding for the project.
Projects from Fall 1995 Class
In class ``discussions'' we be conducted using an e-mail mailing list.
The address for this list is
class-cs582@engr.orst.edu
You can contribute to a discussion by simply sending mail to this
address. Those of you who have a mail alias file may wish to
select a shorter name for this address.
Only those people who have registered for the course can be placed on
the mailing list.
The mail list is archived, which you can access from the
web page.
For example, you can register a different mail address if you wish.
Much of what goes on in this class will occur using the medium of
electronic mail. E-mail is a very powerful, and sometimes dangerous tool.
Please remember the following:
The following calendar lists the intended dates for discussing specific
sections of the text, as well as hyperlinks to the associated
lectures and audio files.
(Audio files not yet available for the 3rd edition, sorry).
Participants are asked to try to stay as close as possible to this schedule.
A table of
Study Questions To Date
is available.
A table of links to students home pages.
Creating a home page is encouraged, but is not required.
Here are some external links related to object-oriented programming:
How is a Course different from a Book?
Who (and where) Are the Participants?
What Facilities are Needed to Participate in this course?
What if I need to see a real person?
What is the Cost, and How does one go about registering?
The Textbook
Other Books I have written
Structure of the Course
Study Groups
The Project
Projects from Spring 1995 Class
Projects from Fall 1996 Class
Projects from Spring 1997 Class
Projects from Spring 1998
directory
of previous projects
Ideas for Possible Projects
The Mailing List
E-Mail Manners
Calendar of Topics
Inheritance and Substitution
Home Pages
External Links
If you have links you think might be appropriate here, let me know.
This page was created by Professor
Timothy A. Budd,
Oregon State University,
Corvallis, Oregon, USA.
Last Modified:
All rights reserved, 1998-2002.