🚀 Welcome to SENG2021 🚀

SENG2021 is the first Software Engineering-specific course, a workshop course that builds on the foundation of COMP1531, and where we begin to answer the question "What does it mean to be a Software Engineer?". You'll be spending the term architecting and building a real-life software project, supported by our teaching team. We're going to have a great term, and we're all excited to meet you.

Through the term you'll all be working not only with your tutor, but also with our lecturer and course admin.


Fethi Rabhi Nick Patrikeos

This page offers an outline of this course. Take the time to read it, as it covers everything that we expect you from this term, and everything you should expect from us

- SENG2021 Teaching Team


1. Course Details

Course Code SENG2021
Course Title Requirements & Design Workshop
Convenor Professor Fethi Rabhi
Admin Nick Patrikeos
Class Account se2021@cse.unsw.edu.au
Classes Timetable for all classes
Units of Credit 6
Course Website SENG2021 Class Webpage
Handbook Entry http://www.handbook.unsw.edu.au/undergraduate/courses/current/SENG2021.html

2. Course Summary

This course is part the series of software engineering workshops designed to teach students to work in teams and apply their knowledge to solve real-life problems. This workshop will offer students the opportunity to concentrate on software requirements analysis and design issues including artifacts produced as well techniques and tools to support this process. In addition, it aims to provide students with some of teamwork skills and software design techniques that an engineer would use in the development process. The students will also be getting experience on different aspects of designing and developing an API microservice and a web-based application. The requirements for this course have been determined in collaboration with industry partners and will relate to developing a realistic application. The course has a number of industry sponsors that include Nine and Macquarie Bank.

2.1 Student Learning Outcomes

The following are the intended learning outcomes of this course:

  1. Explain the principles and processes involved in the software development life cycle
  2. Synthesise and interpret requirements to create tangible architectural and technical designs in a team-based dynamic development environment
  3. Understand stack-based software architecture and acquire skills in full-stack design and construction
  4. Build software systems using appropriate languages, libraries and frameworks
  5. Understand and apply the principles of project management in a dynamic software development environment
  6. Contribute to system documentation for a software product

After completing this course, students will:

  • Reinforce existing knowledge about the concepts and principles in the early stages of the software development life cycle
  • Experience developing project plans, brainstorming, technical documentation, prototyping techniques, issues and tasks management, peer reviews
  • Learn about the processes of converting requirements to design in a realistic context
  • Acquire practical design skills, particularly in architectural design and software component integration
  • Experience the process of implementing a prototype web-based system by choosing appropriate languages, libraries and frameworks.
  • Acquire additional skills involved in working as part of a project team working within strict time constraints.
  • Learn the process of writing system documentation for specific needs.
  • Gain an appreciation of the many and varied issues involved in the development of software systems and the role and the importance that Software Engineering review processes play in producing quality systems
  • Develop an awareness of the community of engineering professions and the importance of keeping current through life-long learning and through interacting with that community. Students will also be encouraged to develop their research skills as one of the means of acquiring the necessary knowledge and skills to solve engineering problems

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

  • The skills involved in scholarly enquiry
  • An in-depth engagement with relevant disciplinary knowledge in its interdisciplinary context
  • The capacity for analytical and critical thinking and for creative problem solving
  • The ability to engage in independent and reflective learning
  • The skills to locate, evaluate and use relevant information (Information Literacy)
  • A capacity to contribute to, and work within, the international community
  • The skills required for collaborative and multidisciplinary work
  • An appreciation of, and a responsiveness to, change
  • The skills of effective communication

2.2 Assumed Knowledge

It is assumed that students have completed COMP1531 (Software Engineering Fundamentals) and are familiar with the following concepts:

  • The Software Development Life Cycle (Requirements Analysis, Design, Development, Testing, Deployment, Maintenance)
  • Requirements Engineering (Elicitation, Analysis, Specification and Validation)
  • Fundamental programming concepts
  • Basics of web server architecture
  • Basics software design principles
  • Basic software quality and testing principles
  • Basics of system modelling
  • Software engineering in a team environment, including:
    • Git workflow
    • Communications: stand-ups, meetings
    • Task tracking and management

No knowledge or experience in web-based frontend development, database development is required, though such experience is helpful.

3. Teaching Strategies and Rationale

3.1 Major Project

