Skip to menu Skip to content Skip to footer
Course profile

Software Engineering Studio: Design, Implement & Test (CSSE3200)

Study period
Sem 2 2024
Location
St Lucia
Attendance mode
In Person

Course overview

Study period
Semester 2, 2024 (22/07/2024 - 18/11/2024)
Study level
Undergraduate
Location
St Lucia
Attendance mode
In Person
Units
2
Administrative campus
St Lucia
Coordinating unit
Elec Engineering & Comp Science School

Students work in teams on a studio-based software development project to gain an understanding of the processes, techniques and tools used to manage and deliver large, complex software systems. The course covers software engineering, design, project management and team work processes. Students will learn techniques and tools used to manage complex software projects. These techniques and tools will be applied to software design, verification and validation, configuration management and documentation.

Real software is complex; too complex to be kept in the mind of a single developer. Almost all software used in the real world is constructed by teams of developers, often large teams. In order to manage this team-based development process, it is important to ensure not only that the software behaves as it should when it is originally built, but that it continues to do so as it evolves over time to incorporate new features, respond to new requirements and cater to new users.

During the course, you will be working in groups to improve a common code base. This gives you practical exposure to many of the problems and difficulties of developing software on realistic projects -- people in other teams breaking your code or changing your design, working with difficult existing code, managing change in the code base, and other issues. Alongside this, the lectures teach the techniques and tools we use (and that we will be using throughout the course) to make complex software development manageable: version control, build systems, continuous integration, test-driven development, mocks, refactoring, API design, testing and code coverage, program analysis, debugging and more.

Course requirements

Assumed background

You should

  • be comfortable reading and writing simple, though non-trivial, programs (not necessarily in Java).
  • be familiar with object-oriented concepts such as object, classes and inheritance.
  • be familiar with design concepts, including iterative improvement and evaluation.
  • have some experience working in project teams and coordinating activities between team members.

Prerequisites

You'll need to complete the following courses before enrolling in this one:

CSSE2002

Incompatible

You can't enrol in this course if you've already completed the following:

DECO2800

Course contact

Course coordinator

Dr Guowei Yang

Please contact me to schedule an appointment for in-person or on-line consultation.

Course staff

Lecturer

Dr Guowei Yang

Timetable

The timetable for this course is available on the UQ Public Timetable.

Additional timetable information

All course activities, lectures, studios and tutorials, start in week one.

Aims and outcomes

  • Teach students professional software development practices and the theory behind them.
  • Give students experience of those practices on a project of realistic scale.
  • Provide students with positive experiences of collaborative learning and appreciation of the need for life-long learning skills.

Learning outcomes

After successfully completing this course you should be able to:

LO1.

Apply collaboration skills to work effectively as a part of small and large teams on large software projects, including management of versions and merging with the work done by others.

LO2.

Employ inspection techniques to explore, understand and then contribute to complex software systems.

LO3.

Identify the roles of different tools and techniques in large systems, and use them to improve project outcomes.

LO4.

Conduct design in the context of a large project, taking into account other, potentially conflicting, features.

LO5.

Apply refactoring techniques where appropriate, e.g. to reconcile decisions with other developers working on the same software.

LO6.

Analyse complex problems and apply design patterns to design contextually appropriate solutions.

LO7.

Apply techniques for validating and ensuring the quality of the software, both during development and in the prevention of regression.

LO8.

Select and employ appropriate software tools for managing the development and maintenance of complex software.

Assessment

Assessment summary

Category Assessment task Weight Due date
Computer Code GIT Exercise
  • Hurdle
  • In-person
Pass/Fail

2/08/2024 3:00 pm

Project Sprint Submissions 60%

Week 6

Week 8

Week 10

Week 12

Submission is due at 3:00 pm the day before your studio session in the indicated weeks.

Quiz Course Content Quiz
  • Hurdle
20%

8/10/2024 2:00 pm

During the week 11 Lecture

Portfolio Individual Portfolio
  • Hurdle
20%

25/10/2024 3:00 pm

A hurdle is an assessment requirement that must be satisfied in order to receive a specific grade for the course. Check the assessment details for more information about hurdle requirements.

Assessment details

GIT Exercise

  • Hurdle
  • In-person
Mode
Activity/ Performance
Category
Computer Code
Weight
Pass/Fail
Due date

2/08/2024 3:00 pm

Task description

Complete the three git modules on edX, and push a non-breaking commit to the HelloSE project on GitHub during your tutorial session in week 2.

Hurdle requirements

You must pass this item to pass the course.

Submission guidelines

Submission is in your tutorial session, by showing a demonstrator your contribution to the HelloSE project on GitHub.

Deferral or extension

You cannot defer or apply for an extension for this assessment.

This course uses project related assessment (i.e. git exercise or sprint submissions). No extensions or deferrals are possible. Failure to deliver by a deadline will disadvantage everyone else in your studio.

Late submission

You will receive a mark of 0 if this assessment is submitted late.

