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/
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