UNC-CH COMP 523
Fall 2024
Software Engineering Laboratory
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.
Texts
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.
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 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 communication
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
Format
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 several times a week
as a team among themselves, and weekly with a coach (a graduate TA),
and periodically as required with their clients.
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.
These "tech talks" will be given by the student teams.
We will also have guest lectures from practicing software professionals.
Evaluation
The class has no written exams or graded individual homework.
The grade is based on performance in the software project,
the project website (containing deliverables), and on team
presentations. This includes attendance at the weekly coach
meetings, and if a team has met the deadlines for project
deliverables (measured during weekly coach 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.
Ultimately the majority of the grade will be based on
the correct functioning of the system with the
capabilities outlined in the specifications.
Clients will be asked if the team did deliver
a working system in form that the client can (a) use properly,
and (b) maintain and extend as needed.