Course Details

Course Code SENG3011
Course Title Software Engineering Workshop 3
Units of Credit 6
Course Website
Handbook Entry
Student Reps to raise major issues about the course

Course Summary

The purpose of the 3rd year software engineering workshop is to give students experience with a group-based large-scale software development project involving a realistic application in a real-life domain (data analytics).

In this session, teams will be developing a complex software application and the focus is to learn about a new application domain, study the requirements, manage the project, liaise with the stakeholder and deliver high quality working solutions. Another aspect of the workshop is to reinforce skills in software design, testing, reporting and the use of support tools around these activities.

Course Timetable

The course timetable is available here .

Course Aims

This third year workshop focuses on the issues of designing and implementing a quality software system that conforms to the requirements of a stakeholder. Besides sharpening their design and coding skills, students will have to get immersed in a complex application domain, learn the basic concepts to be able to understand the requirements and continuously communicate with the stakeholder to discuss issues arising from the project such as design trade-offs, additional functionalities, new interface features etc. In addition, students will develop interpersonal communication skills by preparing correctly formatted and structured reports, negotiating technical, management and interpersonal issues within their teams and resolving problems within their development teams using effective conflict resolution techniques.

Unlike previous projects with rigid requirements, groups are encouraged to be creative in their implementation by focusing on delivering the best quality product in consultation with the stakeholder. Consequently, they have the complete freedom in choosing the implementation technologies of their choice e.g. (Python, Java, C++, J2EE, .NET or hybrids) providing they meet the requirements of the stakeholder.

The application domain selected in this session is in the Web data gathering and analytics area. In this workshop, students will be issued with an initial requirements document outlining the essential features of a product. Additional information will be given on a needs basis throughout the workshop in a variety of ways (emails, regular meetings, class lecture). Many guest lectures will be organised with industry speakers and access to relevant data for the project will be facilitated.

Course Learning Outcomes

The Course Learning Outcomes (CLOs) are:

  • CLO1 Explain concepts and principles of software development associated with the implementation of quality software within an organisational context
  • CLO2 Describe the processes of requirements elicitation and engineering in a realistic context
  • CLO3 Apply practical design skills in architectural design and software component integration
  • CLO4 Implement a quality software system using appropriate language, libraries and framework
  • CLO5 Apply agile methods in a team environment to develop a quality software system
  • CLO6 Write reports and appropriate documents for specific needs
  • CLO7 Analyse problems in new business application domains (e.g. finance and health) in consultation with stakeholders

This course contributes to the development of the following graduate attributes:

Graduate Attribute Where Acquired
the skills involved in scholarly enquiry yes
an in-depth engagement with relevant disciplinary knowledge in its interdisciplinary context yes
the capacity for analytical and critical thinking and for creative problem solving yes
the ability to engage in independent and reflective learning yes
the skills to locate, evaluate and use relevant information (Information Literacy) yes
the capacity for enterprise, initiative and creativity yes
an appreciation of and respect for, diversity no
a capacity to contribute to, and work within, the international community no
the skills required for collaborative and multidisciplinary work yes
an appreciation of, and a responsiveness to, change yes
a respect for ethical practice and social responsibility no
the skills of effective communication yes

Assumed Knowledge

Before commencing this course, students should have:

  • The ability to develop complex programs from stated requirements
  • The ability to design and implement algorithms for text and data processing
  • Good knowledge of design concepts and techniques (equivalent to UML class diagrams and ER)
  • Good knowledge of database and Web technologies
  • Writing and communication skills

These are assumed to have been acquired in the previous software engineering courses and workshops

Teaching Rationale

This course adopts a project-based approach to Learning and Teaching where students learn through applying their knowledge in situations inspired from real-life. Software development in a group situation is encouraged with the lecturer and other external evaluators guiding and providing continuous feedback to each group.

Teaching Strategies

In this workshop, a set of intermediate deliverables leading to a product are specified by the stakeholder, a role assumed by the lecturer in charge. Some weekly lecture slots will be used to elaborate on the deliverables and answer general questions. During these meetings, teams are encouraged to discuss their progress and demonstrate work-in-progress. Teams can also arrange additional meetings with the stakeholder if required. A tutor will be available to assist with technical matters and answer queries related to the case study. Assistance can also given over email by the lecturer in charge.


There are four assessable components for the course with respective deliverables. Details of the deliverables are described in GitHub repository specifications.

  • D1(10%) - Initial setup of the GitHub repository. Project management plan and initial API design.
  • D2(20%) - API implementation and specification in swagger (10%), API design and test documentation (10%)
  • D3(20%) - Platform prototype demonstration (20%)
  • D4(50%) - Final demonstration and GitHub repository (35%), Final report (15%)

Student Conduct

