Note: This unit version is currently being edited and is subject to change!
INFO3220: Object Oriented Design (2019 - Semester 1)
Unit: | INFO3220: Object Oriented Design (6 CP) |
Mode: | Normal-Day |
On Offer: | Yes |
Level: | Senior |
Faculty/School: | School of Computer Science |
Unit Coordinator/s: |
A/Prof Scholz, Bernhard
|
Session options: | Semester 1 |
Versions for this Unit: |
Campus: | Camperdown/Darlington |
Pre-Requisites: | (INFO2110 OR ISYS2110) AND (COMP2129 OR COMP2017). |
Prohibitions: | SOFT2201 OR SOFT3202. |
Brief Handbook Description: | This unit will no longer be offered from 2020. It will be replaced by two units: SOFT2201 (S2) and SOFT3202 (S1). This unit covers essential design methods and language mechanisms for successful object-oriented design and programming. C++ is used as the implementation language and a special emphasis is placed on those features of C++ that are important for solving real-world problems. Advanced software engineering features, including exceptions and name spaces are thoroughly covered. |
Assumed Knowledge: | None. |
Lecturer/s: |
Dr McGrane, Martin
|
||||||||||||||||||||
Tutor/s: |
Cameron Hosking (TA) James Koungoulos Scott Lill Martin McGrane Patrick Nappa Yixing Zheng |
||||||||||||||||||||
Timetable: | INFO3220 Timetable | ||||||||||||||||||||
Time Commitment: |
|
||||||||||||||||||||
T&L Activities: | Tutorial: The tutorial/lab session each week is used to provide some structured learning experiences; they also give students an opportunity to practically explore what they have been learning. This learning format is extremely important to bridge the gap between theory in Object-Oriented Design and actual implementation techniques. Independent Study: This includes time spent doing assessment tasks, reading the reference books, trying out ideas on the computer, and planning own work. Students will be given Object-Oriented Design and Implementation assignments. They will put what they have learned in lectures and tutorials into practice and gain practical experiences in Object-Oriented Designing. |
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)Assessment Methods: |
|
||||||||||||||||||||||||||||||||||||
Assessment Description: |
* indicates an assessment tasks which must be repeated if a student misses it due to special considerations. Assignments are in three stages: the first is from scratch (and straightforward) but in assignments two and three the students are given appropriate previous assignments to extend. This gives the students an excellent experience in working with others` code. Assignment 1: a project with visual elements using Qt and applying OO Design Principles. Assignment 2: builds on assignment 1 to add more features, and includes a written analysis of the OO Design Principles used in the received assignment 1. Assignment 3: builds on assignment 2 to add more features, and includes a written analysis of the OO Design Principles used in the received assignment 2. Written Quiz: assesses students` understanding of the OO Design concepts and C++ knowledge that was given in the weeks leading up to the quiz. The quiz is conducted in the lab. Online quizzes will cover the lecture/tutorial of previous week. Students must obtain 45% in the final exam to pass the unit, regardless of the sum of the individual marks. 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: |
|
||||||||||||||||||||||||||||||||||||
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 | Lecture: Unit Overview and Administration matters |
Lecture: Introduction to C++: a federation of languages | |
Week 2 | Lecture: References and const |
Lab: Introduction to C++ and inheritance | |
Lecture: Classes, constructors and destructors, new and delete | |
Week 3 | Lecture: An introduction to Design Patterns: The Singleton Design Pattern |
Lecture: Multiple Inheritance | |
Lab: GUI coding with QTCreator: A bouncing ball | |
Week 4 | Lecture: The Copy Constructor and Explicit and Implicit Type Conversion |
Lecture: Creational Design Patterns Continued: The Prototype and the Builder | |
Lab: Pointers, Passing By Reference, The Singleton Design Pattern, Const Correctness, and Overcoming const | |
Week 5 | Lecture: Operator Overloading |
Lab: Demo of Assignment 1 and The Builder Design Pattern | |
Assessment Due: Assignment 1* | |
Week 6 | Lecture: Creating Objects using Factories: The Factory Method and Abstract Factory Design Patterns |
Lecture: Introducing Structural Design Patterns: The Adaptor, Decorator and Façade Design Patterns | |
Lab: Operator Overloading and the Copy Constructor | |
Week 7 | Lecture: Introducing the Standard Template Libraries (STL) |
Lecture: Decomposition through Structural Design Patterns | |
Week 8 | Lecture: The STL Associative Containers and Introducing the Behavioural Design Patterns |
Lecture: Comparing Templated Methods with the Template Method Design Pattern | |
Lab: Introducing the Adaptor Pattern and the STL | |
Week 9 | Lecture: Writing Templated Classes and Functors |
Lab: Writing SOLID code | |
Assessment Due: Assignment 2* | |
Week 10 | Lecture: The Strategy Design Pattern: how to write your own algorithms |
Lecture: The Visitor and State Design Patterns | |
Lab: The Façade Design Pattern | |
Week 11 | Lecture: Design Patterns working together: The Observer, Flyweight and Smart Pointers |
Lecture: Smart Pointers Continued (RAII) | |
The Visitor Design Pattern | |
Week 12 | Lecture: Controlling how classes interact: The Chain of Responsibility and Mediator Design Patterns |
Lecture: The Memento, Command and Interpreter Design Patterns | |
Lab: The Flyweight and Observer Design Pattern | |
Week 13 | Lecture: Revision and Demos |
Lab: Demo of Assignment 3 and Revision | |
Lecture: Coding for execution speed | |
Assessment Due: Assignment 3* | |
Exam Period | Assessment Due: Final Exam |
Course Relations
The following is a list of courses which have added this Unit to their structure.
Course Goals
This unit contributes to the achievement of the following course goals:
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.