An introductory course on Software Engineering

View on GitHub



Course description

In this course, students learn and gain practical experience with software engineering principles, techniques, and tools. Topics in this course include requirements analysis, specification, design, abstraction, programming style, testing, maintenance, communication, teamwork, and software project management. The practical experience centers on a quarter-long team project, in which a software development project is carried through all the stages of the software life cycle. Particular emphasis is placed on communication skills and on developing maintainable software. In-class activities further provide a hands-on experience in using state-of-the-art techniques and tools.


ABET Outcomes

This course contributes to the following ABET outcomes:

  1. an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
  2. an ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, , and economic factors
  3. an ability to communicate effectively with a range of audiences
  4. an ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts
  5. an ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives
  6. an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions
  7. an ability to acquire and apply new knowledge as needed, using appropriate learning strategies

Course format

The class meets three times a week for lectures. Additionally, individual groups meet twice a week during section (Tuesday and Thursday) for team and project meetings. All class meetings are in-person. Classroom material is enhanced with assigned readings, in-class activities, and in-class exercises. A major component of the course is teamwork on a group project. Individual contributions include reading assignments, peer review, and participation.


Grades will be based on a group project, in-class exercises, assignments, and participation:

55%: Group project (project milestones: 70%; final project review: 30%)
35%: In-class exercises and assignments
10%: Participation

The convergion to the 4 points scale (i.e., the one used at UW), we will use a linear scale: 100% = 4.0; 75% = 3.0; 50% = 2.0… One example of this can be taken from the Group Project: If you dedicated most of your time to it (not doing in-class exercises or participating) – and obviously got most of the points out of it – you should expect a grade around 2.0 (as the group project can only get you up to 55% of the point)!


Assignments must be submitted on Canvas by the due date and time. Unless otherwise noted, all times are given in PDT (Pacific Time). The submission site remains open for 24 hours after the deadline. Assignments submitted within 24 hours after the deadline will incur a 20% penalty. Assignments will not be accepted after the submission site is closed.

You can find the general course policies here.