CSC207H Standard Course Description

Software Design


Owner

Karen Reid reid@cs.toronto.edu

Course Description

An introduction to software design and development concepts, methods, and tools. Core topics: object-oriented design and programming; the role of scripting in the software development process; unit testing; version control; build management.

Background

CSC207's role is to enable students to cope with the challenges they will meet in their upper-year courses, and subsequently in research and industry. The course therefore focuses on basic software engineering practices, and the concepts that underpin the tools used to implement those practices. The course also presents students with larger programming problems than they have previously seen, which both gives them an opportunity to apply the working practices they are being taught, and also demonstrates how those practices can help them.

Prerequisistes

Corequisistes

Exclusions

Follow-On Courses

Learning Objectives

Topics (not necessarily in this order)

Suggested Texts

  1. REQUIRED

    Program Development in Java (1st edition)
    Barbara Liskov and John Guttag, Addison Wesley, 2001
  2. REQUIRED

    Notes on object-oriented programming
    Mike Godfrey
  3. RECOMMENDED

    The Pragmatic Programmer
    Andrew Hunt and David Thomas, Addison Wesley, 1999
  4. RECOMMENDED

    Code Complete (1st edition)
    Steve McConnell, Microsoft Press, 1993
  5. REFERENCE

    The Craft of Software Testing
    Marick, Prentice Hall, 1997

Technology

Sample Evaluation

type weight description
assignment 5% Reading and answering questions about a requirements document
assignment 5% Design document: produced in teams (no programming)
assignment 5% Code inspection: a code review process also in teams
assignment 10% Programming: focus on scripting and testing?
assignment 20% Programming: larger program with the focus on OO design and steps. Not likely in a team programming, probably with several steps. Most likely an individual assignment.
midterm 15%
exam 40%