Course syllabus

 

Prerequisite & Restrictions

COMPSCI 105 or 107 or 130. No restrictions. GPA >= 2 required for enrolment.

Course Description

An introduction to object-oriented paradigm of designing and developing software applications. The focus of this course would be on learning good software design objectives and principles. Using Java programming language, students will learn modelling and developing software applications of reasonable complexity and quality through the application of established object-oriented design principles and patterns. In doing so, students will also demonstrate fundamental skills in object-oriented software development, GUI programming and application-level multi-threading.

Course Content

Theme (A) Java language

  • you will become confident and fluent with the Java language.

Theme (B): the object-oriented programming paradigm covers the follow topics:

  • The object-oriented paradigm, introducing objects,  methods, classes, interfaces, class hierarchies. 
  • Information hiding, abstraction, programming to interfaces, and enforcement of design intent using language features such as visibility qualifiers, constructors, constants, sealed classes, abstract classes and interfaces.
  • Data typing in object-oriented programming languages,  the principle of substitution, method overriding and overloading, polymorphism, dynamic binding, generic types.

Theme (C): Object-oriented design, covers:

  • Application of fundamental OOP concepts, introduced in theme B.
  • Object-oriented design objectives and principles
  • Design Patterns and their usage
  • Event handling and concurrency using Java GUI libraries

Expected Learning Outcomes

 Upon completion of this course the students will be able to:

  • OO Programming: describe and use the features typically offered by an object-oriented programming language, including support for classes, visibility, inheritance, interfaces, polymorphism and dynamic binding
  • OO Design: explain and apply key design principles of object-oriented software development, including separation of concerns, abstraction, information hiding, programming to interfaces, coupling and cohesion, resilience to change, and reuse
  • create simple OO design models
  • Design Patterns: develop a small graphical user interface (GUI) based application in an object-oriented programming language; Assess and improve software design decisions based on object-oriented design objectives and principles
  • Frameworks: describe important concepts of programming frameworks, including APIs, inversion of control, concurrency and event-driven programming

Requirements for passing the Course

To pass the course, as well as obtaining at least 47% for your overall mark, you are required to pass the invigilated components of the course.

  • Invigilated computer-based components: 
    • Exam: 50%;
    • Test: 20%;  The test will take place on Friday, 4th September, 6pm-8pm
    • All questions will be answered and validated using CodeRunner3.
  • Assessments: 30%.
    • Lab CodeRunner assessments: 7%
    • Assignments: 23%

Lecture Times and Locations

  • Monday 12:00noon - 1:00pm (303-G20, Sci Maths & Physics, Room G20)
  • Tuesday 12:00noon - 1:00pm (303-G20)
  • Wednesday 11:00am - 12:00noon (303-G20)

Please re-check all room allocations closer to the time on SSO as they often change around the start of semester.

Laboratory Tutorial Times and Locations

The labs are designed to give you practical experience with the concepts which you have learnt in lectures. They will include some activities to be completed during the laboratory session. You should make sure you have read through the lecture slides and have done any other preparation required before you attend the laboratory.

The laboratories are submitted using the CodeRunner website. Submissions are graded by running a series of test cases of the code in a sandbox and comparing the output of your program with the expected output. This automated testing allows you to obtain immediate feedback on your progress throughout the course. Some submissions will also be graded manually to provide further feedback. You will be able to access your exercises by logging into: https://coderunner3.auckland.ac.nz/

  • Mo 1:00PM - 2:00PM. G75
  • Mo 2:00PM - 3:00PM, G75
  • We 1:00PM - 2:00PM, G75
  • Fr 10:00AM - 11:00AM, G75
  • Fr 11:00AM - 12:00noon, G75
  • Fr 12:00noon - 1:00PM, G75

Laboratories begin in the 2nd week of semester. Please re-check all room allocations closer to the time on SSO as they often change around the start of semester.

Lecture Recordings

All lectures are recorded. There may be a delay of 1-2 days before the lecture recordings are distributed through Canvas. Note that although the lectures are recorded, some learning activities conducted in class do not translate well to the recordings. To maximize your learning opportunities, you are encouraged to attend the class in person.

Course summary:

Date Details Due