SENG2011 Software Engineering Workshop 2A, Semester 1 2016


Course Outline


Course Details

Course Code:


Course Title:

Software Engineering Workshop 2A

Units of Credit:


Course Website:

Handbook Entry:


Hours per week:

3 plus a mentor meeting





Lectures and location:

Consult the course timetable.

Communication with students

The course web page will be the main source of announcements and information. You must check the course web page regularly, in particular the notices on the home page of the course website. If you miss an important announcement because you did not check the notices web page, no special dispensation will be granted.Urgent announcements may also be sent to your CSE email address, and you are equally accountable for such communications. If you have a different email account that you prefer, you should redirect your School account to there: otherwise you might miss important announcements. (Use the mlalias command for that.)


Course Staff

Contact Details

Staff Name




Albert Nymeyer

Lecturer in Charge

none yet

Course Summary

This course teaches practical techniques for computer program development that help us to proceed from informal but precise requirements, via more formal and precise specifications through to implementations that are correct and easy to understand and maintain. Parallel instruction in the underlying methods used in SENG2011 will come from COMP2111.

In the first part of the course, the lectures, presentations and mentor-meetings will be organized around a sequence of from-requirements-to-program examples that will become increasingly demanding. The problems studied in this part will be relatively small in scale, and assignments will be done individually and by hand: the emphasis is on understanding the techniques both in theory and in practice.

The second part of the course will consist of a groupwork project that will require the application of the techniques studied in the first part to a larger scale problem. This part of the course will use a tool that automates some of the work required to establish that the program developed satisfies its specification.

There will also be lectures on Project Management. Students will be expected to apply project management techniques in their project work, and document their application of these techniques.

Course Aims

Student Learning Outcomes

After completing this course, students should:

Assumed Knowledge

Teaching Strategies

SENG2011 is a workshop in which the teaching strategy is primarily to communicate techniques and to give experience. There are fewer than usual formal lectures in the style of explaining knowledge and facts.

The lectures that are in this course are to provide students with support and guidance in developing their practical skills. Students will be expected and encouraged to stand before the class to explain and justify the approach they have taken to developing particular programs from their requirements.

The lecture schedule is tentative and may vary during the semester as the need arises. Changes to the lecture schedule will be announced on the course website.

The remaining contact with teachers will primarily be with group mentors, who will give detailed guidance on understanding how to describe rigorously what a program should do and then to guarantee that the program does it. Students will be organised into groups of 7–8, and as groups are required to spend an average of 30 minutes with their group mentor per week, at a time suitable to the mentor but arranged in constellation with her/his students.

It is recommended that these mentor sessions be held in one of the small seminar rooms in the CSE building, but this will depend on availability. It is essential to find a time suitable for all members as attendance at (mentor) group meetings is compulsory.


The total course mark will be combined from marks for these components:

The groupwork project includes an assessable project management component.

Note that, as a special case, if a student attends fewer than half of his/her mentor sessions, then the mark for the whole course can be capped at 64%, that is just less than a credit.

Academic Honesty and Plagiarism

Plagiarism is defined as using the words or ideas of others and presenting them as your own. UNSW and CSE treat plagiarism as academic misconduct, which means that it carries penalties as severe as being excluded from further study at UNSW. There are several on-line sources to help you understand what plagiarism is and how it is dealt with at UNSW:

Make sure that you read and understand these. Ignorance is not accepted as an excuse for plagiarism.

Resources for Students

The main resources for out-of-lecture study will be lecture summaries, and literature (often online) that will be identified as the course progresses.

In-depth references are as below, but they adopt in general a much more formal approach than the one we will be using:

See the above as an indication of what is possible in later years, if you should specialise in programming for its own sake; do not take them as what is required this year.

Course Evaluation and Development

The course was originally structured around a single large groupwork project using the B-method and associated Rodin toolset. It was felt by staff that students needed a deeper understanding of specification and the development of correct programs on a smaller scale before undertaking such a large-scale project. In 2014 there was a change of emphasis to individual work targeting the development of an understanding of specification-in-the-small and a de-emphasis on groupwork and tool use, although there was a still a project management component. This presentation was loosely based on the course COMP 6721: Informal methods that ran in the years 2010-12.  The disadvantage of this presentation was that it left the project management component disconnected from the rest of the course and not applied. To better incorporate the project management component, the 2015 edition restored a larger scale problem to be done as a group, applying project management techniques, while retaining an initial focus on developing individual understanding.