2002 Undergraduate Handbook

Part 4 Faculty of Engineering and
Information Technology

Contents

Introduction 373

Bachelor of Engineering 373

Bachelor of Information Technology 376

Bachelor of Software Engineering 378

Departments

Computer Science 380

Engineering 389

 

Faculty of Engineering and Information Technology

Dean: Professor John Baird, BSc ANU, PhD ANU

Introduction

The Faculty of Engineering and Information Technology was established in 1993 and comprises the Department of Engineering and the Department of Computer Science.

The Faculty represents the commitment of the ANU to developments in engineering and information technology, and recognises the strength of the university's undergraduate and graduate programs in these disciplines. The Australian National University has a world-wide reputation in many fields including computing and engineering. Each of the two departments in the Faculty is a key participant in two Cooperative Research Centres funded jointly by the Australian Government and industry to carry out collaborative research.

Further information is available on the Faculty Web site: http://feit.anu.edu.au

Undergraduate Courses Offered

Degree course

Usual course duration (yrs)

Bachelor of Engineering

4

Bachelor of Engineering (Communication Systems)

4

Bachelor of Engineering (Mechatronic Systems)

4

Bachelor of Engineering (Manufacturing and Mechanical Systems)

4

Bachelor of Engineering (Materials and Mechanical
Systems)

4

Bachelor of Engineering (Semiconductor Electronics)

4

Bachelor of Engineering (Sustainable Energy Systems)

4

Bachelor of Engineering (Photonic Systems)

4

Bachelor of Engineering (Environmental Systems)

4

Bachelor of Software Engineering

4

Bachelor of Information Technology

3

Bachelor of Engineering/Bachelor of Science

5

Bachelor of Engineering/Bachelor of Information
Technology

5

Bachelor of Engineering/Bachelor of Arts

5

Bachelor of Asian Studies/Bachelor of Engineering

5

Bachelor of Commerce/Bachelor of Engineering

5

Bachelor of Engineering/Bachelor of Economics

5

Bachelor of Commerce/Bachelor of Information
Technology

4

Bachelor of Economics/Bachelor of Information
Technology

4

Bachelor of Information Technology/Bachelor of
Science (Forestry)

5

Course Prerequisites
Bachelor of Engineering
ACT

(a) Advanced Mathematics Extended major/minor and Physics major or

(b) Advanced Mathematics Extended double major and Physics minor

NSW

(a) 3 unit Mathematics; and 2 unit Physics or 4 unit Science or

(b) 4 unit Mathematics and 3 unit Science

Bachelor of Information Technology
ACT

Satisfactory performance in a major in Advanced Mathematics

NSW

Satisfactory performance in 2 unit Mathematics

Bachelor of Software Engineering
ACT

Advanced Mathematics Extended major/minor

NSW

3 unit Mathematics

Bachelor of Engineering

(course code 4700)

The ANU Bachelor of Engineering degree programs are four-year, IEAust accredited undergraduate programs that integrate selected areas of electrical and mechanical engineering with computer systems and engineering management to produce well-rounded and multi-skilled engineering professionals. The systems engineering approach at ANU is underscored by technological trends which cut across boundaries between traditional disciplines of engineering and computer science.

Aims of the BE degree programs

The aim of the BE degree programs is to prepare students for successful careers as professional engineering managers, designers, analysts, educators and researchers.

Building on a foundation of basic science and engineering fundamentals, the four-year BE degree programs focuses on the following major disciplines:

  • communication systems
  • robotics and computer vision
  • manufacturing and management systems
  • materials and mechanical systems
  • semiconductor electronics
  • sustainable energy systems
  • photonic systems
  • environmental systems

The program of study is the same for all students in the first year, with specialisation opportunities starting in year 2 through the selection of at least one of the major disciplines listed above, appropriate professional electives and project work.

It is the aim that the BE graduate: has a sound and broad knowledge of basic science and engineering; is able to communicate effectively with engineers and the general public; has the capacity to acquire in-depth discipline knowledge; is able to use common sense, scientific and engineering knowledge to identify, formulate and solve problems; is able to use a systems approach to engineering analysis, design, operation and management; is able to contribute to a multidisciplinary and multicultural team; is conscious of the social, cultural, global, environmental, legal and business aspects of engineering, including a commitment to the principles of sustainable development; has an understanding of the responsibilities of an inclusive and socially aware engineering professional, including a commitment to the IEAust Code of Ethics, life-long learning and continuing professional development.

These attributes are engendered by: formal courses in basic science, engineering fundamentals, engineering management and law; discipline courses that introduce students to the cutting edge of selected areas of engineering; hands-on experience in the analysis, design and development of telecommunications, manufacturing, energy and management systems; final-year project work which is relevant to industry research, development, operations and management; emphasis in all units on the functions, goals and wider context of engineering; teaching and assessment processes which reflect the importance of written and oral communications, project and design work; small-group teaching that encourages collaborative learning and problem solving; group laboratory, analysis and design exercises; and a student seminar program.

Students may specialise through the choice of Engineering majors and electives, other University electives and named degrees

Practical Experience

The Institution of Engineers, Australia (IEAust) specifies that students are required to complete at least 60 days of engineering work experience during the course through approved professional employment taken in the vacation periods. For details, see entry for ENGN4005 Practical Experience.

Bachelor of Engineering -- program requirements

The BE degree program requires the completion of at least 192 credits points of courses including:

1. 48 units of the following professional development courses:
ENGN1211 Discovering Engineering (6 units)
ENGN2225 Systems Design (6 units)
ENGN3211 Investment Decisions & Financial Systems (6 units)
(or specified equivalent: BUSN1002 or ASHI2021 or ASHY2041 or ASHI2023 or POLS1004 or ECHI1105 or ECHI1106)
ENGN3221 Project & Operations Management (6 units)
ENGN4200 Individual Project (12 units)
ENGN4221 Systems Engineering Project (6 units)
ENGN4611 Engineering Law (6 units) (or specified equivalent: BUSN1101 or ASHI2268 or POLS1002 or ECHI1105 or ECHI1106) (6 units)
ENGN4005 Practical Experience (0 units)

