Note: This unit version is currently under review and is subject to change!

SOFT2201: Software Construction and Design 1 (2019 - Semester 2)

Download UoS Outline

Unit: SOFT2201: Software Construction and Design 1 (6 CP)
Mode: Normal-Day
On Offer: Yes
Level: Intermediate
Faculty/School: School of Computer Science
Unit Coordinator/s: Dr Wu, Xi
Session options: Semester 2
Versions for this Unit:
Campus: Camperdown/Darlington
Pre-Requisites: INFO1113 OR INFO1103 OR INFO1105 OR INFO1905.
Prohibitions: INFO3220 OR COMP9201.
Brief Handbook Description: This unit introduces the foundations of software design and construction. It covers the topics of modelling software (UML, CRC, use cases), software design principles, object-oriented programming theory (inheritance, polymorphism, dynamic subtyping and generics), and simple design patterns. The unit aims to foster a strong technical understanding of the underlying software design and construction theory (delivered in the lecture) but also has a strong emphasis of the practice, where students apply the theory on practical examples.
Assumed Knowledge: None.
Lecturer/s: Dr McGrane, Martin
Dr Wu, Xi
Timetable: SOFT2201 Timetable
Time Commitment:
# Activity Name Hours per Week Sessions per Week Weeks per Semester
1 Lecture 2.00 1 13
2 Laboratory 2.00 1 13
3 Independent Study 6.00 13

Learning outcomes are the key abilities and knowledge that will be assessed in this unit. They are listed according to the course goal supported by each. See Assessment Tab for details how each outcome is assessed.

(4) Design (Level 3)
1. Explain processes and elements in Object-Oriented Design
2. Apply Object-Oriented Design approaches to Software design
(2) Engineering/ IT Specialisation (Level 3)
3. Apply Object-Oriented design principles to implementation using an OO programming language.
4. Object Oriented Theory including inheritance, polymorphism, dynamic binding, subtyping and generics
5. Explain differences in different types of Object-Oriented programming language and implementation.
Assessment Methods:
# Name Group Weight Due Week Outcomes
1 Weekly quizzes/exercises No 10.00 Multiple Weeks 1, 2, 3, 4, 5,
2 Software Construction Stage 1* No 10.00 Week 5 1, 2, 3, 4,
3 Software Construction Stage 2 No 15.00 Week 9 1, 2, 3, 4,
4 Software Construction Stage 3 No 15.00 Week 12 1, 2, 3, 4,
5 Final Exam No 50.00 Exam Period 1, 2, 3, 4, 5,
Assessment Description: * indicates an assessment tasks which must be repeated if a student misses it due to special considerations.

The penalty for lateness for assignments is 5% per day. Assignments more than 10 days late get 0.

Online quizzes will cover the lecture/tutorial of the previous week.

There may be statistically defensible moderation when combining the marks from each component to ensure consistency of marking between markers, and alignment of final grades with unit outcomes.
Assessment Feedback: Each assessment is marked by tutors and the unit coordinator. Feedback is given in the form of comments on individual assessments and in the marks.
Grading:
Grade Type Description
Standards Based Assessment Final grades in this unit are awarded at levels of HD for High Distinction, DI (previously D) for Distinction, CR for Credit, PS (previously P) for Pass and FA (previously F) for Fail as defined by University of Sydney Assessment Policy. Details of the Assessment Policy are available on the Policies website at http://sydney.edu.au/policies . Standards for grades in individual assessment tasks and the summative method for obtaining a final mark in the unit will be set out in a marking guide supplied by the unit coordinator.
Minimum Pass Requirement It is a policy of the School of Computer Science that in order to pass this unit, a student must achieve at least 40% in the written examination. For subjects without a final exam, the 40% minimum requirement applies to the corresponding major assessment component specified by the lecturer. A student must also achieve an overall final mark of 50 or more. Any student not meeting these requirements may be given a maximum final mark of no more than 45 regardless of their average.
Policies & Procedures: IMPORTANT: School policy relating to Academic Dishonesty and Plagiarism.

In assessing a piece of submitted work, the School of Computer Science may reproduce it entirely, may provide a copy to another member of faculty, and/or to an external plagiarism checking service or in-house computer program and may also maintain a copy of the assignment for future checking purposes and/or allow an external service to do so.

Other policies

