Note: This unit version is currently being edited and is subject to change!

INFO1113: Object-Oriented Programming (2018 - Semester 2)

Download UoS Outline

Unit: INFO1113: Object-Oriented Programming (6 CP)
Mode: Normal-Day
On Offer: Yes
Level: Junior
Faculty/School: School of Information Technologies
Unit Coordinator/s: Dr Takatsuka, Masahiro
Thomas, Tyson
Session options: Semester 2
Versions for this Unit:
Campus: Camperdown/Darlington
Pre-Requisites: INFO1110.
Prohibitions: INFO1103 OR INFO1105 OR INFO1905.
Brief Handbook Description: Object-oriented (OO) programming is a technique that arranges code into classes, each encapsulating in one place related data and the operations on that data. Inheritance is used to reuse code from a more general class, in specialised situations. Most modern programming languages provide OO features. Understanding and using these are an essential skill to software developers in industry. This unit provides the student with the concepts and individual programming skills in OO programming, starting from their previous mastery of procedural programming.
Assumed Knowledge: None.
Lecturer/s: Thomas, Tyson
Dr Takatsuka, Masahiro
Timetable: INFO1113 Timetable
Time Commitment:
# Activity Name Hours per Week Sessions per Week Weeks per Semester
1 Lecture 1.00 2 13
2 Laboratory 2.00 13
3 Independent Study 8.00 1 13
4 Seminar 1.00 1 12
T&L Activities: About the seminar:

- Attendance is not compulsory

- It will not contain new content needed to complete this course

- Seminar has value to those who need more help with reviewing material and programming exercises

Attributes listed here represent the key course goals (see Course Map tab) designated for this unit. The list below describes how these attributes are developed through practice in the unit. See Learning Outcomes and Assessment tabs for details of how these attributes are assessed.

Attribute Development Method Attribute Developed
Algorithm-based approach to problem solving Design (Level 2)
Basic Object-Oriented programming and use of algorithms Engineering/IT Specialisation (Level 1)
Problem solving will require locating and using information effectively and efficiently. Information Seeking (Level 1)
Lab work will encourage collaboration, team work and communication. Communication (Level 1)

For explanation of attributes and levels see Engineering & IT Graduate Outcomes Table.

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.

