SWEN423 (2020) - Design: Patterns, Frameworks and Languages


Object-orientation is the basis for many different programming languages, frameworks and programming patterns. This course explores advanced topics in formal design techniques for OO Languages, OO Frameworks and OO Programming Patterns, and connects those formal designs with practical programming examples.

Course learning objectives

Students who pass this course should be able to:

  1. Describe what it might mean to label something with the phrase object-oriented.
  2. Understand and use the mathematical metalanguage used to formally define object-oriented programming languages.
  3. Understand and describe object-oriented designs of frameworks, patterns and APIs.
  4. Compare different designs for object-oriented patterns, frameworks and languages.
  5. Discuss, describe, and evaluate the applicability of those techniques, designs, and languages.

Course content

The popularity of the object-oriented term has grown so much that the phrase object-oriented has become something of a catch-phrase for all that is good in Computing, expanding out of the programming language field and influencing (as an example) software engineering and databases.
This course attempts to obtain a deep understanding of object oriented concepts and to examine various application of object oriented methodologies. We will read and discuss papers about different topics within OO, including inheritence and method dispatch techniques, reasoning and typing techniques, frameworks and library design and language evolution.

Withdrawal from Course

Withdrawal dates and process:


Marco Servetto (Coordinator)

Teaching Format

This course will be offered in-person and online.  For students in Wellington, there will be a combination of in-person components and web/internet based resources. It will also be possible to take the course entirely online for those who cannot attend on campus, with all the components provided in-person also made available online.
In 2019 we required in-person submission of short paper reports.
In 2020 we plan to have instead 9 unmarked "Engagement submissions"
Those will include reports for course readings and mock term tests.
The course is covers 3 main topics: formal models of PL, advanced programming patterns and frameworks.
Each topic has its own dedicated term test, and there is a final term test at the end of the course.
At the start of the course there is a smaller assignment about refreshing the required pre-requisite knowledge.
2019 details were:
During the trimester there will be two lectures per week. There are no labs, tutorials, or help desks, however the forum is a fundamental tool used in this course to provide help and clarifications.

Student feedback

Student feedback on University courses may be found at:  www.cad.vuw.ac.nz/feedback/feedback_display.php

Dates (trimester, teaching & break dates)

  • Teaching: 13 July 2020 - 18 October 2020
  • Break: 17 August 2020 - 30 August 2020
  • Exam period: 19 October 2020 - 25 October 2020

Class Times and Room Numbers

13 July 2020 - 16 August 2020

  • Monday 09:00 - 09:50 – 120, Easterfield, Kelburn
  • Thursday 09:00 - 09:50 – 120, Easterfield, Kelburn
31 August 2020 - 18 October 2020

  • Monday 09:00 - 09:50 – 120, Easterfield, Kelburn
  • Thursday 09:00 - 09:50 – 120, Easterfield, Kelburn


Lecture readings are accessible via Talis Aspire (linked from the course website).

Mandatory Course Requirements

In addition to achieving an overall pass mark of at least 50%, students must:

  • 7 (over a total of 9) Engagement Submissions, they must be submitted on time and show a fair attempt to complete it.
  • Achieve at least a D grade on the final term test, to demonstrate achievement of all the CLOs of the course.

If you believe that exceptional circumstances may prevent you from meeting the mandatory course requirements, contact the Course Coordinator for advice as soon as possible.


Assessment ItemDue Date or Test DateCLO(s)Percentage
Assignment 1Week 2CLO: 1,2,3,4,510%
Term Test 1 (formalisms)Week 4CLO: 1,2,3,4,520%
Term Test 2 (patterns)Week 8CLO: 1,2,3,4,520%
Term Test 3 (frameworks)Week 11CLO: 1,2,3,4,520%
Term Test 4 (all material)Week 13CLO: 1,2,3,4,530%


 The penalty is 10% per week day after the deadline and essays more than three days late may not be marked, unless prior agreement with the course coordinator has been made at least 24 hours in advance with respect to the corresponding due date. Approval for late submission will only be given in exceptional circumstances.
Term Tests must be completed in the given time frame.


Individual extensions will only be granted in exceptional personal circumstances, and should be negotiated with the course coordinator before the deadline whenever possible. Documentation (eg, medical certificate) may be required.

Submission & Return

Work will be submitted via ECS's submission system, accessible through the course web pages. Marks and comments will be returned through the ECS marking system, also available through the course web pages.

Marking Criteria

Assignments will be marked according to the criteria on the course web page - https://ecs.wgtn.ac.nz/Courses/SWEN423_2020T2/Assignments

Group Work

SWEN423 does not incorporate group work.

Peer Assessment

SWEN423 does not incorporate peer assessment.


In order to maintain satisfactory progress in SWEN 423, you should plan to spend an average of 10 hours per week on this paper. A plausible and approximate breakdown for these hours would be:

  • Lectures: 2 hours per week
  • Readings: 4 hours per week
  • Assignments and/or preparation for term tests: 4 hours per week

Teaching Plan

See: https://ecs.wgtn.ac.nz/Courses/SWEN423_2020T2/LectureSchedule

Communication of Additional Information

All online material for this course can be accessed at https://ecs.wgtn.ac.nz/Courses/SWEN423_2020T2/

Offering CRN: 18663

Points: 15
Prerequisites: SWEN 225; 30 300-level COMP, NWEN or SWEN pts.
Duration: 13 July 2020 - 25 October 2020
Starts: Trimester 2
Campus: Kelburn