UNC-CH COMP 145 (Spring 2001)
SOFTWARE ENGINEERING LABORATORY
(TEAM SOFTWARE ENGINEERING)

| Students will not be allowed to drop this course once the projects have begun ... more-or-less after two class meetings.
|
COURSE DESCRIPTION
The goal of this course is to teach the technical and
managerial skills necessary for building a software product
as a team. The essence of the course is the faculty-coached
team project. Teams of 3-5 students spend three months
negotiating, estimating, scheduling, specifying, coding, debugging,
integrating, documenting, and testing a substantial
programming product. Grades are based on code,
documentation, ambition, effort, teamwork, and
accomplishment.
When the is completed, each student will have
- experienced a decent simulation of industrial software development
- been exposed to some formal team software methods
- written code, written technical documentation
- prepared Web content
- learned how to run (and perhaps how not to run) an effective meeting
- experienced the difficulties of clear and effective commuication
among several people
- given public presentations of your work
- realized how much time on a software project has nothing to do
with actual coding
TEXTS
PREREQUISITES
Understanding of programming as might be acquired from UNC-CH courses COMP 114 (Systematic Programming), COMP 120 (Computer Organization), and COMP 121 (Data Structures), or equivalents. WWW programming as from COMP 117 or COMP 118 could prove valuable.
FORMAT
Comp 145 is mostly a project course. Lectures are practical,
(providing guidance for the students' current projects) or
cultural (presenting background and insight from the field
of software engineering). Project groups will meet weekly
with the "boss", and as required with their clients and
among themselves.
Some of our class meetings will be devoted to introductions to topics such as revision control systems (RCS, CVS) and the Perl programming language. Perl is very well suited to text manipulation and rapid prototyping computing applications, as well as writing scripts for the Web, so it fits in well in a class on constructing software systems.
The class has no exams or graded homework. The grade is
based entirely on performance in the software project.
Each team will have at least two opportunities during the semester
to publicly report on progress, and will receive feedback
on progress during each weekly boss meeting.
