CS
301
Software
Development
Fall 2008
Syllabus
Where
and
When
Overview:
from the catalog; "An introduction to principled software development emphasizing design at the module level as well as tools and techniques. Topics include object oriented class design and implementation, abstraction techniques, debugging techniques, defensive programming, development and analysis tools, and testing. Emphasizes the role of the individual programmers in large software development projects."
Required
Book:
Cay
Horstmann, Object Oriented Design &
Patterns, 1st
or 2nd edition,
Wiley.
Lectures will be mainly
based on this text. Lecture material will be
supplemented
by
appropriate reference documents.
Required
Work:
This
class adheres to a learning-by-doing
approach, so the required work
will mean programming in most
cases.
Homework/Laps: There will be a number of homework assignments. Results will graded and give in total 10% of the final grade. Results will be averaged over all homeworks. Homeworks will be done on your own, as a formal matter of honor.
Projects:
There will be four to
five projects assignments that require more
effort than homework and will
give in total 75% of the final grade. The
projects are related and step by
step will build a module of useful new
functionality into an existing real
world software system. Projects
will be done on your own, as a
formal matter of honor. The operative rule is
that you may consult with your classmates on
general issues about an
assignment, but code remains private and is not shared. There is the
option
that two students join for a pair which needs to be approved by
the
professor before the project is assigned. Pair programming comes
with
an extra set of rules
to obey but
also
with the potential of learning more and performing better in
class.
Final
exam review: We will have a final exam
review that is worth 10% of the
final grade.
Active
class attendance: This is a course that requires you to be
present and
to actively participate which will give 5% of the final
grade.
Late
Work Policy
Assignments
come with a submission deadline and
a drop out deadline. The submission
deadline is when you are supposed to
hand in your results. The drop out
deadline is later. An assignment that
you hand in before the drop out
deadline will be considered and
graded. An assignment that you
hand in after the drop out deadline
will NOT be considered and NOT
graded.
So it is highly recommended
to plan ahead and work with submission
deadlines. Deadlines will be
set well in
advance.
Attendance:
It is expected
that
students
attend all classes.
Students Who
Need
Accommodation:
Please see me after class or
send email to set up a brief meeting.
Information
Dissemination:
I will maintain
a set
of web
pages beneath
http://www.cs.wm.edu/~kemper/cs301/
in support of
the
course.
They should be considered official components of the course, and
you
should
check them on a daily basis.