The Student Code of Conduct ( Information , Policy ) sets out what the University expects from students as members of the UNSW community. As well as the learning, teaching and research environment, the University aims to provide an environment that enables students to achieve their full potential and to provide an experience consistent with the University’s values and guiding principles. A condition of enrolment is that students inform themselves of the University’s rules and policies affecting them, and conduct themselves accordingly.

In particular, students have the responsibility to observe standards of equity and respect in dealing with every member of the University community. This applies to all activities on UNSW premises and all external activities related to study and research. This includes behaviour in person as well as behaviour on social media, for example Facebook groups set up for the purpose of discussing UNSW courses or course work. Behaviour that is considered in breach of the Student Code Policy as discriminatory, sexually inappropriate, bullying, harassing, invading another’s privacy or causing any person to fear for their personal safety, is serious misconduct and can lead to severe penalties, including suspension or exclusion from UNSW.

If you have any concerns, you may raise them with your lecturer, or approach the School Ethics Officer , Grievance Officer , or one of the student representatives .

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. In particular, you are also responsible for ensuring that your assignment files are not accessible by anyone but you by setting the correct permissions in your CSE directory and code repository, if using one (in particular, do not put assignment code in a public GitHub repository). Note also that plagiarism includes paying or asking another person to do a piece of work for you and then submitting it as your own work.

UNSW has an ongoing commitment to fostering a culture of learning informed by academic integrity. All UNSW staff and students have a responsibility to adhere to this principle of academic integrity. Plagiarism undermines academic integrity and is not tolerated at UNSW. Plagiarism at UNSW is defined as using the words or ideas of others and passing them off as your own.

If you haven't done so yet, please take the time to read the full text of

The pages below describe the policies and procedures in more detail:

You should also read the following page which describes your rights and responsibilities in the CSE context:

Course Schedule

Weekly Schedule

  • Week 1 (Monday 15 Feb 4-6pm. Online): Introductory lecture. Group Formation.
  • Week 1 (Friday 19 Feb 4-6pm. Online): Guest lectures. Finalising Groups.
  • Week 2 (Monday 22 Feb 4-6pm. Online): Lectures (TBC)
  • Week 2 Friday 26 Feb 4-6pm. Online): Lectures (TBC)
  • Week 2: Mentoring (Online).
  • Week 3: Mentoring (Online). D1 due.
  • Week 4: Mentoring (Online).
  • Week 5 (Monday 15 March 4-6pm. Online: Extra lectures TBC.
  • Week 5 (Friday 19 March 4-6pm): Extra lectures TBC.
  • Week 5: Mentoring (Online). D2 API implementation and documentation due.
  • Week 6: No Mentoring.
  • Week 7: Mentoring (Online).
  • Week 8: First presentations D3 (Online)
  • Week 9: Mentoring (Online).
  • Week 10: Final demonstrations (Online). D4 due.

Additional details and changes will be posted on the course's noticeboard.

Resources for Students

For domain knowledge, students are encouraged to research appropriate sources of information depending on their needs. Domain experts will also be made available on-demand. Students are also expected to learn about the basic concepts using Web sources (more information will be given).

Course Evaluation and Development

This course is evaluated each session using the CATEI system.

In the previous offering of this course, feedback was generally positive mainly because of the industry nature of the project and the involvement of industry partners. The course sponsor (optiver) gave at the end of the workshop a very clear message that this course supports software development skills being put into practice and provides a great foundation for working with industry.

Most suggestions for improvements relate to how deliverables were assessed. In response, every effort will be made at explaining the criteria used for marking in the documentation and during mentoring sessions with students.

Having said that, students must also appreciate that workshop projects are not programming assignments. They deliberately have some ambiguities in the requirements and whenever unsure, students should seek advice during mentoring sessions. In industry, it is rare that all requirements are clearly written down in advance for every project and workshops are designed to teach students to cope with uncertainty in business environments.

Here is the message that Optiver (the course sponsor) has sent us after one offering. Optiver is the proud sponsor of SENG3011. Software Developers at Optiver are fully responsible for the entire development process, working closely with Traders as end users, designing and testing their own systems and making appropriate technology choices. This course supports these skills being put into practice and provides a great foundation for working with us. We also believe an interest and passion for the domain of Finance makes people successful at Optiver and helps them enjoy their work, so the relevant project this year would help students determine if it's something they enjoy and provided them with the opportunity to consider whether they would like to start their career with us. Having been heavily involved in the course this year we were extremely impressed with the calibre of projects presented to us. The amount of work that went into this project is evident in the high quality of work they produced, and is a credit to the students involved. Due to the outstanding effort, and quality of projects we decided to offer an additional prize to the runners up. We wish to congratulate the winning group and the runners up and commend the other groups for getting involved.

Resource created Monday 18 January 2021, 02:32:57 PM, last modified Friday 09 April 2021, 12:01:01 PM.

Back to top

SENG3011 21T1 (Implementation Workshop) is powered by WebCMS3
CRICOS Provider No. 00098G