Sprint Submissions

Mode
Product/ Artefact/ Multimedia
Category
Project
Weight
60%
Due date

Week 6

Week 8

Week 10

Week 12

Submission is due at 3:00 pm the day before your studio session in the indicated weeks.

Task description

Feature teams must deliver one or more improvements to the software in each development sprint.

The project will be submitted via four sprints over the course of the semester. These sprint submissions are:

  • Week 6: Minimum Viable Product (MVP) — The studio must deliver a game that demonstrates the feasibility of your overall design and core game play mechanics.
  • Week 8: Core Game Features — The studio must deliver a playable game with an end condition that demonstrates the core features of your game design.
  • Week 10: Full Game Delivery — The studio must deliver a complete game that includes all aspects of game play.
  • Week 12: Polished Game — The studio must deliver a refined game that delivers the entire game play experience from your design.

Your feature team must have contributed an important component of the game in each sprint. Your submission is due at 15:00 the day before your studio session in each of the weeks indicated above. All project artefacts (code, tests, documentation, audio and image resources) are to be pushed to the source code repository. Project documentation must be in the ticket management system or project wiki. You will also submit a summary of your team's achievements for each sprint via a link that will available on BlackBoard.

Your work will be assessed for its

  • quantity (in terms of how much it contributes to the system as a whole),
  • quality (including data and functional design, code style, etc),
  • how well the work is integrated into the system,
  • appropriate use of software design, implementation and validation techniques and tools (based on evidence of design activities, use of patterns, etc),
  • testing,
  • documentation, and
  • whether your work, and manner of working, facilitated the progress of the overall project.

You will also be assessed based on how effectively you have contributed as a member of your feature team, and the studio as a whole. Your contribution to your feature team's submission will also be evaluated by a peer assessment. Details about marking criteria for each sprint will be made available on Blackboard.

Submission guidelines

Code, artefacts and other materials, such as evidence of design activities are to be submitted via the course source code repository and associated facilities (wiki, issue tracker) on GitHub. A summary of your team's achievements for each sprint will be submitted via a link that will available on BlackBoard.

Deferral or extension

You cannot defer or apply for an extension for this assessment.

This course uses project related assessment (i.e. git exercise or sprint submissions). No extensions or deferrals are possible. Failure to deliver by a deadline will disadvantage everyone else in your studio. 

Sprint submissions should be reflections of continuous group effort over the sprint. A single student being unavailable for a few days should not have a serious consequence on a team's ability to deliver their feature; even if they are unavailable in the days leading up to a submission. If teams encounter extraordinary difficulties in meeting a deadline, they should contact the course coordinator in advance of the due date. If there are exceptional circumstances and a student is unable to contribute for most of a sprint, an exemption may be approved and may involve submitting/discussing your work as it stands. Exemptions must be requested as an extension request with a note specifying exemption via my.UQ.

Late submission

All team submissions received after the one-hour grace period will either; (1) receive a zero mark (or failing grade), or (2) if an earlier snapshot of the team’s work was submitted then this will instead be graded.

Course Content Quiz

  • Hurdle
Mode
Written
Category
Quiz
Weight
20%
Due date

8/10/2024 2:00 pm

During the week 11 Lecture

Task description

During the week 11 lecture you will be given a quiz to assess your understanding of the content delivered over the semester.

 

Hurdle requirements

Your final result will be capped with a grade of 3, if your Course Content Quiz result is less than 40%.

Submission guidelines

Quiz will be completed online in the lecture time slot. The quiz will be submitted by submission through a link on BlackBoard at the end of the allocated time for the quiz.

Deferral or extension

You may be able to defer this exam.

Individual Portfolio

  • Hurdle
Mode
Written
Category
Portfolio
Weight
20%
Due date

25/10/2024 3:00 pm

Task description

You will prepare an individual portfolio describing the contributions you have made to the project over the entire semester. You should not list everything you have done, you need to select work items that demonstrate your contributions over the entire semester. Your portfolio should highlight the quality of your work and the consistency of your contributions to the project. The portfolio can include sketches, notes and other materials used during design or implementation.

Your portfolio should reflect on the work you have done, including challenges faced, solutions considered and employed, and on what has or has not worked, both from the perspective of addressing technical requirements, and from the point of view of working within your team.

You will submit the portfolio via a link on Blackboard. More details will be provided during semester.

You should be developing and documenting this portfolio throughout the semester. Do not wait until the last week of semester to try and create your entire portfolio.

Hurdle requirements

Your final result will be capped with a grade of 3, if your Individual Portfolio result is less than 40%.

Submission guidelines

Submission via Blackboard

Deferral or extension

You may be able to apply for an extension.

The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.

Feedback is given to students in a timeframe <28 days.

Late submission

A penalty of 10% of the maximum possible mark will be deducted per 24 hours from time submission is due for up to 7 days. After 7 days, you will receive a mark of 0.

Course grading

