Engr 691-06: Special Topics in Engineering Science
Component Software
Fall Semester 2002
Syllabus
Locations
The fall semester 2002 class meets in Hume 106
from 11:00 a.m. to 12:15 on
Tuesday and Thursday.
The class is taught by Prof. Conrad Cunningham, whose
office is in 239 Kinard Hall. The official office
hours for this class are from 1:30 p.m. until 4:30 p.m. on Tuesdays
and at other times by appointment.
Prof. Cunningham's voice telephone number is (662) 915-5358 and
fax number is (662) 915-5623. His WWW home page is http://www.cs.olemiss.edu/~hcc/
and his email address is cunningham@cs.olemiss.edu
(send?).
The WWW home page for this class is
http://www.cs.olemiss.edu/~hcc/compSoft/ .
The final examination for this class is scheduled for 4:00 p.m. on
Thursday, 12 December 2002.
Student Disabilities Services Statement
"It is the responsibility of any student with a disability who
requests a reasonable accommodation to contact the Office of
Disability Services (915-7128). Contact will then be made by that
office through the student to the instructor of this class. The
instructor will then be happy to work with the student so that a
reasonable accommodation of any disability can be made."
Course Goal
The goal of this course is to increase the students' abilities to
understand, use, and construct component-based software systems.
Course Description
This special topics course will examine concepts and techniques
for design and implementation of component-based software. The course
will focus on technology-independent concepts and methods. However, for
practical exercises, the course will use Enterprise JavaBeans and
other Java 2 Enterprise Edition (J2EE) technologies.
Prerequisites
This class is intended for students admitted in full standing to
the graduate program of the Department of Computer and Information
Science. Students are expected to have a background in
object-oriented programming, algorithms, data structures, and
programming languages similar to the undergraduate courses CSCI 111,
112, 211, 433, and 450. Use of the Java programming language will be
required in programming exercises. Completion of the Software
Architecture course offered in Spring 2002 is a plus. Students will
be expected to have a mature understanding of data abstraction,
inheritance, polymorphism, composition, and other object-oriented
concepts.
Graduate students in other fields should not be enrolled in this
class without the explicit permission of the instructor and of their
department. Any students in this category are expected to provide the
instructor with a note from their advisor or department chair
indicating such permission.
Source Materials
- Required Textbook:
- H. M. Deitel, P. J. Deitel, and S. E. Santry.
Advanced Java 2 Platform: How to Program,
Prentice-Hall, 2002.
ISBN: 0-13-089560-1.
- Reference books:
- John Cheesman and John Daniels.
UML Components: A Simple Process for Specifying
Component-Based Software, Addison-Wesley, 2001.
ISBN: 0-201-70851-5.
- George T. Heineman and William T. Councill (editors),
Component-Based Software Engineering: Putting
the Pieces Together, Addison-Wesley, 2001.
ISBN: 0-201-70485-4.
- Readings:
- Several journal and conference articles, research reports, and
other materials as appropriate.
Course Topics
The actual topics and their order will be refined as the semester
progresses. Also see the lecture
notes page.
- Component-based software concepts.
- Requirements analysis: domain analysis.
- Requirements analysis: use cases.
- Component identification.
- Component interaction design.
- Component specification.
- Introduction to the Enterprise JavaBeans component model.
- Enterprise Java Beans as an implementation technology.
- Other component technologies.
Professional Conduct
As a student in Engr 691, 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. Similarly, you are not allowed to copy text or
program code from a book or a page on the Web unless explicitly
authorized to do so by the instructor.
- 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
The grading scale is A [90..100], B [80..90), C [70..80), D [60..70),
and F [0..60).
Credit toward the semester grade will be allocated to each of the
components as follows:
Homeworks/Projects | 50% |
Exams | 50% |
Assignments
- All students are expected to study the relevant portions of the
textbooks and handouts in conjunction with our class discussions
(i.e., before coming to class). Explicit reading assignments
will not always be given.
- In preparing and submitting 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.)
- for any handwritten work, 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 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 homework assignments will be programming
exercises.
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.
- As appropriate, there may be a few in-class assignments or quizzes
that count toward the assignment/project portion of the grade.
- The projects will be carried out in small groups. One of these
might involve presentation of a paper or other material to the class
on some aspect of software architecture or related software
technology. Another project may involve a significant programming
effort.
- 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.
Examinations
- I plan three examinations, two mid-terms and a final. The final
exam will be optional and may replace the lower of the two other exam
grades.
- The exams may include both in-class and take-home components.
- Please do not ask to take the final exam at an earlier time than
set for the entire class. You may use the other two exams for the
exam portion of your grade.
Acknowledgement
Development of this course is being partially underwritten by a
grant from Acxiom Corporation titled "The Acxiom Laboratory for
Software Archtitecture and Component Engineering."
[ ENGR 691 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 © 2003, H. Conrad Cunningham
Last modified: Mon 9 June 2003