CSci 581-01: Special Topics in Computer Science
Object-Oriented Design & Programming
Spring Semester 1999
Syllabus
Locations
The spring semester 1999 class meets in 351 Weir Hall
at 8:00 to 9:15 a.m. on Tuesdays and
Thursdays.
The class is taught by Prof. Conrad Cunningham, whose
office is in 312 Weir Hall. The official office
hours for this class are 10:00 a.m. until Noon on Mondays and
Wednesdays and by appointment at other times.
Prof. Cunningham's voice telephone number is (601) 232-5358 and fax
number is (601) 232-5623. His WWW home page is
http://www.cs.olemiss.edu/~hcc/
and his email address is
cunningham@cs.olemiss.edu.
The WWW home page for this class is
http://www.cs.olemiss.edu/~hcc/csci581/
and the anonymous FTP site is
http://ftp.cs.olemiss.edu/pub/cunningham/csci581/99spr/.
The final examination for this class is scheduled for 4:00 p.m. on
Tuesday, 4 May 1999.
Course Goals
The goals of this course (1) to extend and deepen the student's
knowledge and understanding of object-oriented programming methods and
languages and (2) to introduce the student to object-oriented design
techniques.
Course Description
A study of the principles and practice of object-oriented design and
programming. Use of object-oriented programming languages such as
Java.
Prerequisites
This special topics class has been designed primarily for students
pursuing graduate or undergraduate degrees in computer science. The
class is also open to other students who meet the prerequisite
requirements. However, graduate students in other fields should
not be enrolled in this class without the explicit permission of their
home department. Any students in this category are expected to
provide the instructor with a note from their advisor or department
chair indicating such permission.
The official prerequisite for CSCI 581, Special Topics in Computer
Science, is "senior standing in computer science or consent of
instructor" (as stated in the Graduate School Catalog). "Senior
standing in computer science" means "successful completion of all
courses specifically required in the computer science curriculum that
are numbered less than 400" (as defined in the Undergraduate Catalog).
Accordingly, the expected minimum prerequisite is successful
completion of 15 hours of computer science including CSCI 111, 112,
211, and 223 or their equivalents. Completion of CSCI 450
(Organization of Programming Languages) and MATH 301 (Discrete
Mathematics) or their equivalents is recommended.
Anyone who does not have a mature understanding of programming in a
contemporary imperative language (e.g., Pascal, C, or Java) and of
basic algorithms and data structures (e.g., sorting, searching, lists,
stacks, queues, and trees) should not enroll in the course.
Source Materials
- Required textbook:
- Timothy Budd. Understanding Object-Oriented Programming
with Java, Addison-Wesley, 1998. ISBN: 0-201-30881-9.
- Optional textbook:
- Any good introductory book on Java programming.
- Judy Bishop. Java Gently: Programming Principles
Explained, Second Edition, Addison-Wesley, 1998.
ISBN: 0-201-34297-9.
- Optional reference book:
- Martin Fowler. UML Distilled: Applying the Standard Object
Modeling Language, Addison-Wesley, 1997. ISBN: 0-201-32563-2.
- Readings:
- Various journal, conference, or WWW materials as appropriate.
- Software:
- Sun's Java Development Kit (JDK) and other
software defined later
Course Topics
- Data abstraction.
- Introduction to object orientation.
- Object-oriented design. Responsibility-driven design.
- Inheritance.
- Software reuse.
- Polymorphism.
- Exception handling.
- Class libraries.
- Application frameworks.
- Design patterns.
Graduate or Undergraduate Credit
This course may be taken for either undergraduate or graduate credit.
- Undergraduate students in computer science who successfully
complete this course will receive undergraduate credit. However,
under some circumstances, last-semester seniors may enroll in this
course for graduate credit. They must, however, have the approval of
both the Graduate School and the department before they enroll in the
course.
- Conditional and full-standing graduate students in computer
science who successfully complete this course will receive graduate
credit.
- Graduate students admitted in either qualifying or nondegree
status in computer science will not receive graduate credit unless
they have made appropriate arrangements with the Graduate School and
department in advance.
- According to the Graduate Catalog, to receive graduate credit for
this course, "the student must do work in addition to that required of
the undergraduates enrolled in the course." Since the students in
this class are mostly graduate students in computer science, the
assignments and projects will be formulated with those students in
mind. A few of the assignments or parts of assignments will be
identified as optional for students taking the course for
undergraduate credit. The criteria for determining grades may also
differ somewhat for undergraduates.
Professional Conduct
As a student in CSci 581, you are expected to conduct yourself in a
professional manner according to the
Honor Code of the School of Engineering, the Information Technology
Appropriate Use Policy, the M Book,
and any other relevant policies.
Limited Collaboration Policy. Unless otherwise
indicated, any homework assignment or programming exercise given in
this class will be an individual assignment. The work you submit is
to reflect the knowledge, understanding, and skill that you have
attained as an individual. However, the instructor does want to
encourage the development of a community of scholars who are actively
engaged in discussion of the ideas related to this course. With this
in mind, you are allowed to discuss solutions of the homework and
programming problems with other students if done so according to the
following guidelines:
- You may discuss ideas for homework and
programming assignments with your classmates. However, you
cannot collaborate on writing the solution or the
program code. That is, you can talk about the problems and
ideas for solving them, but you cannot write things down with anyone
else. You are, of course, prohibited from copying or seeing another
student's written solution, and you are not allowed to show your work
to anyone else.
- You should accept help with care. If you work
too closely with another student, you might mislead yourself into
believing that you understand the concepts and techniques better than
you actually do. Don't forget that the instructor has office hours
and can probably give you hints or suggestions to get you started.
- You should give help with care. Do not help
anyone too much. When you have solved a problem, it is tempting to
just tell other students how you solved it. Instead, try to allow
them to come to the solution on their own. Maybe give them a hint to
help them get "over a hump." Remember that helping someone too much
will hurt them in the long term if they can't work through problems on
the exams by themselves. So avoid the temptation to do so. If you
can't help other students without giving away the whole solution,
direct them to see the instructor (who may or may not have a way to
"edge" them toward the solution).
- You are not obligated to help anyone. If you
feel uncomfortable helping another student for any reason, please
direct them to see the instructor.
- Except as described above, all work in this class is
covered by the School of Engineering's Honor Code statement on
plagiarism. It is plagiarism "to knowingly deceive, copy,
paraphrase, or otherwise misrepresent your work in a manner
inconsistent with professional conduct".
Grading
Credit toward the semester grade will be allocated to each of the
components as indicated in the following table.
Assignments/Projects/Quizzes | 50% |
Exams (2) | 50% |
Assignments
- All students are expected to study the relevant portions of the
textbook and handouts in conjunction with our class discussions (i.e.,
before coming to class). Explicit reading assignments will
not always be given.
- The assignments will include a mix of individual and small group
exercises.
- Several of the assignments will consist of problem-solving or
design exercises (e.g., the exercises given in textbook). In
preparing and submitting these homework papers make sure that:
- your name, the course number or name, the assignment identifier,
and individual exercises are clearly marked on the paper. (If it is a
group assignment, give the group identifier and the names of all
members.)
- you write legibly on only one side of the paper in a black or
blue pen or dark pencil. (Do NOT use red or green ink!) (Some of the
assignments may require that materials be generated with a word
processor and/or other tools.)
- your paper is stapled together in the upper left corner.
- Several of the assignments will consist of programming exercises
in Java and, as appropriate, other languages. For these exercises,
you will need to submit appropriate design documentation, a listing of
your program code, and appropriate printed output from your program
testing. Make sure that you clearly label the assignment as described
above. You will also be asked to submit your program source code in
electronic form using EASE, the Electronic
Assignment Submission Environment.
- As appropriate, there may be a few in-class assignments or quizzes
that count toward the assignment/project portion of the grade.
- All students or groups are expected to complete their assignments
by their due dates. If an assignment is submitted late,
a penalty of 10 percent of that assignment's grade
will be assessed for each day it is late. A homework
assignment will not be accepted after graded papers have been returned,
after a solution has been distributed, or after the final examination.
- If you have good suggestions for group projects, please let the
instructor know as soon as possible.
Examinations
- There will be two examinations, a mid-term given before spring
break and a final examination. Each exam will cover all topics
studied to that point.
- If you cannot take an examination at the scheduled time because
of an illness or other special circumstances, please notify
Prof. Cunningham in advance. Without advance notification, it may not
be possible to give a make-up examination.
- Please do not ask to take the final examination earlier than the
time set for the entire class.
[ CSci 581 Home
]
[ Cunningham's Home
| Teaching
| Current Courses
]
[ Department's Home
| Courses
| Graduate Courses
| Undergraduate Courses
]
Send any comments or suggestions to Prof. Conrad Cunningham,
cunningham@cs.olemiss.edu.
Copyright © 1999, H. Conrad Cunningham
Last modified: Mon Aug 20 02:24:58 2001