2. 78 units of engineering discipline courses listed in Schedule 1, including ENGN1221 Electromechanical Technologies (6 units), ENGN1215 Introduction to Materials (6 units) and at least one engineering discipline major (42 units)

3. 12 units of mathematics, being
MATH1013 Mathematics & Applications 1 (or MATH1115) (6 units)
MATH1014 Mathematics & Applications 2 (or MATH1116) (6 units)

4. 12 units of computing, being
COMP1100 Intro to Programming & Algorithms (6 units)
COMP1110 Foundations of Software Engineering (6 units)

5. 6 units of physics, being
PHYS1101 Advanced Physics I (6 units)

6. 36 units of courses offered by the University.

7. The degree program may not include more than 60 units of 1000-series courses.

Engineering Majors
The faculty offers six engineering majors that may be selected in terms of fulfilling item 2 of the BE degree requirements.

Communication Systems

ENGN1221

Electromechanical Technologies

6 units

ENGN2211

Electronic Circuits &Devices

6 units

ENGN2223

Signals & Systems

6 units

ENGN3214

Telecommunication Systems

6 units

ENGN3226

Digital Communications

6 units

ENGN4535

Communication Networks

6 units

ENGN4536

Mobile Communications

6 units

TOTAL

 

42 units

 

Electronics and Semiconductors

ENGN1221

Electromechanical Technologies

6 units

ENGN2211

Electronic Circuits & Devices

6 units

ENGN2224

Electronics

6 units

ENGN3213

Digital Systems and Microprocessors

6 units

ENGN3225

Power Electronics

6 units

ENGN4519

Semiconductor Materials and Devices

6 units

ENGN4507

Semiconductor Technology

6 units

TOTAL

 

42 units

 

Robotics & Computer Vision

ENGN1221

Electromechanical Technologies

6 units

ENGN2211

Electronic Circuits & Devices

6 units

ENGN2223

Signals & Systems

6 units

ENGN3213

Digital Systems and Microprocessors

6 units

ENGN3223

Control Systems

6 units

ENGN4627

Robotics

6 units

ENGN4528

Computer Vision

6 units

TOTAL

 

42 units

 

Manufacturing and Management Systems

ENGN1215

Introduction to Materials

6 units

ENGN2214

Mechanics of Materials

6 units

ENGN2221

Systems Dynamics

6 units

ENGN3212

Manufacturing Technologies

6 units

ENGN3222

Manufacturing Systems

6 units

ENGN4615

Finite Element Analysis

6 units

ENGN4532 or

ENGN4530 or

ENGN4528

Logistics and Operational Systems OR

Engineering and Public Policy OR

Computer Vision

6 units

TOTAL

 

42 units

 

Materials and Mechanical Systems

ENGN1215

Introduction to Materials

6 units

ENGN2214

Mechanics of Materials

6 units

ENGN2221

Systems Dynamics

6 units

ENGN2222

Thermal Energy Systems

6 units

ENGN3224

Energy Systems Engineering

6 units

ENGN4601

Engineering Materials

6 units

ENGN4511

Composite Materials

6 units

TOTAL

 

42 units

 

Sustainable Energy Systems

ENGN1221

Electromechanical Technologies

6 units

ENGN2211

Electronic Circuits and Devices

6 units

ENGN2224

Electronics

6 units

ENGN2222

Thermal Energy Systems

6 units

ENGN3224

Energy Systems Engineering

6 units

ENGN4524

Solar Energy Technologies

6 units

ENGN4516

Sustainable Energy Systems

6 units

TOTAL

 

42 units

Note: Subject to student enrolment the above listed courses may not be offered each year.

Science majors and named engineering degrees

The 36 units of courses under Item 6 of the BE program requirements may be used by students to further their interests in other subject areas. The Faculty of Engineering and Information Technology has developed named engineering degrees in photonic systems and in environmental systems by incorporating non-engineering majors offered by the Faculty of Science in fulfillment of the requirements under Items 5 and 6 of the BE program requirements. These are the Photonic Systems major and the Environmental Systems major. Note that these majors cannot be counted towards Item 2 of the BE program requirements.

Note that the corresponding named degrees BE (Photonic Systems) and BE (Environmental Systems) may only be taken as a single degree, not as a combined degree.

 

Photonic Systems

PHYS1101 and

PHYS1201

Advanced Physics I and II

12 units

PHYS2013

Quantum Mechanics

6 units

PHYS2017

Laser and Photonic Fundamentals

6 units

PHYS2016

Electromagnetism and Continuum Mechanics

6 units

PHYS3031

Light and Matter Interaction

3 units

PHYS3050

Optical Fibre and Waveguide Transmission

3 units

PHYS3051

Devices for Optical Systems and Networks

3 units

PHYS3052

Electro-Optics

3 units

TOTAL

 

42 units

 

Environmental Systems

PHYS1101

Advanced Physics I

6 units

GEOG2106

Introduction to Greenhouse

6 units

 

Five recommended courses in Geographic Sciences,

or five courses in Human Systems,

or five courses in Renewable Materials,

or five courses in Geological and Soil Systems

30 units

TOTAL

 

42 units

Note: For details on the four different course patterns that may be followed satisfying the requirements of the Environmental Systems major please refer to the Engineering website http://engn.anu.edu.au or contact the Faculty of Engineering and IT.

Named Bachelor of Engineering Degrees

In addition to the interdisciplinary Bachelor of Engineering degree, students may be eligible to enroll in one the following named degrees. The specification of a named degree is optional.

 

Degree Program

Requirements

Bachelor of Engineering (BE)

No major specified, although at least one must

be completed.

BE (Communication Systems)

Must include the Communication Systems major.

