The course catalog description is:
The prerequisites are included for the material they covered as well as for the maturity in programming and software issues that are important for this course.
This course has one primary learning objective: to learn that engineering high-quality software products is not a mere matter of programming. There are many secondary learning objectives, which we will discuss explicitly over the quarter.
As mentioned in the catalog description and as described on the project page, the central vehicle for the primary learning objective is a group project that spans activities from requirements specification through implementation.
The lecture schedule is heavily structured in terms of just-in-time lecturing, where I present material before you need it for the project (but not much before, in many cases).
The eighth week of the quarter will focus on active reviews of the code each group has produced at that point, especially addressing the question of faithfulness to the design and to the schedule. (Vibha, the TA, will be responsible for this activity, as I will be at a conference all week.)
The final two weeks of lecture will cover a variety of general topics, with many or all of them presented by guest lecturers.
Your grade in the course will be determined as follows:
Intangibles, such as class participation, genuine interest, etc., may affect your grade as well.
In a strict sense, there is no textbook for the course. That is, I have chosen not to use one of the commonly used software engineering textbooks for the course. The reason is that, overall, I am dissatisfied with these texts; to be fair, I don't have an idea about how to write a better one, however.
Instead, we'll use a set of papers (and one book, not a text) from the literature. These don't cover, in any sense, the full discipline of software engineering. I'll try to augment these readings with lectures, lecture notes, and a set of pointers to resources on the web. The reading schedule is found on the schedule page.
The readings are required with two objectives in mind. First, they provide the best descriptions and discussions available of some basic principles and notions of software engineering. Second, they will provide some insights about how to proceed with your project.
Because of the intense nature and size of the project, there will be no assignments directly relating to the readings. However, the midterm will primarily focus on this material.
| BACK TO TOP
Contact the instructor at: email@example.com