# Australian Vocational Education and Training/ICTPRG527 Apply intermediate object-oriented language skills
## ICTPRG527 - Apply intermediate object-oriented language skills

This unit describes the skills and knowledge required to undertake intermediate level programming tasks using an object-oriented programming language.It applies to programmers in a variety of fields who are required to produce programs in object-oriented languages.

## Objectives
### Elements and Performance Criteria

After studying this unit you will be able to:
* Build applications using the provided language utilities
** Review the program requirements
** Divide multiple source-code files into logical units and packages
** Use at least two of the utilities of the target language, allowing for the internal storage of collections of data
** Use the utilities of the target language, providing internal data-sorting and searching facilities
** Employ integrated-development environment facilities, to make files to automate program building
** Follow the guidelines for developing maintainable code, adhering to coding standards
** Use the facilities in the language for persisting objects to binary files
** Use the operator and function or method overloading facilities available in the language, at an introductory level
** Use exception-handling techniques to ensure program stability
** Use of a class that is based on multiple inheritances
* Write programs that interact with a database
** Design and implement programs that connect to a database
** Design and implement programs that use the language facilities to extract, update, and delete data stored in a database
** Design and implement programs that use the language facilities to manipulate database structure (query, create and delete)
** Write programs that deliver transactional integrity
* Write the graphical user interface
** Employ the graphical user interface (GUI) framework, or text windowing interface, appropriate to the chosen language
** Use standard GUI components
** Use the facilities within the language for GUI objects to respond to user and program-generated events
* Debug the application
** Use stand-alone debugging tools, or tools provided by the integrated development environment, to examine variables, and trace the running code
** Use the debugger to detect logical and coding errors
** Use the tracing of code and examination of variable contents during execution, to detect and correct errors
* Test the application
** Design and document limited tests of code
** Undertake limited testing of the produced code to ensure that it complies with the program specification
** Capture and document the test results
* Create and maintain documentation
** Read and interpret the supplied design document, to create the code
** Create and maintain program documentation

## Readings
### Build applications using the provided language utilities

* overloading in php
* exception handling in php
* inheritance in php

### Write programs that interact with a database

* php connect to mysql
* mysql transactions

### Debug the application

* debugging php using the netbeans ide
* using simpletest for unit testing php

### Create and maintain documentation

* how to generate PHP documentation using ApiGen with NetBeans IDE
Find links to add to this section on the ntisthis.com links page

## Activities

Before you start make sure you've registered and know , then try these activities:
* Click on the 'Discuss' tab at the top of the page and introduce yourself
* Rewrite one of the Elements or Performance Criteria in the Objectives section in plain language. Imagine that it starts with the words: "After studying this subject I will be able to..." For example a performance criteria that reads: "Work area is prepared to support efficient installation of sewage discharge pipes" is full of puff. It could be changed to read: "Set up a work area for installing sewage discharge pipes"
* Find relevant links and add them to the Readings section. When adding a link use the Edit Summary field to comment on why you chose that link and which objectives it addresses.
* Create and/or link Key Terms to relevant articles in WikiCommons, Wikibooks, Wikipedia or Wiktionary
* Add a quiz question to the Review section. This could be based on any of the objectives, required skills and knowledge or key terms. Or you could base it on information found via the links in the readings section. Here are some tips for writing better quiz questions.
* For bonus marks, write a challenge and add it to the Challenges section.