BE (Mechatronic Systems)

Must include both the Robotics and Computer Vision major and the Manufacturing and Management Systems major.

BE (Semiconductor Electronics)

Must include the Electronics and Semiconductors major.

BE (Manufacturing and Management Systems)

Must include the Manufacturing and Management Systems major.

BE (Materials and Mechanical Systems)

Must include the Materials and Mechanical Systems major.

BE (Sustainable Energy Systems)

Must include the Sustainable Energy Systems major.

BE (Photonic Systems)*

Must include both the Communication Systems

major and the Photonic Systems major

BE (Environmental Systems)*

Must include both the Sustainable Energy Systems

major and the Environmental Systems major.

* Not available as part of a combined degree program.

Schedule 1: Engineering Discipline Courses

ENGN1215 Introduction to Materials 6 units

ENGN1221 Electromechanical Technologies 6 units

ENGN2211 Electronic Circuits and Devices 6 units

ENGN2214 Mechanics of Materials 6 units

ENGN2221 System Dynamics 6 units

ENGN2222 Thermal Energy Systems 6 units

ENGN2223 Signals and Systems 6 units

ENGN2224 Electronics 6 units

ENGN3212 Manufacturing Technologies 6 units

ENGN3213 Digital System and Microprocessors 6 units

ENGN3214 Telecommunications 6 units

ENGN3222 Manufacturing Systems 6 units

ENGN3223 Control Systems 6 units

ENGN3224 Energy Systems Engineering 6 units

ENGN3225 Power Electronics 6 units

ENGN3226 Digital Communications 6 units

ENGN4535 Communication Networks 6 units

ENGN4536 Mobile Communications 6 units

ENGN4627 Robotics 6 units

ENGN4528 Computer Vision 6 units

ENGN4507 Semiconductor Technology 6 units

ENGN4519 Semiconductor Materials and Devices 6 units

ENGN4615 Finite Element Analysis 6 units

ENGN4532 Logistics and Operational Systems 6 units

ENGN4601 Engineering Materials 6 units

ENGN4511 Composite Materials 6 units

ENGN4524 Solar Energy Technologies 6 units

ENGN4516 Sustainable Energy Systems 6 units

ENGN4526 Optimal Filtering and Control 6 units

ENGN4512 Digital Signal Processing 6 units

ENGN4530 Engineering and Public Policy 6 units

ENGN4533 Biomedical Engineering 6 units

The Bachelor of Engineering degree with Honours

Honours grades in the BE degree are awarded by the Faculty on the basis of a recommendation from the Head of Engineering and may be awarded with first class honours; second class honours, division A; or second class honours, division B.

The awarding of honours in engineering is based on meritorious performance over the entire four year program. The assessment of meritorious performance is based on the calculation of an average percentage mark (APM). The APM for Years 1, 2, 3 and 4 is the average, weighted according to unit value, of each ENGN1xxx, ENGN2xxx, ENGN3xxx and ENGN4xxx course respectively. The APM for Year 4 is the average mark awarded in ENGN4611, ENGN4221 and in each completed course unit from the engineering professional electives list.

The weighting factors 0.1, 0.2, 0.35 and 0.35 respectively, are used for the Years 1, 2, 3 and 4 APMs to give the overall APM.

Standard Bachelor of Engineering program pattern

 

First semester

 

Second semester

 

Year 1

48 units

ENGN1211 Discovering Engineering

6 units

ENGN1221 Electromechanical Technologies

6 units

MATH1013 Mathematics & Applications 1

6 units

MATH1014 Mathematics & Applications 2

6 units

PHYS1101 Advanced Physics I

6 units

ENGN1215 Introduction to Materials

6 units

COMP1100 Introduction to Programming OR

University elective

6 units

COMP1110 Foundations of Software Engineering OR

ENGN1225 Chemistry Fundamentals (3 units) and

ENGN1226 Modern Physics (3 units) OR

University elective

6 units

Year 2

48 units

MATH2305 Calculus and Differential Equations OR

University elective

6 units

ENGN2225 System Design

6 units

Engineering major

6 units

Engineering major

6 units

Engineering elective

6 units

Engineering elective

6 units

University elective OR

COMP1100 Introduction to Programming

6 units

University elective OR

COMP1110 Foundations Software Engineering

6 units

Year 3

48 units

ENGN3211 Investment Decisions (or equivalent)

6 units

ENGN3221 Project Operations and Management

6 units

Engineering major

6 units

Engineering major

6 units

Engineering elective

6 units

Engineering elective

6 units

University elective

6 units

University elective

6 units

Year 4

48 units

ENGN4200 Individual Project

12 units

ENGN4221 Systems Engineering Project

6 units

ENGN4611 Engineering Law (or equivalent)

6 units

Engineering major

6 units

Engineering major

6 units

Engineering elective

6 units

University elective

6 units

Detailed recommendations for enrolment patterns for all BE programs including named degrees and majors are available on the Department of Engineering web site http://engn.anu.edu.au

Combined degrees
All BE combined degrees are 5 EFTSU, 5-year programs comprising 240 units:

BE

 

Bachelor of Science

BE (Communication
Systems)

 

Bachelor of Information Technology

BE (Mechatronic Systems)

 

Bachelor of Commerce

BE (Semiconductor
Electronics)

may be combined with one of

Bachelor of Economics

BE (Manufacturing and Management Systems)

 

Bachelor of Asian Studies

BE (Materials and Mechanical Systems)

 

Bachelor of Arts

BE (Sustainable Energy
Systems)

 

 

The named degrees BE (Photonic Systems) and BE (Environmental Systems) are not available as combined degrees.

Bachelor of Information Technology

(course code 3701)

The Bachelor of Information Technology is a three-year degree that prepares graduates to enter the computing industry work force as novice practitioners to develop software or to apply computing in human organisations. The graduate attains the technical knowledge of fundamentals of computer systems, programming languages, computer systems, computer applications, and information systems. The computing industry has always been subject to very rapid change, and so we also aim to prepare graduates to meet the changes in practice and in technology that will be met during their working careers. The graduate can enter the fields of software development and support, information systems development and support, or many other broad areas of choice in computing or general industry.

