Course coordinator
Please contact me to schedule an appointment for in-person or on-line consultation.
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.
You should
You'll need to complete the following courses before enrolling in this one:
CSSE2002
You can't enrol in this course if you've already completed the following:
DECO2800
Please contact me to schedule an appointment for in-person or on-line consultation.
The timetable for this course is available on the UQ Public Timetable.
All course activities, lectures, studios and tutorials, start in week one.
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.
Category | Assessment task | Weight | Due date |
---|---|---|---|
Computer Code |
GIT Exercise
|
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
|
20% |
8/10/2024 2:00 pm
During the week 11 Lecture |
Portfolio |
Individual Portfolio
|
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.
2/08/2024 3:00 pm
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.
Submission is in your tutorial session, by showing a demonstrator your contribution to the HelloSE project on GitHub.
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.
You will receive a mark of 0 if this assessment is submitted late.
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.
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:
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
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.
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.
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.
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.
8/10/2024 2:00 pm
During the week 11 Lecture
During the week 11 lecture you will be given a quiz to assess your understanding of the content delivered over the semester.
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.
You may be able to defer this exam.
25/10/2024 3:00 pm
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.
Submission via Blackboard
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.
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.
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. |
Your final grade will be capped at 3 in any of the following three conditions:
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%).
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:
Please note the following things class as misconduct:
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.
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.
Find the required and recommended resources for this course on the UQ Library website.
Important resources include:
Students will need a GitHub account.
The learning activities for this course are outlined below. Learn more about the learning outcomes that apply to this course.
Filter activity type by
Learning period | Activity type | Topic |
---|---|---|
Multiple weeks From Week 1 To Week 10 |
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 |
Studio |
Studio Sessions These are an active learning environment requiring your participation throughout the semester. |
Lecture |
Lectures |
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:
Your school has additional guidelines you'll need to follow for this course: