CS计算机代考程序代写 Java distributed system SWEN20003 Object Oriented Software Development 0.5 cm Subject Introduction

SWEN20003 Object Oriented Software Development 0.5 cm Subject Introduction

SWEN20003
Object Oriented Software Development

Subject Introduction

Shanika Karunasekera
.au

University of Melbourne
c© University of Melbourne 2020

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 1 / 21

Teaching Staff

Lecturers:

Dr Bach Le (Subject Coordinator) (bach. .au)

Professor Shanika Karunasekera ( .au)

Head Tutor:

Dr Ni Ding (ni. .au)

Demonstrators:

Asil Mian

Calvin Sagar

Betty Lin

Stefan Marbun

Xulin Yang

TBD

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 2 / 21

mailto:bach. .au
mailto: .au
mailto: .au

A bit about myself

Shanika Karunasekera
I Professor in the Department of Computing and Information Systems
I Leader of the Software Engineering Discipline

Education
I PhD in Electrical Engineering – University of Cambridge, UK
I B.Sc. (First Class Honours) in Electronic and Telecommunications

Engineering – University of Moratuwa, Sri Lanka

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 3 / 21

A bit about myself

Industry Experience
I Distinguished Engineer, Software Architect (1995 – 2002)

F Lucent Technologies, Bell Labs Innovation (AT&T Bell Labs), USA

Academic Experience
I Academic at the University of Melbourne since 2003
I Teaching

F Software Engineering and Distributed Computing

I Research
F Bigdata analytics
F Distributed systems
F Data steam mining

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 4 / 21

OOSD in Context

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 5 / 21

Learning Outcomes – Handbook

On completion of this subject you are expected to:

Apply software design principles to object-oriented design

Develop object-oriented models for a medium-sized software system

Evaluate design trade-off of different designs

Implement an object-oriented design in a suitable language

Use commonly available object-oriented design frameworks for
application development

Apply knowledge of basic science and engineering fundamentals

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 6 / 21

Learning Outcomes – In Simple Language

On completion of this subject you will be able to:

Write Object Oriented programs in Java

Use an Integrated Development Environment (IDE) to develop
software

Abstract a problem specification the Object Oriented way

Design a software solution, not just write it

Apply programming techniques, frameworks, and conventions, to
other Object Oriented languages

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 7 / 21

Lecture Schedule

Block Week Date Lecture Topic Assessment

2/03/2021 Subject Introduction

5/03/2021 Java – A Quick Tour

9/03/2021 Classes and Objects 1

12/03/2021 Classes and Objects 2

16/03/2021 Classes and Objects 3

19/03/2021 Arrays and Strings

23/03/2021 Input and Output

26/03/2021 Software Tools/Bagel

30/03/2021 Inheritance I

2/04/2021 No Lecture (Good Friday) Project 1 Released (20.59 pm)

NT Non Teaching Week

13/04/2021 Inheritance 2

16/04/2021 Interfaces

20/04/2021 Mid Semester Test

Project 1 Due (20:59 pm)

Project 2 Released (20.59 pm)

27/04/2021 Generics

30/04/2021 Collections and Maps

4/05/2021 Design Patterns 1

5/05/2021 Project 2A Due (20.59 pm)

7/05/2021 Design Patterns 2

11/05/2021 Exceptions

14/05/2021 Sofware Testing and Design

18/05/2021 Asynchronous Programming

21/05/2021 Advanced Java Concepts Project 2B Due (20.59 pm)

25/05/2021 Revision

28/05/2021 Wrapup – Exam

Last Updated: 21-02-2021, 11:00 am

Wrap Up
12

Advanced OOP

and Software

Design

7

11

23/04/2021 Class Diagrams

8

9

10

SWEN20003 Object Oriented Software Development – Semester 1, 2021

Java

Foundations
1

OOP

Fundamentals
2

3

4

5

6

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 8 / 21

Workshops

Each week there will be a 2 hour workshop:

Workshops start in week 2

Workshops contain practical exercises that give you hands-on
experience on concepts covered in the lectures

Doing these exercises will be important for you to understand the
concepts, do your projects and final examination

Workshops will be assessed: one mark will be assigned for each
workshop, which will count 5% towards the final mark – more details
in later slides

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 9 / 21

Assessment Breakdown

Project 1 8%

Project 2A 6%

Project 2B 16%

Mid-semester Test 10%

Workshops 5%

Weekly Quizzes 5%

Final Exam 50%

Hurdle:
To pass the subject, students must obtain at least 50% overall, 15/30 in
project work, and 30/60 in the mid-semester test and end-of-semester
written examination combined.

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 10 / 21

