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.


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



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.


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.