SWEN20003 Object Oriented Software Development
SWEN20003
Object Oriented Software Development
Wrap-up and Final exam
Wrap-up and Final exam SWEN20003 1 / 32
Topics Covered During the Semester
Subject Introduction
A Quick Tour of Java
Classes and Objects
Arrays and Strings
Software Tools
Input and Output
Inheritance and Polymorphism
Interfaces and Polymorphism
Modelling Class Relationships with UML
Generics
Exceptions
Design Patterns
Software Testing and Design
Asynchronous Programming
Advanced Java and OOP
Wrap-up and Final exam SWEN20003 2 / 32
Lecture Objectives
Review the subject learning outcomes
Plan your future COMP/SWEN subjects
Discuss the exam structure and process
Help you do well in the exam
Wrap-up and Final exam SWEN20003 3 / 32
A Quick Tour of Java
Learning Outcomes:
Identify some of the key Java features
Understand the following in context of Java:
I Identifiers, Data Types, Variables and Constants
I Operators and Expressions
I Flow of control
Write simple Java programs
Wrap-up and Final exam SWEN20003 4 / 32
Classes and Objects
Learning Outcomes:
Explain the difference between a class and an object
Define classes, and give them properties and behaviours
Implement and use classes
Identify a series of well-defined classes from a specification
Explain object oriented concepts: abstraction, encapsulation,
information hiding and delegation
Understand the role of Wrapper classes
Wrap-up and Final exam SWEN20003 5 / 32
Arrays and Strings
Learning Outcomes:
Understand how to use Arrays
Understand how to use Strings
Wrap-up and Final exam SWEN20003 6 / 32
Software Tools
Learning Outcomes:
How to use a version control system to manage your software
How to use the software development framework Bagel
Wrap-up and Final exam SWEN20003 7 / 32
Input and Output
Learning Outcomes:
Accept input to your programs through:
I Command line arguments
I User input
I Files
Write output from your programs through:
I Standard output (terminal)
I Files
Use files to store and retrieve data during program execution
Manipulate data in files (i.e. for computation)
Wrap-up and Final exam SWEN20003 8 / 32
Inheritance and Polymorphism
Learning Outcomes:
Use inheritance to abstract common properties of classes
Explain the relationship between a superclass and a subclass
Make better use of privacy and information hiding
Identify errors caused by shadowing and privacy leaks, and avoid
them
Describe and use method overriding
Describe the Object class, and the properties inherited from it
Describe what upcasting and downcasting are, and when they
would be used
Explain polymorphism, and how it is used in Java
Describe the purpose and meaning of an abstract class
Wrap-up and Final exam SWEN20003 9 / 32
Interfaces and Polymorphism
Learning Outcomes:
Describe the purpose and use of an interface
Describe what it means for a class to use an interface
Describe when it is appropriate to use inheritance vs. interfaces
Use interfaces and inheritance to achieve powerful abstractions
Make any class “sortable”
Wrap-up and Final exam SWEN20003 10 / 32
Modelling Class Relationships with UML
Learning Outcomes:
Identify classes and relationships for a given problem specification
Represent classes and relationships in UML
Develop simple Class Diagrams
Wrap-up and Final exam SWEN20003 11 / 32
Generics
Learning Outcomes:
Understand generic classes in Java
Use generically typed classes
Define generically typed objects
Choose appropriate data structures storing, retrieving and
manipulating objects (data)
Use the Java Collections Framework
Use the Java Maps Framework
Wrap-up and Final exam SWEN20003 12 / 32
Exceptions
Learning Outcomes:
Understand what exceptions are
Appropriately handle exceptions in Java
Define and utilise exceptions in Java
Wrap-up and Final exam SWEN20003 13 / 32
Design Patterns
Learning Outcomes:
Describe what design patterns are, and why they are useful
Analyse and understand design pattern specifications
Make use of (some) design patterns
Wrap-up and Final exam SWEN20003 14 / 32
Software Testing and Design
Learning Outcomes:
Write better code
Design better software
Test your software for bugs
Wrap-up and Final exam SWEN20003 15 / 32
Asynchronous Programming
Learning Outcomes:
Describe the event-driven programming paradigm
Describe where it can be applied, and how
Implement basic event-driven programs in Java
Describe some basic techniques in game design
Wrap-up and Final exam SWEN20003 16 / 32
Advanced Java and OOP
Learning Outcomes:
Describe and use enumerated types
Make use of functional interfaces and lambda expressions
Do cool stuff in Java
Wrap-up and Final exam SWEN20003 17 / 32
Assessment
Mark distribution across assessment components:
Workshops: 5%
Weekly Quizzes: 5%
Mid-term Exam: 10%
Project: 30%
Final Exam: 50%
Note: There is a 50% hurdle on each component
Wrap-up and Final exam SWEN20003 18 / 32
What I Hope You Learned
How to program in Java
How to think like a “designer”
Objected-oriented programming (Java or otherwise) is a powerful tool
Software design is complicated, and involves a lot of tools,
techniques, and tradeoffs
Game development is fun
On-line learning is not too bad
We have the resilience and ability to adapt – covid-19 being the case
study
Wrap-up and Final exam SWEN20003 19 / 32
What Did We Miss?
More advanced Java (e.g. multithreading)
There is plenty of UML beyond class diagrams:
I Activity diagrams
I Sequence diagrams
I Object diagrams
I And more…
There are plenty more design patterns
We barely scratched the surface of software design tools, and
techniques
Wrap-up and Final exam SWEN20003 20 / 32
Future Subjects
Software Modelling and Design (SWEN30006)
I More UML, design patterns, software design techniques
I More Java
Computer Systems (COMP30023)
I How does computer hardware work and interact; uses C
IT Project (COMP30022)
I Capstone project for the major
I Java is assumed, not taught
Wrap-up and Final exam SWEN20003 21 / 32
The Exam
Wrap-up and Final exam SWEN20003 22 / 32
Exam Structure
The exam has three sections:
I Section 1 – Short Answer (20 marks)
I Section 2 – System Design (30 marks)
I Section 3 – Java Development (50 marks)
100 marks (weighted to 50% of the final mark)
Allocated Time: 120 minutes
Note: This includes reading time if you want to use if for that
purpose, but you can start answering the questions during this time if
you choose to do so.
Wrap-up and Final exam SWEN20003 23 / 32
Final Exam Tips
Finally…
Read instructions carefully
Try to read all the questions before writing anything.
Exam is just testing what you have been doing throughout the
semester
I If you have been engaged with the subject trough following the
lectures, doing the workshops and assignments you should not have
problems in the exam
I However, you will need to have to your thinking hats on because
question are about applying your knowledge
Wrap-up and Final exam SWEN20003 24 / 32
Final Exam Tips
Attempt the practice exam:
Follow the instructions provided in “Instructions to students” which
will be very similar to what you have to do before the exam.
I will not provide a sample solution to the Practice Exam – this is for
you to do by yourself.
If there are any issues with submitting to git etc. please post
questions on the discussion forum.
Wrap-up and Final exam SWEN20003 25 / 32
Important
Please pay attention to subject announcements sent via Canvas after
this week.
I If there are any changes to what I have said so far, these will be
announced Canvas announcements.
Before the exam (at least a few days), I will make an announcement
asking you to:
I checkout the solution template,
the repository;
I add your student ID to the solution template and commit the file; and
I push the file back to the repository.
If it does not work let us know via the discussion board and we can
help you.
Why is following the above steps important?
I This will allow you to try the process before the exam and verify if your
repositories are working as expected so that you will not have to stress
out about this during the exam.
Wrap-up and Final exam SWEN20003 26 / 32
Questions?
Wrap-up and Final exam SWEN20003 27 / 32