The BInfTech degree is organised to allow a flexible choice between an Information Systems stream and a Software Development stream. Both streams are founded on an introduction to computer programming, a broad perspective on the computing discipline and profession, and an introduction to the functional structure of computers. Both also require at least 18 units of mathematics, which is a means of developing the ability to work with abstractions, a fundamental requirement for understanding and applying ideas in computing.

In later years of the course, students can choose the Software Development stream, to develop the conceptual and practical skills for software development and the technology of computer systems, or the Information Systems stream to develop understanding of organisations, the management of computer systems applications in them, and the accompanying systems analysis and design.

Course requirements

The degree requires the completion of 144 units of courses offered, or approved by, the Faculty of Engineering and Information Technology, including:

(a) completion of 90 units of IT courses (including the IT courses from Schedule 1 and the IT courses from a major chosen from Schedule 2), comprising a total of:

  • 18 units of 1000-series IT courses, and
  • 24 units of 2000-series IT courses, and
  • 42 units of 3000/4000-series IT courses, and
  • 36 units of 3000-series IT courses, and
  • a further 12 units of IT courses;

(b) completion of MATH1005 or alternatives as listed in Schedule1;

(c) completion of MATH1003 or alternatives as listed in Schedule 1 and 6 units of 2000-series mathematics courses;

(d) completion of a further 12 units of 2000/3000/4000-series IT courses;

(e) completion of a further 24 units of courses offered within the university, including the non-IT courses listed under the chosen major from Schedule 2;

(f) no more than 60 units of 1000-series courses may be included.

IT courses are:

COMP courses

INFS courses

ENGN1211 Discovering Engineering

ENGN2225 System Design

ENGN3213 Digital Systems and Microprocessors

ENGN3214 Telecommunications

ENGN3226 Digital Communications

ENGN4512 Digital Signal Processing

ENGN4528 Computer Vision

Schedule 1

COMP1100 Introduction to Programming and Algorithms

COMP1200 Perspectives on Computing or ENGN1211 Discovering Engineering

COMP1110 Foundations of Software Engineering

COMP2300 Introduction to Computer Systems

COMP2600 Formal Methods in software Engineering

COMP3110 Software Analysis and Design

MATH1003 Mathematical Modelling 1 or MATH1013 Mathematics and Applications 1 or MATH1115 Mathematics and Applications 1 Honours

MATH1005 Mathematical Modelling 2 or MATH1014 Mathematics and Applications 2 or MATH1116 Mathematics and Applications 2 Honours

Schedule 2
Information Systems

COMP2400 Relational Databases

INFS2024 Information Systems Analysis

INFS3024 Information Systems Management

BUSN1101 Introduction to Commercial Law

12 units from:

a) BUSN1001 Business Reporting and Analysis and BUSN1002 Accounting Processes and Systems

b) ECON1101 Microeconomics 1 and ECON1102 Macroeconomics 1

c) ECHI1005 Business and Economy in the Asia-Pacific Region and ECHI1006 Australian Economy

Software Development

COMP2100 Software Construction

COMP2110 Software Design

COMP3100 Software Engineering Group Project

BUSN1001 Business Reporting and Analysis or ENGN3211 Investment Decisions and Financial Systems

The BInfTech with Honours

The BInfTech degree with honours requires an additional year of study after the pass degree of BInfTech. Admission is by invitation based on performance in your best 36 units of 2000 and 3000 series Information Technology and Mathematics units and generally requires an average performance at better than Credit level. The honours program includes advanced coursework and a major individual project worth 50% of the year. Honours grades are awarded on the result of the whole year's work.

BInfTech (3701:SD) possible enrolment pattern

 

First semester

Second semester

Year 1

COMP1100 Introduction to Programming and Algorithms

COMP1200 Perspectives on Computing

MATH1003 Mathematical Modelling 1

COMM1010 Financial Accounting Fundamentals

COMP1110 Foundations of Software Engineering

COMP2400 Relational Databases

MATH1005 Mathematical Modelling 2

1000-elective (6 units)

Year 2

COMP2100 Software Construction

COMP2300 Intro to Computer Systems

2000-series MATH

1000-elective (6 units)

COMP2110 Software Design

2000/3000/4000-series IT (12 units)

2000-elective (6 units)

COMP2600 Formal Methods in Software Engineering

Year 3

COMP3100 SE Group Project

COMP3110 Software Analysis and Design

3000/4000-series IT (12 units) [1]

IT elective (6 units)

COMP3100 SE Group Project

3000/4000-series IT (12 units) [1]

2000/3000/4000-series IT (6 units)

[1] Some 3000/4000-series IT electives may have specific prerequisites that are not covered by the units specified in the table.

BInfTech (3701: IS) possible enrolment pattern

 

First semester

Second semester

Year 1

COMP1100 Introduction to Programming and Algorithms

COMP1200 Perspectives on Computing

MATH1003 Mathematical Modelling 1

1000-elective (6 units) [1]

COMP1110 Foundations of Software Engineering

COMP2400 Relational Databases

MATH1005 Mathematical Modelling 2

1000-elective (6 units) [1]

Year 2

INFS2024 Information Systems Analysis

COMP2300 Intro to Computer Systems

2000-series MATH

2000-elective (6 units)

COMM1101 Intro to Commercial Law

2000/3000/4000-series IT (12 units)

COMP2600 Formal Methods in Software Engineering

Year 3

INFS3024 Information Systems Management

COMP3110 Software Analysis and Design

3000/4000-series IT (12 units) [2]

IT elective (6 units)

3000/4000-series IT (18 units) [2]

IT elective (6 units)

[1] 1000-electives to be chosen from one of the following 12 units options: COMM1010/1020 or ECON1001 or ECHI1005/1006.

