✨✨ Welcome to SENG3011 ✨✨

SENG3011 is a Software Engineering workshop course, a capstone course for students in the latter half of their Software Engineering degree which ties off skills in the design and development of software systems.

You’ll be spending the term contributing to the engineering and evolution of a real-life software ecosystem, 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 mentor, but also with our lecturer and course admin.


Fethi Rabhi Nick Patrikeos
Lecturer in Charge Lecturer & Course Admin

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

- SENG3011 Teaching Team


1. Course Details 📱

Course Code SENG3011
Course Title Advanced Software Engineering Workshop
Convenor Professor Fethi Rabhi
Admin Nick Patrikeos
Class Account se3011@cse.unsw.edu.au
Classes Timetable for all classes
Units of Credit 6
Course Website SENG3011 Class Webpage
Handbook Entry http://www.handbook.unsw.edu.au/undergraduate/courses/current/SENG3011.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 builds on the foundational theoretical knowledge of first year core course COMP1531, as well as the second-year workshop SENG2021. Students in this course are exposed to a series of modern technologies and tools that are used in industry to build robust, performant and scalable software services in the context of an enterprise DevOps environment. Alongside a development of technical maturity, students explore ideas surrounding leadership in a Software Engineering context through working in a team and individual reflection. The course has a number of industry sponsors that include Atlassian, GitHub, AWS, Optiver and New Relic.

2.1 Student Learning Outcomes 💡

The following are the intended learning outcomes of this course:

  1. Understand and explore the architecture of cloud-based microservice and API-based software systems. ☁️
  2. Explore and work with modern DevOps and software toolchains used in industry development. 🔨
  3. Synthesise and adapt large-scale software systems to changes in requirements, evolutions in technology, and the need for scalability. 🏗️
  4. Develop skills in leadership and management in a dynamic Software Engineering environment. 🏈
  5. Deepen the ability to plan, design, implement, test and document quality software in an agile environment. ♻️

After completing this course, students will:

  • Reinforce existing knowledge about all stages of the Software Development lifecycle; (Requirements Analysis & Engineering, Product/Technical Design, Implementation, Testing, Deployment, Maintenance)
  • Design and implement interoperable microservice components
  • Design systems for platformisation, vitality and scalability
  • Acquire skills in working as part of a large organisation on a multifaceted software ecosystem
  • Deepen skills in implementing a prototype web-based system by choosing appropriate languages, libraries and frameworks
  • 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
  • Deepen 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
  • Think critically about team dynamics and team culture
  • Understand more about leadership in a software engineering team environment

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

Students are expected to have completed SENG2021 (Requirements & Design Workshop), and be familiar with:

  • Service-Oriented Architecture Fundamentals;
  • API Design and Development;
  • Basic database and frontend development skills;
  • System Modelling concepts;
  • Full stack design and construction, including a strong grasp of one or more programming frameworks (e.g. Python/JavaScript/Java)
  • Agile project management concepts;
  • Written and oral communication techniques.

While it is not a formal prerequisite for the course, students are encouraged to have taken COMP2511 (The Art of Software Design) prior to taking this course to develop technical proficiency.

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 .

The cohort is provided with access to an environment for a software ecosystem. Similar to teams working on a large software product in an industry setting, groups will be creating engineering proposals to add a new element into the ecosystem, and will design, develop and deploy this component into the live system. Throughout the term, they will have the opportunity to maintain and iterate on their work, taking feedback, real-life data and their learnings into account. As the term progresses, students will reflect and note areas for improvement both as a team and individually.

A major focus of this project is integration and interoperability between different architectural components in an ecosystem, which will require groups in the cohort to communicate and leverage off one another as they contribute to the ecosystem.

3.2 Mentoring Sessions

Each week, during the timetabled tutorial slot, groups will have 20 minutes of contact time with a mentor. The mentor 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 mentoring sessions. Students are expected to send apologies and a valid excuse to their mentor if they are unable to attend a mentoring session. Students who repeatedly miss mentoring sessions will have their final project mark reduced.

All mentoring sessions start in Week 1 .

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
  • Technical Maturity
  • Leadership & Teamwork

Students will need to make weekly reflective blog 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 peer feedback, and the final version submitted at the end of term.

3.4 Lectures

Lectures in this course are separated into two main streams:

  • Technical Lectures
  • Professional Lectures

There is often significant crossover between these two streams. Technical lectures are designed to provide a conceptual introduction to students from which they can undertake further research to complete their project. Professional lectures discuss aspects of leadership and management relevant for the project, and in particular the portfolio.

3.5 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. Technology Stack 🥞

  • Confluence for course material, blog posts and project documentation;
  • Jira for project management and task tracking;
  • WebCMS for course notices and formal course material.
  • Edstem for the course forum;
  • GitHub + Git for repository management and version control
  • AWS for deployment infrastructure;
  • NewRelic for observability toolchain
  • Docker for containerisation

5. Prizes and Awards

The Optiver Third Year Software Engineering prize is awarded to one team from SENG3011 in a particular year. A number of teams 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 Optiver staff acting as judges.

6. 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:

7. Assessment

Item Due Date Weighting
Sprint 1: Evolving the Ecosystem 🌿 Week 4 Friday, 5pm 25%
Draft Portfolio (for peer feedback) 🎓 Week 5 Friday, 5pm 0%
Sprint 2: Validation and Deployment ✅ Week 7 Friday, 5pm 25%
Sprint 3: To Scalability and Beyond 🚀 Week 10 Monday, 5pm 35%
Final Portfolio 🎓 Week 11 Wednesday, 1pm 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.

8. Resources for Students

Relevant resources will be provided throughout the term via Confluence.

9. Course Evaluation and Development

This course is evaluated each session using the myExperience system.

This term, the course has been completely redesigned as a result of a curriculum review of the Software Engineering degree.

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.

10. Course Sponsors


Optiver Amazon Web Services
GitHub NewRelic
Atlassian

Resource created Monday 12 December 2022, 03:05:52 PM, last modified Saturday 17 February 2024, 07:13:57 AM.


Back to top

SENG3011 23T1 (Advanced Software Engineering Workshop) is powered by WebCMS3
CRICOS Provider No. 00098G