UNC-CH COMP 145
Software Engineering Laboratory
T-R 2:00-3:15, Sitterson 011
Dr. David Stotts (Sitterson 149, 962-1833, stotts@cs.unc.edu)
Students may not 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
- written code, written techynical 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
- Software Project Management: Lectures in Software
Engineering by James M. Coggins
This reading material is available from the class Web page.
We can have the manuscript duplicated for sale at Student Stores soon
if you wish to buy it. Please let the instructor know if you want a
paper copy.
- Samples of supplimental reading, not required
- The Mythical Man-month, F. Brooks, Addison Wesley, 1995.
- Software Engineering Concepts, R. Fairley, McGraw-Hill 1985.
- Software Engineering (4th ed.), I. Sommerville, Addison-Wesley, 1992.
- Fundamentals of Software Engineering, Ghezzi, Jazeyeri, Mandrioli.
- Books on Perl...
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.
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.
Several of our class meetings will be devoted to an introduction to
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.