CS计算机代考程序代写 data structure Java SWEN20003 Object Oriented Software Development

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, -final-exam.txt from
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