The primary focus of the workshop is a software project completed in groups of 4 - 5 . A stakeholder sets a series of requirements, within which the group has scope to choose aspects of their project and groups will need to design, implement and test a solution that meets the requirements, making assumptions where areas have been underspecified.

The project will be completed in several stages exposing students to a variety of frameworks and methodologies in the design and development of software.

A core focus of the workshop is project management, where groups must work together in a dynamic software development environment, adapt to changes in requirements, make educated design decisions for their solution and reason about those decisions. As the term progresses, students will reflect and note areas for improvement both as a team and individually.

3.2 Project Check-ins

Each week, during the timetabled tutorial slot, groups will have 20 minutes of contact time with a tutor. The tutor acts as a stakeholder and manager concurrently - clarifying requirements, guiding groups on their design and providing formative and summative feedback.

All group members are required to be present for project check-ins.

3.3 Portfolio

The portfolio is an assessment that showcases progression and development of core skills through the course. The portfolio consists of three components:

  • Time & Project Management
  • Artisanship
  • Teamwork

Students will need to make weekly reflective forum posts on their work in the project that week. These posts are summarised visually in a PDF portfolio, with a draft submitted in the middle of the term for feedback, and the final version submitted at the end of term.

3.4 Lectures

In some weeks, lectures will be held to provide background and information on aspects of the project and teach concepts relevant for its completion. Guest lecturers will also present on various Software Engineering topics.

3.5 Help Sessions

Drop in-clinics will be available throughout the course for students to seek help on technical aspects of development, use the various toolchains involved with the course, and to ask questions around the project problem domain.

3.6 Self Learning

Students will be required to undertake self-learning on various technical topics in order to develop their solution. Lectures will provide broad conceptual introductions to new topics, however much of the depth learning will need to be done independently; cultivating the spirit of 'learning how to learn'. Links to resources on relevant topics will be provided.

4. Prizes and Awards

The Macquarie Second Year Software Engineering prize is awarded to one team from SENG2021 in a particular year. A number of teams usually three are chosen on the basis of their final demonstration and are asked to prepare a 20 to 30 minute presentation explaining their design and prototype implementation of the current project. The presentation is to be made to members of Macquarie Group.

5. 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 that your assignment files are not accessible by anyone but you by setting the correct permissions in your CSE directory and code repository, if you are using these facilities. 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:

6. Assessment

Item Due Weighting
Sprint 1: Planning a Service Week 3 Monday, 1pm 10%
Sprint 2: Architecting a Service Week 5 Monday, 1pm 20%
Draft Portfolio Submission Week 5 Friday, 5pm 5%
Sprint 3: Building a Proof of Concept Week 8 Monday, 1pm 20%
Sprint 4: Moving a Proof of Concept towards a Product Week 10 Monday 1pm 30%
Final Portfolio Submission Week 10 Sunday, 5pm 15%

While the major project is completed in groups, each student will receive an individual mark for each sprint .

The course authority may adjust the marks of team members based on the contribution of each individual towards the project. Team members have the opportunity to address issues as they arise and raise them with their tutor. Issues that persist can be escalated by emailing the course account.

Teams are expected to raise issues in teamwork with their tutor as they arise; there is no 'peer review' process at the end of the project, instead the 'peer review' is ongoing throughout the term.

7. Resources for Students

Relevant resources will be provided throughout the term in the "Self Learning Resources" tab on WebCMS.

8. Course Evaluation and Development

This course is evaluated each session using the myExperience system.

However, during the term students are welcome and encouraged to provide feedback both during lectures, during project check-ins, and generally to course staff via email.

This year, a series of changes have been made to the course to improve the student experience, including, but not limited to the following:

  • Moving to an EdStem course forum where students can ask questions
  • Providing Help Sessions in the lead up to assessment deadlines to support students in the online learning environment
  • Teaching broad concepts on technical topics needed for the project via lectures, such as database implementation and web-based frontend

Students are always welcome to provide feedback at any point in the term on their experience by emailing the course account or completing the feedback form linked in the sidebar.

Resource created Thursday 20 January 2022, 04:47:55 PM, last modified Tuesday 15 February 2022, 11:33:10 AM.


Back to top

SENG2021 22T1 (Requirements and Design Workshop) is powered by WebCMS3
CRICOS Provider No. 00098G