[2] Some 3000/4000-series IT electives may have specific prerequisites that are not covered by the units specified in the table.

Bachelor of Software Engineering

(course code 4708)

The Bachelor of Software Engineering is a four year degree which will be accredited by the Institution of Engineers, Australia. The course emphasises the development of professional skills in the technical area of software engineering, that is, the systematic application of analysis, design, and construction techniques for computer systems and applications.

The computing industry has grown very rapidly in the last 40 years, despite a widely acknowledged, continual state of crisis in our abilities to manage reliably the process of developing software. The need for a mixture of technical computing knowledge with the skills of the computer programmer, and the disciplined organisation and judgement of the professional engineer, has been seen as desirable for many years.

The introduction of the Bachelor of Software Engineering degree in 1999 was aimed to meet this need.

The BSEng graduate will acquire technical knowledge of the fundamentals of computer systems, programming languages, and the mathematical foundations of algorithms and data structures that are required to establish reliability and safety in software. Technical knowledge is honed by a selection of advanced technical topics. The principles and practices of the design and implementation of software are built up in a sequence of units combining theoretical study and practical laboratory exercises, individual projects, and group projects. Of no less importance is an introduction to the professional skills of a competent engineer: management, communication with others and teamworking in particular, and ethical and other responsibilities. Graduates will also build their own skills of individual software development in university studies and in practical work experience which is required during the course, and will learn a systems approach developed and exemplified in individual and group project work.

Mathematics is an essential component of the degree for developing the languages and ability for abstraction that is the core of the computing discipline, and to allow rigorous formal description of aspects of the software engineering process. Discrete mathematics also has significant applications in the modelling and rigorous description of software properties, computing processes and programming languages.

The best computing professionals are informed by knowledge of a wider field than computing alone. The course includes the choice of a major line of study in another discipline in the university which can broaden the understanding of the social and cultural responsibilities of the software engineer, and strengthen the ability to communicate with others, or may be used to specialise in further fundamental sciences, or in specialised engineering streams. Both develop the capacity for lifelong learning by exposure to a broader range of ways of studying at university level.

Course requirements

The BSEng degree requires completion of 192 units including

(a) completion of 114 units of core BSEng courses as follows:

COMP1100 Introduction to Programming and Algorithms

COMP1110 Foundations of Software Engineering

COMP2100 Software Construction

COMP2200 Technical Communication and Professional Context or ENGN1211 Discovering Engineering

COMP2300 Introduction to Computer Systems

COMP2310 Concurrent and Distributed Systems

COMP2400 Relational Databases

COMP2600 Formal Methods in Software Engineering

COMP3500 Software Engineering Individual Project

COMP3110 Software Analysis and Design

COMP3600 Algorithms

COMP4510 Software Engineering Team Project Part I

COMP4520 Software Engineering Team Project Part II and ENGN4221 Systems Engineering Project OR COMP4530 Software Engineering Team Project

COMP1800, COMP2800, COMP3800 Art and Science of Computing I, II, III

COMP4800 Industrial Experience

ENGN3211 Investment Decisions and Financial Systems

ENGN4211 Engineering Law

MATH1013 Mathematics and Applications 1 or MATH1115 Mathematics and Applications 1 Honours

MATH1014 Mathematics and Applications 2 or MATH1116 Mathematics and Applications 2 Honours;

(b) completion of a further 30 units of Information Technology courses, with at least 15 units of 4000-series courses, selected from Tables A, B and C as follows:

  • 18 units from Table A
  • 6 units from Table B
  • 6 units from Table C;

(c) completion of 2000-series mathematics units to the value of 6 units;

(d) completion of further Science or Engineering units to the value of 12 units, excluding those offered by Computer Science;

(e) completion of a further 30 units, including at least 6 units of 3000- or 4000-series courses and not more than12 units of 1000-series courses, from anywhere in the university.

(f) no more than 60 units of 1000-series courses may be included.

IT units are COMP and INFS courses, ENGN3213, ENGN3214.

Table A refers to Software Engineering units, Table B refers to Foundation units, Table C refers to Design units. The contents of Tables A, B and C may be changed from time to time.

Table A

COMP3120 Managing Software Development

COMP4100 Software Quality Management

COMP4110 Software Process

Table B

COMP3300 Operating Systems Implementation

COMP3310 Computer Networks

COMP3320 High Performance Scientific Computation

COMP3400 Internet, Intranet and Document Systems

COMP3410 Information Technology in Electronic Commerce

COMP3420 Database Systems

COMP3610 Principles of Programming Languages

COMP3700 Topics in Software Engineering I

COMP3710 Topics in Computer Science

COMP4120 Component-based Software Development

COMP4200 Milestone Papers in Computing

COMP4210 Usability and Design of the Human-Computer Interface

COMP4300 Parallel Systems

COMP4320 Network Security

COMP4400 Advanced Databases

COMP4410 Document Technologies

COMP4420 Networked Scientific Data Analysis and Presentation

COMP4600 Advanced Algorithms

COMP4610 Computer Graphics

COMP4620 Machine Learning and Data Mining

COMP4630 Applications of Logic in Computing

COMP4700 Topics in Software Engineering II

COMP4710 Topics in Software Engineering III

Table C

COMP2110 Software Design

Bachelor of Software Engineering with Honours

Honours grades in the BSEng will be awarded on the basis of merit.

BSEng (4708) possible enrolment pattern

 

First semester

Second semester

Year 1

COMP1100 Introduction to Programming and Algorithms

MATH1013 Mathematics and Applications 1

ENGN1211 Discovering Engineering

COMP1800 Art and Science of Computing I

1000-elective

COMP1110 Foundations of Software Engineering

MATH1014 Mathematics and Applications 2

COMP2400 Relational Databases

COMP1800 Art and Science of Computing I

1000-elective

Year 2

COMP2100 Software Construction

COMP2300 Introduction to Computer Systems

COMP2800 Art and Science of Computing II

2000-series MATH

2000-elective

COMP2110 Software Design

COMP2310 Concurrent and Distributed Systems

COMP2800 Art and Science of Computing II

COMP2600 Formal Methods in Software Engineering

2000-elective

Year 3

COMP3100 SE Group Project

COMP3110 Software Analysis and Design

ENGN3211 Investment Decisions and Financial Systems

COMP3800 Art and Science of Computing III

Science/Engn elective

COMP3100 SE Group Project

COMP3120 Managing Software Development

COMP3600 Algorithms

COMP3800 Art and Science of Computing III

Science/Engn elective

Year 4

COMP4510 Individual Project Part I (6 units)

COMP4100 Software Quality Management

ENGN4211 Engineering Law

3000/4000-series IT (3 units) [1]

3000-elective (6 units)

COMP4520 Individual Project Part II (12 units)

COMP4110 Software Process

3000/4000-series IT (6 units) [1]

[1] units to be selected from Table B. Please note that some 3000/4000-series IT electives may have specific prerequisites that are not covered by the units specified in the table.

BSEng engineering elective options

The Bachelor of Software Engineering (BSEng) program provides for students to choose: (a) 12 units Science or Engineering; (b) 30 units of courses (which must include at least 6 units at 3000-series level). The following suggestions are highlighted for BSEng students who want to consider engineering-related areas:

Telecommunications

ENGN1214, ENGN1221, ENGN2211, ENGN2223, ENGN3214, ENGN4504, ENGN4512, ENGN4542, ENGN4543, ENGN4513

Robotics and Computer Vision

ENGN1214, ENGN1221, ENGN2211, ENGN2223, ENGN3213, ENGN3223, and choose 6 units from ENGN4509, ENGN4527, ENGN4528

Manufacturing and Computational Engineering

ENGN1214, ENGN1221, ENGN2214, ENGN2221, ENGN3212, ENGN3222, ENGN4515, ENGN4518 (or, with permission, ENGN4520)

Electronics and Semiconductors

ENGN1214, ENGN1221, ENGN2211, ENGN2224, ENGN3213, ENGN4506, ENGN4507, ENGN4519, and, with permission, ENGN4520.

BSEng students who are pursuing elective interests outside the Faculty of Engineering and Information Technology are advised to consult the relevant section of the ANU Undergraduate Handbook and the relevant Sub-Dean or Departmental course adviser.

Accreditation

The Bachelor of Engineering degree is accredited to the appropriate level by the Institution of Engineers, Australia (IEAust). The Bachelor of Software Engineering degree has been submitted for accreditation with IEAust and the Australian Computer Society.

All students who complete the BInfTech degree are eligible for associate membership of the Australian Computer Society.

Combined Courses

Detailed information about courses combined with the Bachelor of Engineering or the Bachelor of Information Technology degrees is provided in the Combined Courses section of this Handbook.

Note that there are no combined courses with the Bachelor of Software Engineering.

Status

Status towards undergraduate degree courses of the Faculty may be granted for studies completed elsewhere. Requests for status are assessed individually.

Computer Science

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 today's 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 world's largest. Although the Department's 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 has been offered since 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 has submitted this course to the Institution of Engineers, Australia, for professional accreditation 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. It is also possible to combine the BInfTech course with the BSc (Forestry) 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. The specialised Bachelor of Computational Science degree combines several of these units with mathematics.

A fourth year of honours study can be added to the BSc and the BInfTech. In all of these degrees, the Department aims to produce first class honours graduates who can enter postgraduate studies at leading international computer science laboratories. A Graduate Diploma in IT for Science graduates with little computing background is also available.

The Department has an active research program and educates Master of Philosophy and PhD students by research.

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 to students in other faculties, 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 assumes a prior knowledge of secondary college advanced 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 also 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.

UNIT DETAILS
Introduction to Programming and Algorithms COMP1100
(6 units) Group A

First semester

Thirty one-hour lectures. Twelve two-hour tutorial/laboratory sessions.

Assumed prior knowledge: ACT Advanced maths major or NSW 2 unit maths or equivalent.

Incompatible with COMP1011, ENGN1002, ENGN1213

Syllabus: This unit is an introduction to the basic principles of programming from an object-oriented perspective. These principles are applied in a study of straightforward algorithms for searching and sorting. It provides a foundation for studies in computer science, information systems and software engineering. The following topics are covered: basic concepts of programming (data types, assignment, control structures, the procedural abstraction), basic concepts of object-oriented programming in Eiffel (class, object, attributes, rountines), the basic Eiffel library classes, straightforward algorithms for search and searching, object-oriented methods (class inheritance, assertions on rountines, design by contract). The unit has a strong practical emphasis, with required attendance at laboratory sessions.

Foundations of Software Engineering COMP1110
(6 units) Group A

Second semester

Twenty-six one-hour lectures and twelve two-hour tutorial/laboratory sessions

Prerequisites: COMP1100 or COMP1011

Incompatible with COMP2031, ENGN2003, ENGN1223

Syllabus: This unit introduces students to the tools and techniques for developing software systems of a size and quality of an industrially relevant nature. The unit teaches the fundamental strategies of abstraction, decomposition and reuse as methods for constructing such systems. Verification and validation techniques, with an emphasis on testing, are taught as a means to ensure that students are able to deliver software products of the quality required. In particular, the unit will cover: foundations and use of recursive algorithms in problem solving; structured data types, abstract data types and their applications; system life-cycle, modularisation, and construction of large systems. The unit will also introduce some of the theoretical fundamentals that underpin software engineering, including: logic and its application to specifications, and finite state automata.

Perspectives on Computing COMP1200
(6 units) Group A

First semester

Thirty one-hour lectures, twelve two-hour tutorial and laboratory sessions.

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
(0 units)

Full Year

About eight sessions of 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.

