Outcomes: By completing this unit students understand several aspects of information technology, its principles and its practices. The material in this unit covers three broad areas of information technology:
General principles: Information is applied in various contexts, from business information systems to scientific computation. Students are able to differentiate between data, information and knowledge and learn how each is represented and used in modern-day applications. The functions, benefits and impact of information technology is addressed and students are able to place the historical evolution of 'computing' in context with information technology and understand the principles of computation.
Applications: Applications commonly associated with information technology are used. In particular, the principles behind spreadsheets, word processing, web browser technology and web authoring systems are taught and students become proficient in their use through laboratory-based work.
Systems: This unit covers the 'technological' aspects of information technology by investigating 'systems'. Students understand the general principles of the computer, support devices, single and multi-user operating systems, networks, client-server systems, the Internet and the rapidly emerging role of the World Wide Web.
Students develop specific attributes to undertake problem identification, formulation and solution; they can communicate effectively in the written form; develop general IT skills, understand the role of applications and the use of networks; perform effectively as an individual; and commit to lifelong learning.
Content: Concepts associated with modern information technologies are introduced. The unit combines theoretical, practical and historical material. Topics include the development of information technologies and systems, the processing and presentation of information, both textual and numeric, and web-based technologies.
Assessment: Projects are designed to demonstrate the student's capacity to formulate and implement a solution to a general data analysis problem, and to subsequently communicate this solution through a detailed report. The projects test both competence in specific information technology applications and the ability to articulate this competence through written communication and team-based work. A formal examination demonstrates their depth of understanding of the technical aspects of information technology.
To be advised
Outcomes: Students are able to demonstrate the basics of good program design through the use of abstraction, decomposition and simple equational reasoning. They develop skills in the identification, formulation and solution of problems; apply scientific principles and engineering process in the development of software; gain in-depth technical competence in software development; and develop an understanding of their professional responsibility for producing reliable software. As well, students receive encouragement to engage in lifelong learning vis-a-vis other programming languages; develop the ability to perform effectively as an individual; and develop the ability to communicate effectively with other people and with the machine.
Content: This unit covers the design of structured solutions to problems and their implementation in a modern functional language. Important topics discussed include problem decomposition, abstraction and program re-usability, recursion, and proving programs equivalent using equational reasoning. The emphasis is on the production of correct, elegant, efficient programs, so supervised practical experience in a networked laboratory is a core component. No prior knowledge of computing or programming is assumed.
Assessment: Assessment is based on individual programming assignments and an examination. The assignments develop the ability to undertake problem identification, formulation and solution; to apply basic knowledge; in-depth technical competence in functional programming; to function effectively as an individual and acquire an understanding of professional responsibilities through the submission of test data; and communication skills. The examination focuses on problem identification, formulation and solution, the ability to apply basic knowledge and in-depth technical competence. The need to undertake lifelong learning is fostered through understanding the relationship between functional languages and other programming paradigms. The assessment comprises individual assignments to demonstrate the capacity to identify, formulate and solve problems by writing reliably engineered software, and an examination demonstrates analytic and technical competence.
Semester 1 and 2
Outcomes: Students gain a basic understanding of the object-oriented model of computation and the significance of its fundamental features. They are able to identify a computational problem and design an appropriate collection of classes to solve the problem. Students should be able to implement their designs in well-structured and well-documented Java.
Content: This unit teaches the foundations of software engineering and computer programming techniques in the modern programming language, Java.
By writing a collection of simple programs, students learn the fundamentals of procedural programming including variable declarations, operations on data types, parameter passing and control flow. These programs use Java's strengths in providing facilities to write graphical programs that can be run over the web. As Java is an object-oriented language, object-oriented concepts that underlie modern software engineering such as objects, classes and events are introduced.
Assessment: This consists of 40 per cent for practical laboratory work and assessed assignments, and 60 per cent for the examination paper.