See the policies page of the faculty website at http://sydney.edu.au/engineering/student-policies/ for information regarding university policies and local provisions and procedures within the Faculty of Engineering and Information Technologies.
Prescribed Text/s: Note: Students are expected to have a personal copy of all books listed.
Recommended Reference/s: Note: References are provided for guidance purposes only. Students are advised to consult these books in the university library. Purchase is not required.

Note that the "Weeks" referred to in this Schedule are those of the official university semester calendar https://web.timetable.usyd.edu.au/calendar.jsp

Week Description
Week 1 Introduction to Software Construction and Design
Week 2 OO Theory I: Java Knowledge Revisited
Week 3 UML&Software Modelling Case Studies
Week 4 OO Theory II: Software Design Principles and Design Smells
Week 5 Design Pattern 1
Software Construction Stage 1 Preliminary Submission
Assessment Due: Software Construction Stage 1*
Week 6 Design Pattern 2
Week 7 Testing
Week 8 Design Pattern 3
Software Construction Stage 2 Preliminary Submission
Week 9 Design Pattern 4
Assessment Due: Software Construction Stage 2
Week 10 API Design Principles
Week 11 Code Review
Software Construction Stage 3 Preliminary Submission
Week 12 Design Pattern 5
Assessment Due: Software Construction Stage 3
Week 13 Unit Review
Exam Period Assessment Due: Final Exam

Course Relations

The following is a list of courses which have added this Unit to their structure.

Course Year(s) Offered
Bachelor of Advanced Computing (Software Development) 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025
Bachelor of Advanced Computing (Software Development) - Mid-Year 2021, 2022, 2023, 2024, 2025
Software Engineering (mid-year) 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025
Software / Project Management 2019+ 2019, 2020, 2021, 2022, 2023, 2024, 2025
Software Engineering 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025
Software / Arts (2022 and earlier) 2018, 2019, 2020, 2021, 2022
Software / Arts 2023+ 2023, 2024, 2025
Software / Commerce 2018, 2019, 2020, 2021, 2022
Software / Commerce 2023+ 2023, 2024, 2025
Software / Project Management 2018
Software / Science 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025
Software / Science (Health) 2018, 2019, 2020, 2021, 2022
Software / Science - Mid Year 2023, 2024, 2025
Software / Law 2018, 2019, 2020, 2021, 2022
Software / Law 2023+ 2023, 2024, 2025
Software / Science (Medical Science Stream) 2018, 2019, 2020, 2021, 2022
Advanced Computing / Science 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025
Advanced Computing / Science (Medical Science) 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025
Bachelor of Advanced Computing (Computational Data Science) 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025
Advanced Computing / Commerce 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025
Bachelor of Advanced Computing (Computational Data Science) - Mid-Year 2021, 2022, 2023, 2024, 2025
Bachelor of Advanced Computing (Computer Science) 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025
Bachelor of Advanced Computing (Cybersecurity) 2022, 2023, 2024, 2025
Bachelor of Advanced Computing (Computer Science) - Mid-Year 2021, 2022, 2023, 2024, 2025
Bachelor of Advanced Computing (Cybersecurity) - Mid-Year 2021, 2022, 2023, 2024, 2025
Bachelor of Advanced Computing (Information Systems) (not offered from 2022+) 2018, 2019, 2020, 2021
Biomedical Engineering (mid-year) 2016, 2017, 2018, 2019, 2020
Biomedical Engineering 2016, 2017, 2018, 2019, 2020

Course Goals

This unit contributes to the achievement of the following course goals:

Attribute Practiced Assessed
(6) Communication and Inquiry/ Research (Level 2) No 0%
(7) Project and Team Skills (Level 2) No 0%
(8) Professional Effectiveness and Ethical Conduct (Level 2) No 0%
(5) Interdisciplinary, Inclusiveness, Influence (Level 3) No 0%
(4) Design (Level 3) No 44%
(2) Engineering/ IT Specialisation (Level 3) No 56%
(3) Problem Solving and Inventiveness (Level 3) No 0%
(1) Maths/ Science Methods and Tools (Level 3) No 0%

These goals are selected from Engineering & IT Graduate Outcomes Table 2018 which defines overall goals for courses where this unit is primarily offered. See Engineering & IT Graduate Outcomes Table 2018 for details of the attributes and levels to be developed in the course as a whole. Percentage figures alongside each course goal provide a rough indication of their relative weighting in assessment for this unit. Note that not all goals are necessarily part of assessment. Some may be more about practice activity. See Learning outcomes for details of what is assessed in relation to each goal and Assessment for details of how the outcome is assessed. See Attributes for details of practice provided for each goal.