Full criteria for each grade is available in the Assessment Procedure.

Grade Cut off Percent Description
1 (Low Fail) 0 - 19

Absence of evidence of achievement of course learning outcomes.

2 (Fail) 20 - 44

Minimal evidence of achievement of course learning outcomes.

3 (Marginal Fail) 45 - 49

Demonstrated evidence of developing achievement of course learning outcomes

4 (Pass) 50 - 64

Demonstrated evidence of functional achievement of course learning outcomes.

5 (Credit) 65 - 74

Demonstrated evidence of proficient achievement of course learning outcomes.

6 (Distinction) 75 - 84

Demonstrated evidence of advanced achievement of course learning outcomes.

7 (High Distinction) 85 - 100

Demonstrated evidence of exceptional achievement of course learning outcomes.

Additional course grading information

Your final grade will be capped at 3 in any of the following three conditions:

  • You do not submit your contribution to the Git Exercise on time,
  • Your Quiz result is less than 40%,
  • Your Individual Portfolio result is less than 40%.

Supplementary assessment

Supplementary assessment is not available for some items in this course.

Should you fail a course with a grade of 3, or a non-graded ‘N’, you may be eligible for supplementary assessment. Refer to my.UQ for information on supplementary assessment.

This course is Partially Exempt for Supplementary Assessment.

Not all of the assessment components of this course may be re-assessed with supplementary assessment. A grade of 3 or N does not guarantee that supplementary assessment may be undertaken for this course, however students may apply.

Supplementary assessment will not be available if the reason for achieving a grade of 3 was due to results in project related assessment items. (i.e. If you do not complete the git exercise on time or if your cumulative mark for the sprint submissions is less than 50%).

Additional assessment information

Permitted Use of Generative AI and Open Source Code

The use of the following is permitted in this course only with full disclosure of how it was used and with proper attribution, you must make clear what is your teams and/or your own work:

  • Open Source code and libraries (excluding previous and current CSSE and DECO projects)
  • Open data sets
  • Royalty free, free to use icons, images, and audio files
  • Use of generative AI code generation tools such as Copilot and others
  • Use of generative AI tools such as ChatGPT to assist with writing documentsᅠ(but only with a complete list of the prompts used)
  • Use of AI grammar checkers

Please note the following things class as misconduct:

  • Any use of the above tools, libraries, icons, images, audio files, and style sheets that are not properly disclosed/acknowledged.
  • Any plagiarism of previous and current CSSE and DECO projects from open GIT repositories and other external websites.
  • Copying and pasting any UQ copywrite content, task sheets, rubrics, project descriptions into Large Language Models.


Mark Rounding: Your final mark will be rounded before application of grade cut-offs.

Moderation: The course coordinator reserves the right to moderate marks.

Having Troubles?

If you are having difficulties with any aspect of the course material you should seek help. Speak to the course teaching staff.

If external circumstances are affecting your ability to work on the course, you should seek help as soon as possible. The University and UQ Union have organisations and staff who are able to help, for example, UQ Student Services are able to help with study and exam skills, tertiary learning skills, writing skills, financial assistance, personal issues, and disability services (among other things).

Complaints and criticisms should be directed in the first instance to the course coordinator. If you are not satisfied with the outcome, you may bring the matter to the attention of the School of EECS Director of Teaching and Learning.

Learning resources

You'll need the following resources to successfully complete the course. We've indicated below if you need a personal copy of the reading materials or your own item.

Library resources

Find the required and recommended resources for this course on the UQ Library website.

Additional learning resources information

Important resources include:

  • Course ticket management, source code repository, and build actions (on GitHub).
  • Quality monitoring tools (SonarCloud).
  • Java development environment (e.g. IntelliJ, VS Code or Eclipse) with JDK 21.
  • Git

Students will need a GitHub account.

Learning activities

The learning activities for this course are outlined below. Learn more about the learning outcomes that apply to this course.

Filter activity type by

Please select
Clear filters
Learning period Activity type Topic
Multiple weeks

From Week 1 To Week 10
(22 Jul - 06 Oct)

Tutorial

Tutorial Sessions

These are opportunities to explore how the lecture content can be applied in practice so that you can use the material effectively in your project work.

Multiple weeks

From Week 1 To Week 12
(22 Jul - 20 Oct)

Studio

Studio Sessions

These are an active learning environment requiring your participation throughout the semester.

Lecture

Lectures

Policies and procedures

University policies and procedures apply to all aspects of student life. As a UQ student, you must comply with University-wide and program-specific requirements, including the:

Learn more about UQ policies on my.UQ and the Policy and Procedure Library.

You'll also need to be aware of the following policies and procedures while completing this course:

  • Placement
  • Working with Children
  • Laboratory Occupational Health and Safety
  • Fitness to Practise
  • Immunisation
  • Work Integrated Learning and Work Experience
  • Incidental Student Fees and Charges
  • Student Travel

School guidelines

Your school has additional guidelines you'll need to follow for this course: