C.W. Johnson, BSc Monash, PhD ANU
Senior Lecturer and Head of Department
How do people understand and use computers? The subject matter of the computing discipline has many names, including software engineering, computer science, informatics, information systems, information technology, and computer programming. The discipline is only young, and the nature of the subject has been debated many times since the first electronic computers and the foundation of the first professional association in 1947. The nature of the discipline has changed in that time from a focus on computer hardware in a very small number of uniquely designed computers, and the highly specialised mathematical algorithms that were programmed into them, to the graphically interfaced, largely non-numerical, general purpose commodity computing of todays information technology industry. The focus of that industry has shifted from details of interaction with computers to the breadth of interaction with people, and so has the computing discipline broadened to include the ways in which its professional graduates apply computing to the information needs of organisations and individuals.
Information Technology is the common global term which covers all aspects of computing, data storage, and communications the generality of equipment, systems and services that involve the use of computers, advanced telecommunications, and digital electronics. The IT industry is now reckoned to be the worlds largest. Although the Departments name continues to refer to Computer Science, it is a centre for the study of wider aspects of IT: software engineering, which is the profession of designing and constructing complex groups of programs; information systems, which involves the ways in which computer systems are meshed with organisations; as well as computer science, the systematic study of the fundamental algorithms and processes behind the technology. The department provides professional, technical, and service courses in these areas and introductory information technology for students in many areas of the university.
Department Aims and Objectives
The Department aims to produce graduates with a professional education in Software Engineering and a four year professional Software Engineering degree course will be offered for the first time in 1999. This includes technical, professional, communications skills, individual and group project work on a sound basis of mathematics and computer science. A pass degree or a degree with honours can be awarded after four years of study. The Faculty plans to gain professional accreditation for this course from the Institution of Engineers, Australia, as an engineering degree.
The Faculty also offers a three-year technical and professional degree course, the Bachelor of Information Technology, in combination with the Faculty of Economics and Commerce. BInfTech students can choose to specialise in a software development stream or an information systems stream. The BInfTech course can also be combined with courses in Commerce or with Economics for a four year combined degree program which aims to provide a professional, business-oriented education. It can be combined with the Bachelor of Engineering course for five years of study that includes more computing within a full multidisciplinary Engineering degree.
Many of the same computer science and software development units can be taken within the more generalist Bachelor of Science degree. Students can thereby combine study of a Science subject with as much computing as they wish.
A fourth year of honours study can be added to the BSc and the BInfTech. In all these degrees, the Department aims to produce first class honours graduates who can enter postgraduate studies at leading international computer science laboratories.
The Department has an active research program and educates Master of Science and PhD students by research. Details are provided in the companion Graduate School Handbook.
Introductory units
The Department offers several units that can be taken by students with no previous background in computing or information technology. COMP1900 is an information technology service unit offered for the first time in 1999, which provides a university-level introduction to applied computing for students in any area who wish to use computers in their studies or their careers but do not necessarily need to study computer programming. COMP1200 provides a broad perspective on the field of computing for those with a deeper interest in the underlying science and technology, and it is a required part of the Information Technology degrees. COMP2200 introduces the communication skills and other professional background for the Software Engineering degree.
COMP1100 provides an introduction to computer programming, both as a service course and as a foundation for all further studies in information technology. It requires a prerequisite of secondary college mathematics, but does not require any previous computing experience. COMP1110 provides further study of programming and software engineering, consolidating the study of constructing larger programs. It leads to further software development and software engineering studies.
COMP2400 can be taken in first year, following COMP1100. It provides an introduction to the use of databases and to their underlying technology. This unit can be used as part of a major in Commerce as well as contributing to Information Technology and Software Engineering degrees.
Further Information
Further information on the units offered and the structures of the courses
is available from the Departments World Wide Web site, at
http://cs.anu.edu.au and the Department
of Computer Sciences entry in the Faculty of Sciences entry in this Handbook.
Unit details
The courses offered by the Department of Computer Science are being reviewed and updated. All of the first year units (1000 series) are new units in 1999. Most of the 2000 and 3000 series units listed here will be offered for the last time in 1999, except for the new units COMP2200, COMP2300 and COMP2400.
Introduction to Programming and Algorithms COMP1100
(6cp) Group A
First Semester
Thirty lectures, six 1-hour tutorials, six 2-hour laboratories.
Prerequisites: ACT Advanced maths major or NSW 2 unit maths or equivalent
Incompatible: COMP1011, ENGN1002, ENGN1213
Syllabus: An introduction to the syntactic and execution characteristics of a modern programming language, along with its use in the construction and execution of complete programs that solve simple algorithmic problems. Introduction to the basic ideas of algorithmic problem solving and programming, using principles of top-down design, stepwise refinement, and procedural abstraction. Basic control structures, data types, and input/output conventions. Flow of control in programming languages in evaluating expressions and executing statements.
Foundations of Software Engineering COMP1110
(6cp) Group A
Second Semester
Thirty lectures, six 1-hour tutorials, six 2-hour laboratories.
Prerequisites: COMP1100 or COMP1011
Incompatible: COMP2031, ENGN2003, ENGN1223
Syllabus: Introduction to methods and techniques for verification and validation of software systems. Introduction to the foundations and use of recursive algorithms in problem solving. Basic machine representations of numeric and non-numeric data. Structured data types, abstract data types and their applications. System life-cycle, modularization, and construction of large systems.
Perspectives on Computing COMP1200
(6cp) Group A
First Semester
Thirty lectures, 12 tutorial/laboratories
Prerequisites: none
Syllabus: This unit presents the important concepts in the computing discipline and places them in context, in order to introduce the nature of the computing profession and the education of a computing professional.
The unit covers the following topics, through case studies.
Abstractions and the user view: the interactive machine, the stored-program machine, data, programming languages and virtual machines, computational objects.
Applications of computer systems: personal computation, application software, information systems, knowledge-based systems, real-time control.
Computer systems and their environment: the personal computer, networked computers and concurrency, the world-wide web.
The nature of the computing discipline: mathematical theory, scientific experimentation and engineering design.
Professional issues: the engineering of software systems, the client focus, professional ethics.
Educational issues: curriculum issues, the ANU experience.
Art and Science of Computing I COMP1800
(0cp) Group E
Full year
Occasional seminars
Prerequisites: Enrolment in BSEng or approval of Head of Department
Syllabus: The Art and Science of Computing I is a seminar-style program. It consists of about 4 events per semester, such as seminars from visiting or staff academics, or discussion or debate sessions on topical subjects. Other sessions might include learning and studying skills, talks from industry representatives, department and unit overviews, hot topics, and surveys. It aims to involve staff and students in debate on computing issues. Some sessions will be led by staff from areas such as the library, counselling, study skills, and other university resource centres.
Events in ASC I will be targetted to those students in first year.
ASC I is assessed by attendance, with a grade of satisfactory awarded on attendance at 75% or more of the events.
Introduction to Information Technology Applications COMP1900
(6cp) Group A
First Semester (May be offered in Second Semester also)
20 lectures, 6 practice
laboratories
Prerequisites: none (cannot be taken after successful completion of COMP1011, COMP1100 or INFS1014).
Syllabus: An introduction to the basic concepts and skills of computer literacy through modern applied information technology. Word processing, macros, styles; spreadsheets, data manipulation and display; World Wide Web information searching, indexing, meta-searching; data management, folders, good data management practices. Practical project work will be done in supervised personal computer laboratory sessions.
Operating Systems Fundamentals COMP2029
(4cp) Group B
First semester
Twenty lectures, six 2-hour tutorial/laboratory sessions
Prerequisites: COMP1011 and COMP1012 and 12 credit points of 1000-series mathematics or mathematical statistics units.
Incompatible with COMP2036, COMP2032
Corequisite: COMP2031
Syllabus: This unit is concerned with the fundamental issues of computational process and process support that are pervasive through the layered view of computer systems from computer architecture to user services, but which are conventionally associated with the operating system layer.
The following topics are addressed: system structure and dynamic execution, device and communications management, memory management, file management, process management, language system support for concurrency, process interaction, semaphores, mutual exclusion.
Distributed Systems Fundamentals COMP2030
(4cp) Group B
Second semester
Twenty lectures, six 2-hour tutorial/laboratory sessions
Prerequisites: COMP2029 and COMP2031
Incompatible with COMP2032
Syllabus: This unit is concerned with the fundamental issues of computational process and process support in the context of distributed systems and distributed applications, rather than in the context of conventional singleprocessor systems.
The following topics are addressed: interprocess communication, message passing, crash resilience and persistent data, distributed interprocess communication, deadlock and livelock, transactions, locking and time stamping, recovery, distributed transactions, concurrent programming.
Construction of Program Systems COMP2031
(4cp) Group B
First semester
Twenty lectures, five 2-hour tutorial/laboratory sessions
Prerequisites: COMP1011; one of COMP1012, COMP1013 or INFS1014; and 12 credit points of 1000-series mathematics or mathematical statistics units
Syllabus: This unit introduces students to the tools and techniques fundamental to the construction of program systems of industrially relevant size and complexity. The various phases of the software life cycle are examined before considering the problems of design, implementation, testing and maintenance in more depth. The fundamental strategies of abstraction, decomposition and reuse are employed throughout the course as methods to combat the difficulty of constructing large or complex software systems. Particular attention is paid to the object-oriented approach to software construction.
The unit necessarily has a strong practical emphasis, and gives the student experience of developing components for larger software systems. The unit extends the students programming skills with knowledge of the Java and C programming languages, and provides experience with tools that support the software engineering process.
Data Structures and Algorithms COMP2033
(4cp) Group B
First semester
Twenty lectures, six 2-hour tutorial/laboratory sessions
Prerequisites: COMP1011 and COMP1013 and 12 credit points of 1000-series or mathematical statistics units
Syllabus: This unit gives an overview of standard data structures, their implementations, and algorithms for manipulating them.
The following topics are addressed: lists, stacks and queues, binary trees, Btrees and other balanced trees, hash tables, sets, graphs, sorting, and basic algorithm analysis and complexity theory.
Programming Language Acceptors COMP2037
(4cp) Group B
Second semester
Twenty lectures, six 1-hour tutorial/laboratory sessions
Prerequisites: COMP2031 and COMP2033.
Incompatible with COMP2034
Syllabus: This unit studies program acceptors, which enable high-level programs to be executed (either directly via interpretation or indirectly through compilation). Of particular concern are the internal data structures involved in various subsystems of acceptors, and the sophisticated algorithms on those structures.
The following topics are addressed: architecture for language acceptors: analysis phases, intermediate structures, interpretation or compilation; lexical analysis: regular expressions, NDFA and DFA scanners; syntactic analysis: grammars, top-down parsers, bottom-up parsers; runtime structures: static allocation, stack and heap allocation, garbage collection; code generation techniques; software tools for language acceptors.
Design of Program Systems COMP2038
(4cp) Group B
Second semester
Twenty lectures, six 1-hour tutorial/laboratory sessions
Prerequisites: COMP2031
Syllabus: This unit addresses fundamental ideas in the design and construction of programs of nontrivial size. It focuses on the notion of design as a process which makes a selection between feasible alternatives, and on design as an outcome of that process.
The following topics are addressed: the notion of design: decomposition into entities, realisation as program modules, module relations (consists-of, imports-from, depends-on); design abstractions: procedural abstractions, data abstractions, object abstractions; design architectures: sequenced components, event-driven, exception handling; design descriptions: languages and notations, standards; design evaluation, control of quality.
Relational Database Management Systems INFS2051
(4cp) Group B
First semester
This unit will not be offered in 1999
Twenty lectures, six
2-hour tutorial/laboratory sessions
Prerequisites: COMP1011; either INFS1014 or INFS2012; and 12 credit points of 1000-series mathematics or mathematical statistics units.
Incompatible with INFS3055
Syllabus: Information systems depend materially on the integrity and maintainability of appropriately defined data stores. The principal subject matter of this unit is the realisation of data stores in the framework of the relational model.
The following topics are included: the architecture of database management systems; the translation of conceptual models to particular database systems; DBMS access schemes and techniques for query optimisation; integrity constraints; recovery techniques, concurrency control; security issues.
Internet and Intranet Information Systems INFS2052
(4cp) Group B
First semester
Twenty lectures, six 2-hour tutorial/laboratory sessions
Prerequisites: COMP1011; either INFS1014 or INFS2012; and 12 credit points of 1000-series mathematics or mathematical statistics units
Incompatible with INFS3056
Syllabus: This unit studies the methods of open access to data and processes over computer networks, along with the security aspects of this access.
The following topics are included. Introduction to open systems and the OSI networking layer structure. Representation independence, data encryption. Data and access security and authentication methods. Foundations of Internet and OSI applications: electronic mail, hypertext transfer protocol, World Wide Web system architecture and operation. Mobile code functions and security. Information technology standards: ISO and other standardisation, conformance and acceptance.
Technical Communication and Professional Context COMP2200
(6cp) Group E
First Semester
Thirty lectures
Prerequisites: Enrolment in BSEng or permission of Head of Department.
Syllabus: About one third of this unit is dedicated to technical communication (verbal and written) for computing professionals. The purpose is to equip students with the necessary skills to communicate technical information to customers and colleagues with the necessary clarity and simplicity.
The unit will also cover the various social and ethical responsibilities of the computing professional. These include professional ethics, concern for information security and privacy, whistle-blowing, the role of professional societies, social responsibilities, knowing ones own limitations, the continuity of professional advancement, the role of the professional in educating society, and technical consultancy in public policy issues.
Legal issues will form a third focus of the unit, including risks and liabilities and intellectual property.
Introduction to Computer Systems COMP2300
(6cp) Group B
Second Semester
This unit will not be offered in 1999
Thirty lectures and
six 2-hour laboratory/tutorial sessions
Prerequisites: COMP1100 or COMP1011; and 6 cp math
Incompatible: COMP1012
Syllabus: An introduction to the hardware and software components of a modern computer system. Comparisons of different types of instructions sets and corresponding addressing modes. Emphasis on the relationships among instruction sets, fetch and execute operations, and the underlying architecture. Introduction to the concept of interrupts, as well as the purpose and specifications of a control unit with respect to logic operations. Consideration of the physical implementation of large memory systems, together with the techniques of data storage and checking. Overall concepts of virtual memory, operating system functions, file systems and networks.
Introduction to Technology of Information Systems COMP2400
(6cp) Group B
Second Semester
Thirty lectures, six 2-hour laboratory/tutorials
Prerequisites: COMP1100 or COMP1011; and 6 credit points mathematics or mathematical statistics
Incompatible: INFS2051, INFS3055
Syllabus: Introduction to the basic goals, functions, models, components, applications, and social impact of database systems applications. The unit introduces the relational model and the database query language SQL. Entity-Relationship Diagrams are introduced as a tool for conceptual modeling. Effective mapping of a conceptual model to a relational schema requires some appreciation of role of integrity constraints, and the impact of DBMS access schemes and query optimisation techniques.
Software Engineering COMP3018
(8cp) Group C
Second semester
Forty lectures, one hundred and thirty hours of project
work
Prerequisites: 16 credit points of 3000-series computer science or information systems units, including at least 8cp from COMP3036, COMP3037, COMP3043, COMP3065
Syllabus: This unit provides an introduction to the main themes of software engineering via the study of a textbook and selected readings. More importantly, it develops software engineering skills by student participation in a semester-long project working in a small group. The whole group is involved in the detailed design and the construction phases of the project (including documentation).
The following topics are covered: nature of the software product (inherent difficulties, inevitability of change); the software process and its management; software engineering principles (separation of concerns, modularity, anticipation of change, abstraction, formality and rigour); the specification phase and its methodologies; the design phase and its methodologies; techniques for implementation and validation. Project participation provides an introduction to the following: task specification and commitment in the group context; writing and presentation skills; project documentation.
Special Project COMP3019
(8cp)
Both semesters
Forty lectures and twelve tutorials
Prerequisites: Enrolment in the BInfTech(Science) degree program. The approval of Head of Department of Computer Science and the approval of Head of the associated science department is required.
Syllabus: This is a capstone unit in the Science program of the degree of Bachelor of Information Technology. That program involves both a Computer Science major and a major in a science discipline. This unit consists of coursework and supervised project work which pursues an application of information technology in the associated science discipline.
Design of Digital Circuits and Microprocessor Systems COMP3020
(8cp) Group C
Full Year
Thirty-six lectures and twelve tutorial/laboratory sessions in
semester 1; thirteen lectures and twelve 3-hour tutorial/laboratory sessions
in semester 2
Prerequisites: 16 cp of 2000-series computer science units including COMP2029, and 8 cp of 2000-series mathematics or mathematical statistics units
Syllabus: This unit is offered by the Department of Engineering as Digital Design ENGN3001 and Microprocessor Systems ENGN3008. See Department of Engineering section for details.
Computer Networks COMP3036
(4cp) Group C
First semester
Twenty lectures, six 2-hour tutorial/laboratory sessions
Prerequisites: 16cp of 2000-series COMP or INFS units including COMP2031 and either COMP2030 or COMP2038, and 8 cp of 2000-series mathematics or mathematical statistics units
Syllabus: This unit studies the standard models for the layered approach to communication between autonomous machines in a network and the main characteristics (data transmission protocols) for the lower layers.
The following topics are included: ISO Open Systems Interconnect model; the physical layer and media (RS232, coaxial cable, twisted pair, fibreoptic); the data link layer (error detection and recovery, logical link control, medium access control); the network layer (datagrams, point to point models, Local Area Network models, virtual circuits); internetworking and routing; the transport layer service; Internet IP and TCP protocols and associated systems software.
Operating Systems Implementation COMP3037
(4cp) Group C
First semester
Twenty lectures, six 3-hour laboratory sessions
Prerequisites: 16cp of 2000-series COMP or INFS units, including COMP2030 and COMP2038, and 8cp of 2000-series mathematics or mathematical statistics units
Syllabus: This unit takes a detailed look at an existing operating system to see how each part is constructed and integrated into the whole; the system of choice is MINIX. The lectures will also address recent literature describing advances in operating systems.
The following topics are addressed: process management and coordination, implementation of message passing, memory management, interrupt handling, realtime clocks, device-independent input/output, serial-line drivers, network communication, disk drivers, deadlock avoidance, scheduling paradigms, file systems.
Interactive User Interfaces COMP3043
(4cp) Group C
First semester
Twenty lectures, six 2-hour laboratory sessions
Prerequisites: 16cp of 2000-series COMP or INFS units including COMP2038, and 8cp of 2000-series mathematics or mathematical statistics units
Syllabus: This unit covers the principles behind human-computer interface design and develops competence in the specification and construction of user interfaces.
The unit addresses the following topics: the human modalities such as visual, tactile, and their influence on user interface design; components of interaction (direct manipulation, form fill-in, menu selection and command language); characteristics of human computer interaction; design methodologies; user interface programming (graphical interfaces and software systems, the X Window System, interaction toolkits); user interface design tools; interface and application integration.
Principles of High Performance Computing COMP3061
(4cp) Group C
Second semester
Twenty lectures, four 2-hour tutorial/laboratory sessions
Prerequisites: 16cp of 2000-series COMP or INFS units including COMP2029 and COMP2030, and 8cp of 2000-series mathematics or mathematical statistics units. Alternatively, Year 2 of the BE program and ENGN3008.
Syllabus: This unit provides an introduction to the main principles and elements of High Performance Computing, including vector and parallel processing. It examines the principles of high performance computer architectures, and how an algorithm interacts with such architectures. It also looks at practical methods of estimating and measuring algorithm/architecture performance.
The following topics are addressed: general high performance computing concepts and architectural principles, scalar and vector architectures and their memory structure, performance issues including the vectorizability and parallelizability of algorithms, program analysis techniques for high performance computing, parallel computing paradigms and issues, and message passing paradigms.
Advanced Databases COMP3062
(4cp) Group C
Second semester
Twenty lectures, six 2-hour tutorial/laboratory sessions
Prerequisites: Either INFS2051 or INFS3055; 16cp of 2000-series COMP or INFS units including COMP2038 or COMP2030; and 8cp of 2000-series mathematics or mathematical statistics units.
Incompatible with INFS3053
Syllabus: This unit involves the study of concepts underlying object-oriented database technology and related research issues.
The following topics are addressed: semantic data modelling, object-oriented database programming languages, object control concepts and physical object-base design. Extended relational and object-oriented database systems will also be introduced.
Formal Languages, Computability and Complexity COMP3063
(4cp) Group C
May not be offered in 1999
Second semester
Twenty lectures, six 1-hour tutorials
Prerequisites: COMP2037; and 8cp of 2000-series honours mathematics units.
Incompatible with COMP3031 and COMP3034
Syllabus: This unit continues the study of the theory of languages, the machines that recognise them, and the grammars that generate them. This includes the study of problems not solvable by any machine. Also covered is an introduction to complexity theory, which investigates the time and space resources needed for computations.
The following topics will be addressed: classification of languages, automata and grammars, and the relationships between them; Turing machines; determinism and nondeterminism; the theoretical limits of computation; the complexity classes P and NP; NP-completeness.
Advanced Algorithms: Implementation and Analysis COMP3064
(4cp) Group C
First semester
Twenty lectures, six 2-hour tutorial/laboratory sessions
Prerequisites: 16cp of 2000-series COMP or INFS units including COMP2031 and COMP2033, and 8cp of 2000-series mathematics or mathematical statistics units
Syllabus: This unit continues the study of algorithms for the solution of practical problems, and of the data structures used in their implementations.
Topics covered will include the following: dynamic programming, divide and conquer, exhaustive search, graph algorithms, and the basics of numerical computing. As well as studying implementations, the mathematical tools used to analyse the resource usage of algorithms will be considered.
Declarative Programming Paradigms COMP3065
(4cp) Group C
First semester
Twenty lectures, six 2-hour laboratory/tutorial sessions
Prerequisites: 16cp of 2000-series COMP or INFS units including COMP2037, and 8cp of 2000-series mathematics or mathematical statistics units.
BE/BIT and BE/BSc combined course students may enrol without COMP2037.
Incompatible with COMP3039, COMP3040
Syllabus: This unit introduces the student to the two important programming paradigms: functional and logic programming. It studies the theory of the paradigms and provides practical experience in using the logic programming language, Prolog, and a representative modern functional language in the construction of declarative solutions to a range of combinatorial problems. The concepts embodied in such languages are contrasted with those that underpin imperative or procedural languages.
The lectures on functional programming address the following topics: applicative structure, lambda calculus, higher-order functions, clausal form and pattern matching, continuations, type inferencing, eager and lazy evaluation, structural induction. The study of logic programming considers these topics: the structure of Prolog programs, backtracking, unification, nonlogical aspects of Prolog, applications in artificial intelligence.
Formal Semantics and Programming COMP3066
(4cp) Group C
Not offered in 1999
Second semester
Twenty lectures, six 2-hour tutorial/laboratory
sessions
Prerequisites: COMP3065
Incompatible with COMP3039
Syllabus: This unit studies four fundamental techniques for specifying semantics of a programming language using some formal calculus and introduces the student to the important applications. In general, these arise because of the need to construct programs that provably meet their specifications.
The topics covered are computational logic, Hoare logic, predicate transformers, denotational semantics, natural semantics, the relationships between the foregoing, program verification, formal program synthesis, refinement calculus and program transformation, mechanical generation of language processing tools.
Computational Science and Engineering COMP3067
(4cp) Group C
Second semester
Twelve lectures, ten 2-hour tutorial/laboratory sessions
Prerequisites: Either (i) year 2 of the BE program or (ii) 32 credit points 2000-series science units including MATH2011 or MATH 2013, and COMP2031 and COMP2033 or (iii) equivalent preparation approved by the Head of Department.
Incompatible with MATH3103 Scientific Computation.
Syllabus: This unit is targeted at computing students with a particular interest in scientific and engineering applications, and science and engineering students with a particular interest in numerical computation. A practical approach to solving realworld problems will be emphasised over purely theoretical considerations.
The following topics will be addressed: the FORTRAN 90 programming language; basic numerical methods including curve fitting, integration, root finding and the solution of ordinary and partial differential equations; the visualisation, analysis and modelling of scientific and engineering data; problem formulation and abstraction; the engineering of numerical software; applications of high-performance computing.
Object-Oriented Systems Analysis INFS3047
(4cp) Group C
First semester
Twenty lectures, five 2-hour laboratory/tutorial sessions
Prerequisites: 16cp of 2000-series COMP or INFS units including INFS2051, and 8cp of 2000-series mathematics or mathematical statistics units.
Incompatible with INFS2047
Syllabus: This unit provides a practical introduction to analysis methodologies that are object-oriented. The essential rationale for the requisite components of a number of such methodologies will be taught together with some techniques for their application. As always, the emphasis of applying any such methodology is to create, from the original requirements, a semiformal representation or model of a system specification that is unambiguous, consistent and understandable. The various techniques for achievement of such specifications often seem straight forward and even conceptually simple. However, despite the apparent simplicity of a technique, students will discover that a good deal of effort and diligence is required to produce accurate, meaningful and easily modifiable specifications. Whenever possible, computer-aided modelling tools will be used to reinforce the various concepts that are covered in this course.
The following topics are addressed: software development lifecycle, system/software specifications, data, state and behavioural models, use case techniques, analysis scenarios, object specifications, state specifications, process specifications, object communication, object interactions, object associations and aggregations, supertypes and subtypes, attribute dictionary.
Object-Oriented Systems Design INFS3048
(4cp) Group C
Second semester
Twenty lectures, five 2-hour laboratory/tutorial sessions
Prerequisites: INFS3047
Incompatible with INFS2048
Syllabus: This unit provides a logical continuation to INFS3047. Whereas during the analysis phase of a project, a system/software developer needs to concentrate on specifying (accurately) what a system has to be able to do, during the design phase these specifications are used as the starting point in establishing alternatives of how a system should be implemented. This unit provides a practical introduction to some object-oriented design methodologies that can be used to create both the design architecture and the detailed structure of a software system. The essential mechanisms for creating a design from an analysis specification will be taught and applied. Whenever possible, computer aided modelling tools will be used to reinforce the various concepts that are covered in this course.
The following topics are addressed: software development lifecycle, architecture, design scenarios, abstract and concrete classes, superclass/subclass, state model implementations, class structure charts, class communication, class dependency, inheritance, polymorphism, dynamic binding, design attribute dictionary, object-oriented languages.
Database Management Systems INFS3055
(4cp) Group C
First semester
This unit will not be offered in 1999
Twenty lectures, six 2-hour tutorial/laboratory sessions
Prerequisites: 8cp of 2000-series COMP units and 8cp of 2000-series INFS units, or 16cp of 2000-series INFS units. The information systems units are to be chosen from INFS2042, 2043, 2024, 2047, 2048.
BE/BInfTech and BE/BSc combined course students may enrol with 16 credit points of B-level computer science units.
Syllabus: Information systems depend materially on the specification, integrity and maintainability of data stores. The realisation of data stores from particular conceptual models lies at the centre of design and implementation of such stores.
The following topics are included: the structure of database management systems; translation of conceptual models to particular database systems; DBMS access schemes and techniques for query optimisation; integrity constraints; recovery techniques; concurrency control; security issues.
Computer Science Honours COMP4001
Full Year
Prerequisites: Enrolment in the BSc Honours degree, with specialisation in computer science
Syllabus: The program consists of a coursework component and a project component, of equal weight. The coursework component involves units in advanced aspects of the computing discipline, which in recent years have been drawn from: architecture of parallel systems, artificial intelligence, computational logic, algorithms, object oriented databases, programs for parallel computer systems, formal aspects of software engineering, software engineering project, document technologies, automated reasoning. The project component involves a substantial individual project under detailed academic supervision. A formal thesis is submitted (nominally 10,000 words), and a seminar is presented.
Information Technology Honours INFT4001
Full Year
Prerequisites: Enrolment in the BInfTech Honours degree
The program consists of a coursework component and a project component, of equal weight. A students individual course program is selected in consultation with the BInfTech honours coordinator.
The coursework component involves units in advanced aspects of the computing discipline and information systems. The coursework is drawn from the fourth year honours courses in Computer Science (see the COMP4001 unit description), Information Systems (see the entry in Faculty of Economics and Commerce), and other Science departments.
The project component involves a substantial individual constructive project under detailed academic supervision. Several formal project reports are submitted for assessment.