Introduction to Information Technology Applications COMP1900
(6 units) Group A

First semester (may be offered in second semester also)

Twenty one-hour lectures, and six two-hour assessable laboratory sessions; plus one laboratory session for marking group project

Prerequisites: Not available to students enrolled in BInfTech or BSEng. 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. Good data management and practices using files and folders; word processing using styles; data manipulation and display using spreadsheets; World Wide Web information searching; simple web site construction. Practical work will be done in supervised computer laboratory sessions.

Software Construction COMP2100
(6 units) Group B

First semester

Twenty-six one-hour lectures and twelve two-hour tutorial and laboratory sessions

Prerequisites: COMP1110 or COMP2031, and 12 units of 1000-level mathematics or mathematical statistics courses including MATH1014 or MATH1005

Syllabus: This unit is about the implementation and test phases of the software construction process. It is based around an individual project lasting the whole semester. In this project, students build a substantial application, relevant to their experience as computer users. The project is closely specified, and involves a graphical user interface. During the semester, students follow part (or all) of the Personal Software Process, learning time-management, planning, and quality control.

The following topics are covered: programming to precise specifications; the implementation milieu (configuration control, programming standards, documentation standards, literate programming, use of integrated programming environments); code review and inspections; test planning and procedures (derived from specification and design documents); object-oriented (Eiffel), procedural (C), and scripting (Bash) languages; GUI interfaces; the Personal Software Process.

Software Design COMP2110
(6 units) Group B

Second semester

Thirty one-hour lectures and twelve two-hour tutorial and laboratory sessions.

Prerequisites: COMP1110 or COMP2031, and 12 units of 1000-level mathematics or mathematical statistics courses including MATH1014 or MATH1005.

Incompatible with COMP2038

Syllabus: This unit is one of three units (COMP2100, COMP2110, COMP3110) which address constructive aspects of the software development process. It has a primary focus on the design phase.

The following topics are covered. Designing to specifications (ab initio design) and design recovery from source code (reverse engineering). The design milieu (notations, documentation standards, configuration control). Design techniques (structured, object-oriented, software architectures, design patterns). Design review and inspections. Design in the context of requirements change. Design metrics.

Technical Communication and Professional Context COMP2200
(6 units) [Not grouped for BSc]

First semester (will not be offered in 2001)

Twenty four lectures, twelve two hour design classes, and twelve tutorials

Prerequisites: Enrolment in BSEng or permission of Head of Department.

Incompatible with ENGN1211, SCOM1001

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 one's 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
(6 units) Group B

First semester

Thirty one-hour lectures and nine two-hour laboratory/tutorial sessions.

Prerequisites: COMP1110 or COMP1011; and 6 units of 1000-level MATH, STAT, EMET courses.

Incompatible with 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.

Virtual machines and the levels of machine organisation, the assembly and linking process and software libraries.

Concurrent and Distributed Systems COMP2310
(6 units) Group B

Second semester

Thirty one-hour lectures, nine one-hour tutorials/laboratory sessions.

Prerequisites: COMP2100 or COMP2300 or COMP2031; 12 units of 1000-level mathematics or mathematical statistics courses.

Incompatible with COMP2029, COMP2032

Syllabus: This unit is concerned with the issues that arise when computational processes are supported in a computer system. The scope is broad enough to include discussion of all the layers of a computer system -- from the hardware to large information systems applications, and all sizes of computer system -- from systems as small as a single processor, to systems as large as the entire Internet. The principal areas of study are processes and process coordination, concurrency support in operating systems and high level languages, and distributed systems. The following topics are addressed: operating system structure, process management, interaction between system components (processes, devices and processors), mutual exclusion, concurrent programming, semaphores and monitors, inter-process communication, distributed systems, crash resilience and persistent data, deadlock, transaction processing.

Relational Databases COMP2400
(6 units) Group B

Second semester

Thirty one-hour lectures and six two-hour laboratory/tutorial sessions

Prerequisites: COMP1100 or COMP1011; and 6 units of 1000-level mathematics or mathematical statistics or microeconomic courses.

Incompatible with 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.

Formal Methods in Software Engineering COMP2600
(6 units) Group B

Second semester

Thirty one-hour lectures, eight one-hour tutorials and four two-hour laboratory sessions.

Prerequisites: COMP1110 and 12 units of 1000-level mathematics or mathematical statistics including MATH1005 or MATH1014.

Incompatible with COMP1013.

Syllabus: This course presents some formal notations that are commonly used for the description of computation and of computing systems, for the specification of software and for mathematically rigorous arguments about program properties.

The following areas of study constitute the backbone of the unit. Predicate calculus and natural deduction, inductive definitions of data types as a basis for recursive functions and structural induction, formal language theory (particularly regular expressions, finite state machines and context free grammars), propositional programming language semantics and partial correctness, weakest preconditions and total correctness.

Art and Science of Computing II COMP2800
(0 units)

Annual

About eight sessions of occasional seminars.

Prerequisites: COMP1800 and enrolment in BSEng or approval of Head of Department.

Syllabus: The Art and Science of Computing II 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 talks from industry representatives, department and unit overviews, hot topics and surveys. It aims to involve staff and students in debate on computing issues.

As for COMP1800 except that events in Art and Science of Computing II will be targeted to those students in second year.

Software Engineering Group Project COMP3100
(12 units) Group C

Annual

Fifty one-hour lectures and 300 hours of group project work.

Prerequisites: 24 units of 2000-level COMP courses including COMP2100, and COMP2110, and 6 units of 2000-level MATH or STAT or EMET courses.

Incompatible with COMP3018.

Co-requisites: COMP3110.

Syllabus: This unit provides the student with project experience to complement the studies of the software development process in units COMP2100, COMP2110, COMP3110 and COMP3120.

Students work in small groups and participate in all the development phases (requirements analysis, design, construction, testing and documentation) of a nontrivial software system. As well, each group has to address the control of the development process by constructing and following a detailed software development management plan.

