UNC-CH COMP 523
Software Engineering Laboratory
MW 9:05-10:20, in SN 011
Dr. David Stotts (FB 144, 919.590.6133)
Understanding of computer organization, operation, and programming
as acquired from COMP 401, 410, 411; in addition, two more upper
level undergrad classes (higher than COMP 426)
We have found that preparation in areas like OS, networking,
compilers, databases, security, and graphics provides maturity that often
greatly helps with these team projects.
Students should not drop this course once the projects have begun ...
more-or-less after two or three class meetings.
To do so leaves your other team members in a bind.
If you think you might drop, make the decision now, not later.
No text is required for purchase.
We will be reading articles online.
You may find you will need various supporting materials, depending
on the project you end up working on. For example, you may need
a text on Ruby/Rails, or PHP, or Objective C, or Python, or Linux
or something we can't predict until it happens.
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 to 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 course is completed, each student will have
- experienced a decent simulation of industrial software development
- written code, written technical documentation
- prepared Web content
- learned how to run (and perhaps how not to run) an effective meeting
- overcome the difficulties of clear and effective commuication
among technical peers, and between client/engineer
- given public presentations of your work
- come to realize how much time on a software project has nothing
to do with actual coding
Comp 523 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
Several of our class meetings will be devoted to introduction
or overview of areas of software technology that tend to
be widely in use across different development areas or environments.
We will also have guest lectures from practicing software
The class has no exams or graded individual homework.
The grade is based on performance in the software project
and on team presentations. This included attendance at
the weekly boss meetings.
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.
Each team will also give a presentation during the
semester on a technical concept or system related
to the project development.