User Tools

Site Tools


course_outline

This is an old revision of the document!


Course Outline

Calendar description

A study of design methods and their use in the correct implementation, maintenance and evolution of software systems. Topics include design, implementation, testing, documentation needs and standards, support tools. Students design and implement components of a software system. Weekly 1.5 hour laboratory (starting 2017). Prerequisites: General prerequisites; including SC/MATH 1090 3.00; LE/EECS 2031 3.00.

Learning outcomes

Software designers are experts at developing software products that are correct, robust, efficient and maintainable. Correctness is the ability of software products to perform according to specification. Robustness is the ability of a software system to react appropriately to abnormal conditions. Software is maintainable if it is well-designed according to the principles of abstraction, modularity, and information hiding. At the end of the course, students will be able to:

  1. Specification: Describe software specifications via Design by Contract, including the use of preconditions, postconditions, class invariants, loop variants and invariants
  2. Construction: Implement specifications with designs that are correct, efficient and maintainable.
  3. Testing: Develop systematic approaches to organizing, writing, testing and debugging software.
  4. Analysis: Develop insight into the process of moving from an ambiguous problem statement to a well-designed solution.
  5. Architecture: Design software using appropriate abstractions, modularity, information hiding, and design patterns.
  6. Tools: Develop facility in the use of an IDE for editing, organizing, writing, debugging, testing and documenting code including the use of BON/UML diagrams for documenting designs. Also the ability to deploy the software in an executable form.
  7. Documentation: Develop the ability to write precise and concise software documentation that also describes the design decisions and why they were made.

Weekly topical outline

The course outline is a guideline to topics that will be discussed in the course, and when they will be discussed. It is a tentative outline and may be modified during the term.

Week 1, May 9

Reading

Chapters 1 - 6

Week 2, May 16

Reading

Chapters 7 - 10

Week 3, May 23

Victoria Day, University is closed

Week 4, May 30

Reading

Chapter 19

Week 5, June 6

Reading

Chapters 11 - 13

Week 6, June 12

Assignment 1 Due on midnight

Week 6, June 13

Week 7, June 20

Week 8, June 27

Midterm test

Week 9, July 4

July 6, Drop Deadline

Deadline to drop the course without grade

Week 10, July 11

Week 11, July 18

Week 12, July 25

  • Review

Week 13, August 1

Civic Holiday, University closed

August 2-7

Study days

Week 14, August 8

Summer term ends

Final Exam

Exams will be scheduled on August 11-19, 2016 Specific information will be provided in the later time.

course_outline.1463073194.txt.gz · Last modified: 2016/05/12 17:13 by pawluk

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki