UNC-CH COMP 523

Spring 2022

Software Engineering Laboratory

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

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.