Computer Science 340: Introduction to Software Engineering

Please Note: This web page (or, rather, collection of web pages) is very much a work in progress. I expect that it will evolve over the course of the semester, being added to and portions edited (perhaps removed). Please check back here often for news related to the class. Please also check the newsgroup ups.classes.cs340.

Much of the following is taken (indeed, copied) from the course syllabus for this course used by John Riegsecker

Weekly Schedules


Exam 1 Review


Computer Science 340
Introduction to Software Engineering
11:00 AM MTThF
Thompson 311

Instructor: Bob Matthews

Text: Ian Sommerville: Software Engineering (fifth edition)

I plan to cover chapters 1 - 10, 12 - 15, 17 - 24, 28 - 30, and 32

Prerequisites: At least one 300 level computer science course. It would be helpful to have written at least one program of more than 500 lines (more for COBOL, less for Forth).

Brief course description:

Software Engineering is concerned with long-term programming projects, and can be thought of as the care and feeding of large software systems. This course will be project-oriented and will involve a small project. Lectures and the group project will cover topics in software engineering, management, problem specification and analysis, system and program design techniques, testing, and user interface concerns.

Because of the number of topics we must cover, not all topics in all chapters will be discussed in class. I will assign specific sections for you to read. Homework assignments may cover topics not discussed in class.



Programming exercises will be graded on style and documentation as well as correctness. Programs must include header documentation as well as adequate internal documentation unless otherwise specified. Written exercises should be produced on word processing software except (perhaps) for diagrams, which should be neatly drawn. Late assignments will be accepted (with an increasing penalty) until the graded exercise is returned to the class, but no extension of deadline for the term paper or for the group project can be given. All assignments turned in must represent individual effort: except where a group effort is a clearly stated part of the assignment (as in the group project). All students in Computer Science classes at the University of Puget Sound are responsible for the material contained in the document on academic honesty published by the Department of Mathematics and Computer Science and included in the Academic Handbook.

A minimum grade of 50% on exams and 50% on homework assignments is a necessary (but not necessarily sufficient) condition for a passing grade. Below 40% on either exams or homework is an F.

A syllabus for the course can be found here

The schedule of exams and readings for the course can be found here

Return to my home page