Assessment Dates and Deadlines

Mid-semester Test Tuesday 20th April (Week 7)

Project 1 Due 20:59pm, Friday 23rd April (Week 7)

Project 2A Due 20:59pm, Wednesday 5th May (Week 9)

Project 2B Due 20:59pm, Friday 21st May (Week 11)

Workshops Assessed at the end of each workshop

Weekly Quizzes Due end of each week (Sunday)

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 11 / 21

Assessment – Workshops

Workshops will be assessed:
I students who complete workshop exercises and keep up with the

subject topics generally perform well in the subject
I last semester student feedback highlighted the lack of interactions with

other students due to shifting to on line mode

Each workshop is assigned 1 mark

To obtain the 1 mark assigned for a workshop:
I you must join the Zoom session for your assigned workshop;
I join a small group your workshop demonstrator will assign you to

during the workshop; and
I in your group (or sometimes individually), work on a question selected

by the workshop demonstrator and show a satisfactory solution (or a
reasonable attempt)

Final workshop mark will be the sum of workshop marks earned
during the semester weighted to 5%

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 12 / 21

Assessment – Weekly Quizzes

Each week there will be a Canvas quiz on the weekly lecture content.

The quiz will test your understanding of the concepts introduced in
the lectures.

Each quiz will have a maximum of 10 questions, and is expected to
take less than 20 minutes.

Each weekly quiz is due on Sunday 11.59 pm of that particular week
(e.g. quiz for week 1 will be due on Sunday 7th March 11.59 pm) –
students will get a single attempt to complete the weekly quiz.

Final quiz mark will be the sum of marks earned from the quizzes
during the semester weighted to 5% (each quizz will have an equal
contribution towards the final quizz mark).

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 13 / 21

Textbook

The subject content will be based off Absolute Java by Walter
Savitch. You can buy the textbook (4th edition or higher) if you wish,
but this is not required.

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 14 / 21

Editing Tools

Any new language has a learning curve

To reduce the impact, we’ll be using Grok initially to give you
programming practice

Starting from week 2, we will introduce IntelliJ, an Integrated
Development Environment (IDE)

You will need to use an IDE for the Projects

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 15 / 21

Academic Misconduct

Work with friends if you like on workshop questions

All assessed work (projects) is to be done by you alone

You can discuss overall approach to solving problems with peers or
others

Do not show your code to peers, in person or electronically, or ask
peers for code

When in doubt, ask lecturer or tutor

Sophisticated software is used to identify cheating

Cheating is grounds for disciplinary action; repeat offence is grounds
for expulsion

See https://academichonesty.unimelb.edu.au/

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 16 / 21

Student Representatives

The first two expressions of interest via email to me
( .au) will be selected as student representatives.

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 17 / 21

Extra Resources

Practice (and exam-like) problems:

Hackerrank

Codecademy

Codesignal

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 18 / 21

https://www.hackerrank.com/
https://www.codecademy.com/

Home

Grok

Worksheets 1-7 now available

Worksheets teach content to complement and reinforce the lectures

Go at your own pace

Not assessed, does not contribute to your marks

Don’t just answer the questions; it is assumed you will have read the
slides as well

Let’s take a quick look at the worksheets.

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 19 / 21

https://groklearning.com/course/unimelb-swen20003-2021-s1/

How to Better Engage in the Subject

Attend lectures and participate in quizzes, activities and discussions

I Anecdotal evidence shows that students who attend lectures do better
in subjects

Attend the workshop you are enrolled in and participate
I Your demonstrators are the best resource for specific questions,

particularly regarding the projects

Be active on subject forums

Practice programming -practice makes you at least close to perfect!

Ask questions, lots of questions

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 20 / 21

Lectures in the First Six Weeks of the Semester

I will be using the slides and lecture recordings from last semester
(already available on Canvas via the lecture capture link)

During the assigned lecture times (Tuesday 10am – 11am and Fridays
12pm – 1pm) the lecturer will be on Zoom to answer questions
related to the topic – for the remaining time there will be problem
solving and quizzes, students are expected to participate in.

Grok worksheets will reinforce your knowledge in the Java
foundations, so please do them

I On Canvas go to Modules, scroll down to workshops, click on
”Grok Start Here” to register with Grok – if you do not do this
you will not be able to start using Grok.

I Most of the code should be intuitive, or at least make some sense
I Some things won’t “click” for a few weeks, when we add the finer

details

We will teach you Object Oriented Programming concepts throughout
the semester, enabling you to write good Object Oriented
Programs in Java

Shanika Karunasekera SWEN20003 c© University of Melbourne 2020 21 / 21