CPEN 321: Software Engineering (Fall 2019)

Contents

  1. Overview
  2. Staff
  3. Communication and Links
  4. Project
  5. Course Schedule
  6. Grading
  7. Absence
  8. Acknowledgements
  9. University Policies

1. Overview

The course explores engineering principles for building non-trivial software-intensive systems: requirement specification, design, implementation, verification, and maintenance. The course uses a group project as the basic learning vehicle, providing students with an environment for applying the learned principles in practice while coping with constraints encountered when working on a real team: uncertain requirements, tight deadlines, etc. Students are evaluated based on their understanding of the software engineering principles and their ability to apply these principles in practice.

Learning Objectives

By the end of the course, students will learn several fundamental skills in modern software development:

Course Format

Course Prerequisites

One of EECE 210, CPEN 221, CPSC 210, EECE 309.

2. Staff

Instructor

Prof. Julia Rubin

Lectures:
Mon. 3-4:30pm, MCLD 202
Wed. 5-6:30pm, MCLD 202

Office hours:
Mon. 4:30-5:30pm, KAIS 4053 (or by appointment)

TAs

Harsha Kadiyala, Sahar Badihi, Michael Cao,
Khaled Ahmed, Bang Chi Duong

Labs:
Mon. 10am-12pm, MCLD 358
Tue. 3-5pm, MCLD 358
Wed. 10am-12pm, MCLD 348

Office Hours:
Mon. 12-1pm, KAIS 4095 (or by appointment)

3. Communication and Important Links

4. Project

A major part of the course is the group project. The project simulates real development settings, where development teams communicate with customers to implement software that satisfies the customers’ requirements. The intent of this project is to give you the opportunity to apply the course concepts to a real system.

Milestones and Reports

5. Course Schedule

Note that this is a tentative week-by-week guide and thus is subject to change.

 

Date

Topic

Project Milestones

W1

Wed, Sept 4, 2019

Intro, what is SE

 

W2

Mon, Sept 9, 2019

Software Lifecycle, Development Processes

Tutorials: Intro to Android

 
 

Wed, Sept 11, 2019

UML

September 11, 11:59pm: groups are formed. Each group proposes an idea that they would like to implement.

W3

Mon, Sept 16, 2019

Groups: project pitches

Tutorials: Intro to back-end development

September 15, 12pm (M0): Project presentations due.
Proposed ideas are pitched in class and voted by other teams.

 

Wed, Sept 18, 2019

Groups: project pitches

September 20, 11:59pm: communities are formed.

W4

Mon, Sept 23, 2019

Requirements

M0 (refined): Meet and greet your community and TA. Finalize the scope of the project

 

Wed, Sept 25, 2019

Requirements

 

W5

Mon, Sept 30, 2019

Architecture, Design

M1: Requirements

 

Wed, Oct 2, 2019

REST, Microservices, Recap

 

W6

Mon, Oct 7, 2019

Mid-term 1

M2: Design

 

Wed, Oct 9, 2019

Teamwork, Advanced Version Control

 

W7

Mon, Oct 14, 2019

Thanksgiving Day

 
 

Wed, Oct 16, 2019

Continuous Integration, DevOps

 

W8

Mon, Oct 21, 2019

Code Reviews, Anti-patterns

M3: MVP

 

Wed, Oct 23, 2019

Verification and Validation, Analysis

 

W9

Mon, Oct 28, 2019

Analysis

 
 

Wed, Oct 30, 2019

Testing

 

W10

Mon, Nov 4, 2019

Testing

M4: Code Review

 

Wed, Nov 6, 2019

Mid-term 2

 

W11

Mon, Nov 11, 2019

Remembrance Day

 
 

Wed, Nov 13, 2019

Guest Lecture

 

W12

Mon, Nov 18, 2019

Recap, Q/A, and preparation for final project presentation

M5: Testing + Customer acceptance test (both customer and development teams).

 

Wed, Nov 20, 2019

Guest Lecture - Technical Debt

 

W13

Mon, Nov 25, 2019

Final project presentations in the lecture and lab times

M6: Final product + presentation

 

Wed, Nov 27, 2019

Top project presentations and awards

 

6. Grading

Grading for this course is based on three components:

7. Absence

8. Acknowledgements

We gratefully acknowledge the inspiration we drew and part of the material that we adapted from the previous editions of CPEN 321 and CPSC 310 (University of British Columbia), as well as from CSE 403 (University of Washington), CSC C01 (University of Toronto), CS 169 (UC Berkley), and CS428 (University of Illinois at Urbana-Champaign).

9. University Policies

UBC provides resources to support student learning and to maintain healthy lifestyles but recognizes that sometimes crises arise and so there are additional resources to access including those for survivors of sexual violence. UBC values respect for the person and ideas of all members of the academic community. Harassment and discrimination are not tolerated nor is suppression of academic freedom. UBC provides appropriate accommodation for students with disabilities and for religious, spiritual and cultural observances. UBC values academic honesty and students are expected to acknowledge the ideas generated by others and to uphold the highest academic standards in all of their actions. Details of the policies and how to access support are available here.