Engineering/IT Specialisation (Level 1)
1. Understanding of the concept of Object-Orientation : Understand and explain key concepts of object-oriented programming, including classes as encapsulating data, object instances, memory model of references, methods and calling them across objects.
2. Ability to read and interpret an object oriented design document
3. Understanding of the memory model and differences between locations of variables.
4. Ability to derive a computer program from a design document that uses concepts of OO and memory model : Ability to trace and write small examples of code including the following elements: Inheritance, polymorphism, abstract classes and interfaces, variables and their type and the relationship between static and dynamic type, exception.
5. Experience in testing Object-Oriented programs. Write tests for standalone objects : Ability to generate and handle Exceptions. Create invariants for classes, methods and objects. Pre- and post-conditions for methods, and assertions.
6. Ability to create appropriate class/data structure including the data types and methods for simple problems.
7. Read, trace and write recursive Object-Oriented programs to perform an operation in a related set of classes that support some nested structure.
8. Understanding of Object-Oriented programming language : Reading, tracing and writing competence with the following elements of Java programming language: classes, methods, object creation; instance and local variables, parameters and scope; basic types; simple I/O; control flow primitives. Ability to understand, modify and add functionality to Java programs.
9. Experience writing code with common interfaces and collections in Object-Oriented Programming language (including List, Map).
10. Experience in testing and debugging Object-Oriented programs. Write tests for stand-alone object code, to be run automatically.
Assessment Methods:
# Name Group Weight Due Week Outcomes
1 Tutorial Quiz No 10.00 Multiple Weeks (During your timetabled class) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
2 Quiz 1 No 5.00 Week 4 (During your timetabled class) 1, 2, 3, 4, 6, 8,
3 Assignment 1 No 5.00 Week 7 (Monday, 12 am) 2, 4, 6, 8, 9,
4 Quiz 2 No 5.00 Week 9 (During your timetabled class) 1, 2, 3, 4, 5, 6, 7,
5 Practical Assessment No 15.00 Week 12 (During your timetabled class) 1, 2, 3, 4, 5, 6, 7, 8,
6 Assignment 2 No 10.00 Week 13 (Sunday, 11 pm) 1, 2, 4, 5, 6, 8,
7 Final Exam No 50.00 Exam Period 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
Assessment Description: * indicates an assessment task which must be repeated if a student misses it due to special consideration. A repeated assessment`s questions/tasks may vary from the original.

Tutorial Quizzes: attendance, contribution to tutorial discussion and performance in online challenges. The challenges are a series of programming exercises to be completed throughout the semester. Challenges are released regularly and have varying submission dates. Late enrolments (up to week 4) will be able to submit prior weeks.

Quiz 1 & 2

- 40 minutes: A pen and paper exercise to test both knowledge and skills of course materials in the semester thus far.


- Demonstrating programming ability from specification

- To be completed on campus using standard computer environment

Final Exam

- The final exam covers all aspects of the course and may involve answering questions about the Object-Oriented programming language used in the course, reading short programs and writing short programs, testing, and demonstrating knowledge involving objects, recursion and inheritance.

Late submission of challenges is 50% per day unless otherwise stated in the challenge specification.

For other assessments: non-attendance for in lab assessment tasks, such as manual marking, or exercises, will award zero marks, unless special consideration is granted.
Assessment Feedback: The tutor will be grading the assignment and will provide the information to the student in the software/websites available.
Feedback for the auto graded assessment will be provided through online learning tool(s).
Grade Type Description
Standards Based Assessment Final grades in this unit are awarded at levels of HD for High Distinction, DI (previously D) for Distinction, CR for Credit, PS (previously P) for Pass and FA (previously F) for Fail as defined by University of Sydney Assessment Policy. Details of the Assessment Policy are available on the Policies website at . Standards for grades in individual assessment tasks and the summative method for obtaining a final mark in the unit will be set out in a marking guide supplied by the unit coordinator.
Special Conditions to Pass UoS It is a policy of the School of Information Technologies that in order to pass this unit, a student must achieve at least 40% in the formative assessment and 40% in the final exam. A student must also achieve an overall final mark of 50 or more. Any student not meeting these requirements may be given a maximum final mark of no more than 45 regardless of their average.
Policies & Procedures: IMPORTANT: School policy relating to Academic Dishonesty and Plagiarism.

In assessing a piece of submitted work, the School of IT 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 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 on Resources: There is a prescribed text for this unit. Others are highly recommended.

The text is used to provide extra support for reading and practice and its exercises are an excellent way to study for this unit.

Each chapter also has a graphics supplement, which is not required material but it is intended that they will provide a suitable challenge for students looking to stretch themselves.

Note that the "Weeks" referred to in this Schedule are those of the official university semester calendar

Week Description
Week 1 Lecture: Introduction to the unit, fundamental concepts
Lecture: Variables, Types, If Statements, Input
Week 2 Lecture: Loops and Static Methods
Lecture: Objects: Arrays and Strings
Week 3 Lecture: Classes, Objects and UML Class DIagram
Lecture: Methods and I/O
Week 4 Lecture: Object layout, stack, references and garbage collector
Lecture: Java collections, ArrayList and Hashmap
Assessment Due: Quiz 1
Week 5 Lecture: Class inheritance and encapsulation
Lecture: Class overloading and constructor inheritance
Week 6 Lecture: Abstract classes and interfaces
Lecture: Polymorphism and method overriding
Week 7 Lecture: Generics and type checking
Lecture: Collection interfaces
Assessment Due: Assignment 1
Week 8 Lecture: Exception generation and creation
Lecture: JUnit and Unit Testing, JDB
Week 9 Lecture: Open recursion and memoization
Assessment Due: Quiz 2
Week 10 Lecture: Functional programming (Lambdas)
Lecture: Java Stream API and Recusion
Week 11 Lecture: Java idioms and gotchas
Lecture: Further OO testing with inheritance/polymorphism to match design document
Week 12 Lecture: Java packaging and UML package space
Lecture: Libraries and dependencies
Assessment Due: Practical Assessment
Week 13 Lecture: Review, Exam structure
Lab: Revision
Assessment Due: Assignment 2
Exam Period Assessment Due: Final Exam

Course Relations

The following is a list of courses which have added this Unit to their structure.

Course Year(s) Offered
Bachelor of Advanced Computing/Bachelor of Commerce 2018, 2019
Bachelor of Advanced Computing/Bachelor of Science 2018, 2019
Bachelor of Advanced Computing/Bachelor of Science (Health) 2018, 2019
Bachelor of Advanced Computing/Bachelor of Science (Medical Science) 2018, 2019
Bachelor of Advanced Computing (Computational Data Science) 2018, 2019
Bachelor of Advanced Computing (Computer Science Major) 2018, 2019
Bachelor of Advanced Computing (Information Systems Major) 2018, 2019
Bachelor of Advanced Computing (Software Development) 2018, 2019
Software Mid-Year 2018, 2019
Software/ Project Management 2019
Software 2018, 2019, 2016
Software / Arts 2018, 2019, 2016
Software / Commerce 2018, 2019, 2016
Software / Project Management 2018, 2016
Software / Science 2018, 2019, 2016
Software/Science (Health) 2018, 2019
Software / Law 2018, 2019, 2016
Bachelor of Project Management (Software) Mid-Year 2018
Bachelor of Project Management (Software) 2018
Software/Science (Medical Science Stream) 2018, 2019
Bachelor of Computer Science & Tech. Mid-Year 2016, 2017
Biomedical Mid-Year 2016, 2017, 2018, 2019
Biomedical 2016, 2017, 2018, 2019
Electrical Mid-Year 2019
Electrical 2019
Software / Medical Science 2016
Software / Music Studies 2016
Bachelor of Computer Science and Technology 2016, 2017
Bachelor of Computer Science and Technology (Advanced) 2016, 2017
Bachelor of Information Technology 2015, 2016, 2017
Bachelor of Information Technology/Bachelor of Arts 2015, 2016, 2017
Bachelor of Information Technology/Bachelor of Commerce 2015, 2016, 2017
Bachelor of Information Technology/Bachelor of Medical Science 2016, 2017
Bachelor of Information Technology/Bachelor of Science 2015, 2016, 2017
Bachelor of Information Technology/Bachelor of Laws 2015, 2016, 2017

Course Goals

This unit contributes to the achievement of the following course goals:

Attribute Practiced Assessed
Communication (Level 1) Yes 0%
Information Seeking (Level 1) Yes 0%
Maths/Science Methods and Tools (Level 2) No 0%
Engineering/IT Specialisation (Level 1) Yes 100%
Design (Level 2) Yes 0%

These goals are selected from Engineering & IT Graduate Outcomes Table which defines overall goals for courses where this unit is primarily offered. See Engineering & IT Graduate Outcomes Table 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.