A survey of undergraduate software engineering courses was conducted. The survey covered the issues of course level, course content, course organization, project characteristics, and department demographics. The descriptive statistics show that the typical course focuses on the software development life cycle and includes a project intended for actual use. The project is carried out by teams of students, with student leaders. A factor analysis disclosed that three different sorts of courses are currently being offered. The most predominant course is the Later-Life Cycle course, which focuses on the later stages of the software life cycle. Detailed design, coding, testing, and maintenance receive in-depth coverage in this style of course, and the student's grades are heavily dependent upon the project. The Early-Life-Cycle course emphasizes requirements analysis, specification, and system design. Written reports are an important component of this course, and the project is again a large portion of the students' grades. The third style of course is the Theoretical-Issues course. Software metrics, project management, and legal and ethical issues are covered. The students are upper level, and they use journal articles as a source of materials. The issues of suitable textbooks and sources of materials and training for teaching user-interface design surfaced as problem areas.