Software Analysis and Design COMP3110
(6 units) Group C

First semester

Thirty one-hour lectures and four or five two-hour laboratory sessions.

Prerequisites: 12 units of 2000-level COMP or INFS courses including at least one of COMP2110, COMP2038, COMP2400, INFS2051 and INFS3055, and 12 units of 1000-level MATH or STAT courses.

Incompatible with INFS2047, INFS2048, INFS3047, INFS3048.

Syllabus: This unit is one of three units (COMP2100, COMP2110, COMP3110) which address constructive aspects of the software development process. It has a primary focus on the software requirements and design phases. This unit provides a practical introduction to requirements analysis methods and design specification techniques that are either structured or object-oriented. The essential rationale for the requisite components of a number of such methods will be taught together with some techniques for their application. As always, the emphasis of applying any such method is to create, from a set of original requirements, a semi-formal representation or model of a system software specification that is unambiguous, consistent and understandable. The various techniques for achievement of such requirements and 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, understandable and easily maintainable specifications. Software system requirements specifications are essential for creating and trading-off design specification alternatives. There are several representations available for specifying a software design. Some of these will be discussed and applied including some very recent approaches to design that allow for the inclusion of multiple architectural alternatives and simple verification. The latest design techniques place appropriate emphasis on accurate, semi-formal models, transformation rules and direct code generation. Whenever appropriate, computer-aided modeling tools will be used to reinforce the various concepts that are covered theoretically.

Managing Software Development COMP3120
(6 units) Group C

Second semester

Thirty one-hour lectures and five two-hour laboratory sessions.

Prerequisites: COMP3110, INFS2047 or INFS3047, and 6 units of 2000-level MATH or STAT or EMET courses.

Incompatible with ENGN3221

Syllabus: This unit addresses the control of the software development process. It is a companion unit to COMP2100, COMP2110 and COMP3110, which address constructive aspects of the process. COMP3120 addresses some of the initial tasks for effectively planning and managing the development process within which the techniques introduced in those units might be used.

The following topics are covered. Choosing or tailoring a software development life cycle. Constructing a software development plan. Applying techniques and tools for determining size, effort and cost of a software development. Constructing a schedule and determining resource requirements and allocations. Identifying, assessing and managing risks (including technical, schedule and resource risks). Choosing and using metrics for different purposes such as monitoring progress, controlling resources and estimating rework.

Operating Systems Implementation COMP3300
(6 units) Group C

Second semester

Twenty-six one-hour lectures and six one-hour tutorials and six three-hour laboratory sessions.

Prerequisites: COMP2300 and COMP2310, or COMP2030, and 6 units of 2000-level mathematics or mathematical statistics or econometrics courses.

Incompatible with COMP3037.

Syllabus: This unit takes a detailed look at the services provided by, and the internals of, an existing operating system to see how each part is constructed and integrated into the whole. The lectures will also address recent literature describing advances in operating systems. The following topics are addressed: system programming and its facilities (including I/O, signals, job control, interprocess communication, sockets, transport layers, remote operations), system calls and their relation to the system libraries, process management and coordination, implementation of message passing, memory management, interrupt handling, real-time clocks, device-independent input/output, serial-line drivers, network communication, disk drivers, deadlock avoidance, scheduling paradigms, file systems, security.

Computer Networks COMP3310
(6 units) Group C

First semester

Thirty one-hour lectures and six two-hour laboratory/tutorial sessions.

Prerequisites: 12 units of 2000-level COMP or INFS courses including COMP2300 or both COMP2031 and COMP1012, and 6 units of 2000-level mathematics or mathematical statistics or econometrics.

Incompatible with ENGN4514, COMP3036

Syllabus: This unit studies the standard models for the layered approach to communication between autonomous machines in a network and the main characteristics of data communication (transmission protocols) for the lower layers. It introduces several application layer protocols from a distributed systems viewpoint, and considers alternative lower layer methods such as ATM, and problem areas in the Internet protocol suite.

The following topics are included: introduction to communication network architectures (protocol hierarchies, layered services, the OSI model); the physical layer (transmission media, signal representation, limits to data capacity); the data link layer (error detection and recovery, point-to-point protocols); the medium access layer (protocols for Local Area Networks and satellite communication); the network layer (routing algorithms, congestion control); internetworking (addressing, internetwork routing and protocols, quality of service); the transport layer (connection-oriented transport layer services and protocols); application protocols for distributed systems.

High Performance Scientific Computation COMP3320
(6 units) Group C

First semester

Thirty one-hour lectures and nine two-hour tutorial/laboratory sessions.

Prerequisites: 12 units of 2000-level COMP courses including COMP2100 or COMP2300 or COMP2031 or ENGN2003, and 6 units of 2000-level MATH, STAT or EMET courses.

Incompatible with COMP3061, COMP3067.

Syllabus: This unit provides an introduction to High Performance Computing with an orientation towards applications in science and engineering. The dominant programming language in this application domain, FORTRAN95, will be taught within the context of numerical computing and the design and construction of sophisticated scientific software. The unit will study high performance computer architectures, including vector and parallel processors, and will describe how an algorithm interacts with these architectures. It will also look at practical methods of estimating and measuring algorithm/architecture performance.

The following topics will be addressed: the FORTRAN95 programming language; basic numerical computing from aspects of floating point error analysis to algorithms for solving differential equations; the engineering of scientific software; general high performance computing concepts and architectural principles; scalar and vector architectures and their memory structure; performance and programmability issues, and program analysis techniques for high performance computing; parallel computing paradigms and programming using the OpenMP standard; trends in HPC systems.

Internet, Intranet and Document Systems COMP3400
(6 units) Group C

First semester

Thirty one-hour lectures and six two-hour tutorial/laboratory sessions.

Prerequisites: COMP1100 or COMP1011; 12 units of 2000-level IT courses; and 12 units of 1000-level MATH/