CS 247 - Software Engineering Principles


Introduction

About these notes

A lot of the time, these notes will not be "comprehensive"

While these notes try to match what's happening in class, many times, especially when there are a lot of diagrams, I will just say to "look at the slides."

That said, enjoy!

Basic Info

Who's Teaching this term?

Her name's Caroline Kierstead, you can reach her at [email protected]

Her office is at MC 4009, and if you (for some reason) need to call her, her ext. is x36226

Where are things posted?

The main website: https://www.student.cs.uwaterloo.ca/~cs247/

Piazza: https://piazza.com/class/j1zdnej6n0o5yt

Office Hours?

Nothing set in stone yet, but tentatively you can meet after the lecture ends.

Mark Breakdown

  • 15% - Assignments
    • 5% - Assignment 1
    • 5% - Assignment 2
    • 5% - Assignment 3
  • 15% - Project
    • 7% - Deliverable 1
    • 8% - Deliverable 2
  • 20% - Midterm
  • 50% - Final Exam

NOTE: A passing mark must be achieved on the exam portion of the course (Midterm and Exam, weighted accordingly) to pass the course.

Course Outline

  • ADT Design
  • Modules and Interfaces
  • Exceptions
  • Interface Specification
  • OO Design Principles
  • Design Patterns
  • UML Modelling
  • Generic Programming (templates, STL)
  • Testing and Debugging

Compiler to use

Make sure your projects run atop Ubuntu 16.04, and g++-5 -std=c++14 -Wall

Q: What is Software Engineering

A: SE is a collection of practices, principles, tools, techniques, etc... that aim to:

  • make quality software
  • improve developer productivity
  • improve scalability of large systems
  • improve evolvability

Like other engineering discipline, there is a focus on both safety and economy.

The Ultimate Goal: improve product quality and designer productivity

Attend class!

Data from CS 247 2011

results matching ""

    No results matching ""