Computer science


The discipline


In our computerised society, no modern scientist, engineer or business person should be without a knowledge of computers. First-year computer science is a general introduction to computing and is suitable either for students whose major interest is in another science discipline, or students who wish to become computer scientists with an understanding of all the basic aspects of computing.
The sequence of both CSE1301, which covers basic programming skills, and CSE1303, which extends those programming skills, is highly recommended for all students, whether or not they intend to become computer scientists.
Computer science is a broad discipline, encompassing software design and programming, the actual computer machinery, the theoretical foundations, and all the applications of computing which pervade our modern society. Knowing the internal working of the machine leads to better programming. Knowing the theory of computing allows clearer thinking. This means computer scientists are able to apply their computing knowledge and general analytic skills to a wide range of tasks.
Computer scientists have a wide choice of career options; they can become programming specialists, systems designers, consultants or project managers. They can work in software development, customer support, industrial process control, information retrieval, or with communication networks. Computer scientists produce animations for the film industry (from Star Wars to Jurassic Park or The Matrix), support space shuttle missions, and work on exciting projects such as unlocking the human genetic code, virtual reality, and artificial intelligence.
Graduates who have completed a major sequence in computer science are eligible for level-one membership of the Australian Computer Society.

Major sequence

To obtain a major sequence in computer science, students should take:

First year (12 points)

In addition, students should take 12 points of approved mathematics or equivalent.

Second year (18 points)
Third year (24 points)

Transition to six-point subjects

Computer science subjects changed to a six-point structure in 1999.
Students undertaking third year in 2000 and intending to major in computer science are recommended to take the new 24-point, third-year structure (see above).

Discipline structure

First year

First-year coordinator: Associate Professor Ingrid Zukerman
The first-year subjects serve both as a general introduction to computer science and as a prerequisite for further studies. Thus they may be taken either by students wishing to major in computer science or by students whose major interest is in some other branch of science.
The first subject, CSE1301, covers basic programming skills and gives an introduction to computer science. The second subject, CSE1303, develops the understanding of algorithms, data structures and computer systems.

Second year

Second-year coordinator: Dr Lloyd Allison
Second year aims to develop a firm foundation in the fundamental concepts of computer science, namely formal methods, algorithm development and software engineering. In addition, it introduces new topics to broaden the student's view of computation and its applications.

Third year

Third-year coordinator: Dr Sid Ray
Students wishing to study a major sequence in computer science must take at least one project (CSE3301 or CSE3302) and at least 18 points of additional third-year computer science subjects. These 18 points may not include another project. It is recommended that students complete CSE3305 (Formal methods II) and CSE3322 (Programming languages and implementation). Note that students intending to undertake CSE3302 (Software engineering project) in second semester will need to complete CSE3308 (Software engineering: analysis and design) in first semester.
Students intending to proceed to honours should ensure that they have sufficient breadth to undertake the honours coursework units offered each year. It is recommended that in addition to the core project these students take CSE3305 (Formal methods II), CSE3322 (Programming languages and implementation) and three other third-year computer science electives.

Honours program in computer science

Honours coordinator: Dr Ann Nicholson
Selected students achieving an average of a distinction or better result in third-year computer science can choose to take an honours year in computer science. This honours degree is suitable for good students who want to gain a deeper understanding of computer science.
An honours degree in computer science opens many career opportunities. Students with honours are particularly sought after by employers, and can choose from more interesting research and development positions because of their extra skills and proven abilities. An honours degree also leads on to postgraduate study, which is necessary for an academic career or a career in industrial research.
To be admitted to the honours year, students require an average of a credit or better result in 24 points of third-year computer science subjects, including the project. Students should ensure that they have sufficient background to undertake the honours coursework units offered each year (see third-year entry above). Entry to the honours year is subject to quota restrictions.
Each honours student undertakes a substantial individual project which may be selected from a list suggested by the school or of the student's own devising, subject to approval. The project, worth 20 points, includes writing a thesis and giving an oral presentation. In addition students must take sufficient coursework units, each worth four points, to give a total of 48 points. Assessment is typically by practical work, written work and/or examination. Subject to approval by the coordinator, the student may replace two of these units with other subjects such as mathematics, electrical engineering, accounting or third-year computer science. It is compulsory for all students to take the communication and research skills unit.
The School of Computer Science and Software Engineering organises a regular series of seminars, often including interstate and overseas visiting computer scientists. All honours students should attend these seminars. Attendance at all seminars is a prerequisite for passing the honours course.
Units taught in the honours year vary from year to year depending on the research interests of the staff. The following is a list of units taught recently: advanced object-oriented idioms in C++; natural language processing; machine learning; neural network fundamentals; communication and research skills; telecommunications; modelling, animating and rendering: advanced topics in graphics; learning and prediction; cryptography and security; pattern recognition and image processing; parallel systems; advanced digital design; video coding and compression; formal methods in software engineering.