Credit points: 15

Subject outline

Students are introduced to advanced application development. Focus are on both design and implementation. Strong emphasis is to be made in applying the principle of separation-of-concerns consistently across three common types of application platforms: standalone, web and mobile platforms. Topics covered include design issues; design patterns; data-persistence; socket programming; event-driven programming and graphical user interfaces; platform frameworks; designing, implementing and testing standalone, web and mobile applications.

SchoolSchool Engineering&Mathematical Sciences

Credit points15

Subject Co-ordinatorNasser Sabar

Available to Study Abroad StudentsYes

Subject year levelYear Level 4 - UG/Hons/1st Yr PG

Exchange StudentsYes

Subject particulars

Subject rules

Prerequisites CSE1IOO or CSE4IOO


Incompatible subjects CSE3OAD

Equivalent subjectsN/A

Special conditionsN/A

Graduate capabilities & intended learning outcomes

01. Apply the principle of separation of concerns and the three-tiered architecture to design and implement applications

In the lectures, we introduce and discuss the principle of separation of concerns, and relate this principle to the three-tiered achitecture. We show examples in which the principle is violated and how that leads to serious consequences. Such examples can be drawn from Java programs or PhP applications to enhance students' awareness. Then, taking those examples, we show how the principle of separation of concerns can be applied to improve the design, improve the quality of the implemented application, facilitate the testing, and at the same time, improve on the efficiency of the overall development process. In the labs, students are given examples, and asked to identify flaws in design and provide solution to improve the design. Students then proceed to implement the design, or part of i

02. Explain the concept of socket programming and their role in implementing servers, and apply Java mechanisms for socket programming to implement simple servers

In the lectures, the students are introduced to the concept of socket, how socket forms the basis for the client-server architecture. Students are introduced to Java supports for socket programming, and examples are provided to show how sockets/servers can be implemented. In the labs, students are given a number of simple protocols and are required to implement sockets to meet the requirements of those protocols. One of the aims is for students to gain an understanding of the basis on which servers, such as database servers and web servers, are built.

03. Explain design patterns and their importance in application developement, understand a number of selected patterns in detail and apply them to application development

Students learn the concept of design patterns, their history and wide-spread influences. Some patterns, e.g. the Singleton and Model-View-Controller patterns are studied in depth, with emphasis on the practical benefits and how they can be exploited for application development. Students practise using patterns that have been studied in depth for practical problem solving.

04. Apply JDBC technology to build databases and business logic layer which provides the required operational functionalities and enforces relevant business rules

Students learn JDBC (Java Database Connectivity), using MySQL as a database server. Through examples, students learn how to build database and the business logic layer, which should provides all the required functionality and enforces all the relevant business rules to ensure the correctness of the database. Students are given problems (i.e. application requirements) to practise creating databases and building business logic layers that meets the given requirements. Students also practise designing and applying tests to verify that the logic layer actually satisfies the requirements.

05. Apply event-driven programming techniques to design and implement standalone GUI applications and web client programming

Students learn the concept and the techniques of event-driven programming in the context of graphical user interfaces. Students apply techniques of event-driven programming to create applications with graphical user interfaces. They also practise applying the principle of separation of concerns, and the Model-View-Controller patterns, to those applications.

06. Systematically apply the Model-View-Controller pattern, and the relevant technologies (servlet, JSP, AJAX, and RESTful web service) to develop and test web applications

Students learn a variety of up-to-date web technologies (servlets, JSP, AJAX, RESTful web service). Students learn how to systematically use those technologies to build web applications. Students learns how to use those technologies to support good designs based on Model-View-Controller pattern. Students practise applying web tecghnologies to develop web applications.

07. Apply the Model-View-Controller pattern, and the relevant technologies (Android programming) to develop (and test) mobile applications

Students learn the concepts and techniques for mobile application development, using Android platform. They learn how the Model-View-Controller patterns are supported by Android programming. Students practise using Android programming to develop mobile applications. NOTE: The assignments play a significant role in achieving this and other ILOs. In the assignments, students are required to develop applications and thoroughly test them. The solutions require students to use and intergrate all the relevant concepts and techniques they learn and practise in the lectures and the labs.

Subject options

Select to view your study options…

Start date between: and    Key dates

Melbourne, 2018, Semester 2, Day


Online enrolmentYes

Maximum enrolment sizeN/A

Enrolment information

Subject Instance Co-ordinatorNasser Sabar

Class requirements

Computer Laboratory Week: 31 - 43
One 2.0 hours computer laboratory per week on weekdays during the day from week 31 to week 43 and delivered via face-to-face.

Lecture Week: 31 - 43
Two 1.0 hours lecture per week on weekdays during the day from week 31 to week 43 and delivered via face-to-face.


Assessment elementComments% ILO*
3-hour examination60 01, 02, 03, 04, 05, 06, 07
Design and programming assignment 1 (approximately 800 words)15 01, 03, 04, 05
Design and programming assignment 2 (approximately 1,200 words)25 01, 03, 06, 07