SWEN 221 (2020) - Software Development


Welcome to SWEN221! This course develops a deeper understanding of object-oriented programming and, in particular, the Java Programming Language. The primary focus is on understanding the features common to object-oriented programming languages, including inheritance, polymorphism, generics, exceptions, and more.

David Pearce During the course, your Java program skills will be tested through a range of interesting and enjoyable labs and assignments, and you should soon find yourself immersed in the Java way of thinking. I hope that you enjoy this course and get as much out of it as possible. I also encourage you to read the Course Outline where you can find information on what's really involved. Finally, if you have any questions or difficulties during the course, please free to come by my office (CO231) for a chat.


23/6/2020: Test 2 Begins!

Hi all,

Right, the second test is now live.  You can access the test from here:


Good luck, and my advice is to manage your time and avoid spending a lot of time on a small amount of questions.



18/6/2020: Test 2

Hi all,

This is a reminder that the second test for SWEN221 will be taking place on Tuesday.  Some information about the test:

* The test will open at 9am on Tuesday morning.  We will email around the link, and post it on the forum, etc.

* The test will be open until 9am on Wednesday morning.  During this time, you can continue to complete questions as much as you want.  You can resubmit the answer to a question as many times as you like.

* The test will be run using the web assessment system.  Therefore, you will have some experience of the kinds of questions to expect from the current questions which are available.

* There are 46 questions to complete.  These are marked "easy", "medium", "hard", "challenging", "time consuming" to give you an indication as to what to expect.  The last question is marked "infinite" indicating that it is extremely difficult to complete.  I strongly advise that you start with the easiest questions first.

* An average student should expect to be able to achieve a passing grade in around 3-4 hours.  If you want a higher grade, in particularly if you want an A grade of some kind, you should expect it will take a lot longer.  I do not recommend that you spend significant amounts of time trying to complete the really hard questions.  As a reference, I completed the test in under 2hrs, and a colleague took 1.5hrs.  

* We will be available on email or zoom for the entire day in case you encounter specific issues.  As before, however, we won't be able to answer direct questions about how to solve specific questions.

If you anticipate difficulties sitting the test, you need to let me know ASAP.  I will not be granting extensions after the fact, given how close to the final day it is.



23/4/2020: Course Update (Important)

Hi all,

Right, finally, my proposed changes to SWEN221 have been fully approved.  That means, I can now let you know the plan for the remainder of the course.  They key points are below and I strongly recommend you look through them.  If you have any questions, feel free to email me and/or chat in my office hours:



Associate Professor of Computer Science (Ahonuku),
School of Engineering and Computer Science
Victoria University of Wellington,
PO Box 600,
New Zealand.

Cotton 231 (Office)
+64 (0)4 463 5833

I have reduced the number of lectures from 29 to 23.  The revised lecture schedule is available here:


You will notice I've compressed the schedule up.  There are two reasons for this: firstly, myself and my partner are expecting a baby in late June, and it could come any time from now on; secondly, I want to try and alleviate what I expect to be a reasonably stressful end of trimester.  I'm guessing lots of courses will have tests, and assignments due, etc.  

The course still has two tests:

* Test 1 (Tuesday 19th May, worth 20%).  This test will be in as similar style as to the assignments.  I will supply code with tests and a hand indicating what to do.  Under "past exams" you can see many previous examples.

* Test 2 (Tuesday 23rd June, worth 30%).  This test will be conducted using the Web Assessment tool.  The questions will be similar in style (though not as hard as the really hard ones currently in the Web Assessment tool).

The tests will be available to complete over a 24hour period.  I expect test 1 to take around 1-2 hours, and test 2 to take around 3-4 hours.

The course still has four assignments:

* Assignment 1 (Due 6th April, worth 4%)
* Assignment 2 (Due 11th May, worth 8%)
* Assignment 3 (Due 25th May, worth 8%)
* Assignment 4 (Due 8th June, worth 8%)

The assignments themselves are unchanged as per the original schedule.  Despite Assignments 2-4 being worth twice as much as Assignment 1, you should not expect them to take twice as long.  In principle, they should all take a similar amount of time.

The labs are unchanged from the original schedule, and will begin again next week and run weekly up to and including week 11.  Each lab is worth 1% of the overall mark.

The web assessment is now worth 12% of the overall course mark.  The deadlines have been updated to:

* Questions 14 -- 52, due 4th May
* Questions 53 -- 84, due 1st June
* Questions 85 -- 100, due 15th June

Mandatory Requirements
The mandatory requirements of the course are essentially unchanged, except there is no longer a requirement to achieve a D on the exam:

* Make a reasonable attempt at 3 / 4 of the Assignments.

* Complete 8 / 10 of the weekly lab exercises.


  • Course Outline - The official course requirements document. You are strongly encouraged to read this

  • Lecture Schedule - Who, What, Where and When: Lectures, Labs, Assignments, Tests, etc.

  • People - Who's who? Teachers, tutors and class reps!

  • Forum - A discussion forum for questions/comments on the course material

  • Background Reading - You can find numerous interesting and useful articles here, that provide excellent background reading

  • Exam Archive - Note: this is an archive of exams for the old COMP205/ENGR202 course. Some material from COMP205 is not covered in SWEN221, and vice-versa.