Skip to Content

COMP125: Fundamentals of Computer Science

Semester 2, 2011

Faculty: Science; Department: Computing

General Information

Credit points: 3
Convenor: Christophe Doche
Prerequisites: COMP115 (P)

Students should read this unit guide carefully at the start of semester. It contains important information about the unit. If anything in it is unclear, please consult one of the teaching staff in the unit.

About This Unit


This unit studies programming as a systematic discipline and introduces more formal software design methods. Programming skills are extended to include elementary data structures and abstract data types. There is a strong emphasis on problem solving and algorithms, including aspects of correctness, complexity and computability.

What is new?

For many years, COMP125 was taught using C++. However, this year we have decided to change the programming language and use Java instead. Java will also be used in COMP225 next year.

Teaching Staff

Role Name Email Room Consultation time
Convener, Lecturer Christophe Doche E6A 376 TBA
Lecturer Steve Cassidy E6A 377 TBA
Tutors Amara Atif TBA TBA
Matt Cabanag TBA TBA
Oldooz Dianat TBA TBA
Jojo Sze Meng Wong TBA TBA
Ukachukwu Ndukwu TBA TBA
Abeed Sarker TBA TBA

All emails related to this unit should contain COMP125 in the subject and must include your full name and your student id number.

Teaching and Learning


Each week you should attend three hours of lectures and a two-hour mixed class (a tutorial and a practical combined in a single session). For details of days, times and rooms consult the timetables webpage.

Note that Mixed Classes commence in week 1.

You should have selected a Mixed Class during enrolment. You should attend the Mixed Class you are enrolled in. If you do not have a class, or if you wish to change one, you should see the enrolment operators in the E7B courtyard during the first two weeks of the semester. Thereafter you should go to the Student Centre.

Please note that you are required to submit work regularly. You will get the help that you need in attending your Mixed Class . Failure to do so may result in you failing the unit (see the precise requirements) or being excluded from the final examination.

Resources to assist your learning

Video Lecture

Digital recordings of lectures are available. They include audio recording only and audio plus video recording of the computer screen. Read these instructions for details.


There isn't any prescribed textbook for COMP125 this semester. We suggest below a few references if you feel you need to complement the lecture notes that are provided:

  • B. Eckel, Thinking in Java (electronic book, 3rd edition available within iLearn is fine and is free but does not cover data structures)
  • A. Drozdek, Data Structures and Algorithms in Java (Cengage) 2nd edition. ISBN 9780534492526 (this book will also be used in COMP225)
  • W. Savitch, Absolute Java (Pearson) 4th edition. ISBN 9780131365896 (covers basic Java programming and data structures, ideal for COMP125 but not beyond)
  • D. Carlson, Eclipse Distilled (Addison-Wesley) 1st edition. ISBN 9780321288158 (extensive coverage of the software development platform eclipse)


  • Eclipse - download Eclipse IDE for Java Developers
  • Java SE JDK - download Java SE 6 (not 7) to be compatible with the labs
  • Note that you need the Java JDK which includes the compiler tools, rather than the Java Runtime Environment (JRE) which you might already have installed on your computer to allow you to run Java applications.
  • Learning Management System iLearn
See the resources page for more details.


The web page for this unit can be found at

Discussion Boards

The unit makes use of forums hosted within iLearn. Please post questions there, they are monitored by the staffs of the unit.

Staff-Student Liaison Committee

The Department has established a Staff-Student Liaison Committee at each level (100, 200, 300) to provide all students studying a Computing unit the opportunity to discuss related issues or problems with both students and staff.

The committee meets three times during the semester. For each meeting, an agenda is issued and minutes are taken. These are posted on the web at

If you have exhausted all other avenues, then you should consult the Head of Department (Prof. Bernard Mans). You are entitled to have your concerns raised, discussed and resolved.

Student Support Services

Macquarie University provides a range of Academic Student Support Services. Details of these services can be accessed at

Assumed knowledge

As reflected by the prerequisites, this units requires basic

  • understanding of the main components of a computer system;
  • problem solving skills to develop algorithms that solve small to medium-sized computational problems;
  • skills to design and code implementations of their algorithms in an imperative programming language;
  • standard software engineering practices to document, debug and test programs.

Topic List (to be confirmed)

Week Topic Lecturer
1 Introducing Java Steve
2 Developing and Testing Java programs Steve
3 Object Oriented Design and Development Steve
4 Search Algorithms Steve
5 Software Development Topics Steve
6 Sorting Algorithms Steve
7 Containers Types Christophe
8 Stacks and queues Christophe
9 Implementing linked lists Christophe
10 Recursive Algorithms and data structures Christophe
11 Inheritance and polymorphism Christophe
12 Software Development Topics Christophe
13 Review Both

Teaching and Learning Strategy

COMP125 is taught via lectures and Mixed classes in the laboratory. The feedback that you receive plays also a crucial role in your learning.

Lectures are used to introduce new material, give examples of the use of programming methods and techniques and put them in a wider context. Furthermore, to reinforce the nexus between teaching, research, and learning, a research topic will be discussed every week during the lectures. This additional material will not be assessed as such but may prove useful to complete the assignments.

You learn by processing concepts, not just by hearing them. Mixed Classes are small group classes in the laboratories which give you the opportunity to do exactly that by interacting with a tutor who has a sound knowledge of the subject and with your peers. This also gives you a chance to practice your programming skills.

You have many opportunities to seek for and to receive feedback. During lectures, you are encouraged to ask the lecturer questions to clarify anything you might not be sure of. Each week, you will be given problems to solve in the Mixed Classes and you will have to present solutions to the tutor. The comments and the solutions provided will help you to understand the material in the unit, prepare you for the work in assignments as well as for the final exam.

Each week you should:

  • Attend lectures, take notes, ask questions;
  • Attend your Mixed Class and seek feedback from your tutor on your work;
  • Start working on any assignment immediately after they have been released.

Lecture notes are made available each week prior to the lectures but these notes are intended as an outline of the lecture only and are not a substitute for your own notes or reading additional material.

Learning outcomes

It is expected that on completion of this unit/topic, students will
  1. demonstrate enhanced problem solving/algorithmic skills;
  2. be able to implement programs (from algorithms), showing an understanding of the underlying architecture of the computer;
  3. implement programs following standard software engineering practices (in particular document, test and debug).

See the different standards corresponding to these learning outcomes.

Graduate Capabilities

All academic programs at Macquarie University seek to develop a range of graduate capabilities. One of the aims of this unit is that students develop their skills in the following:

  • Discipline Specific Knowledge and skills
  • Effective Communication
  • Problem Solving and Research Capability
  • Creativity and Innovativity
  • Commitment to Continuous Learning


The new assessment policy and the associated code of practice imply the use of standards based assessment. In this context, the learning outcomes are aligned with the assessment tasks and the performance of each student is evaluated according to different standards.

Assessment tasks

The following tables summarizes the different aspects of the assessment in this unit. In particular, it links each task to the learning outcomes of the unit.

Task Due Date Workload Feedback Learning outcomes assessed Weight
Tutorial question End of every odd week 20 min week following submission via iLearn #1 and #2 5%
Programming exercise End of every even week 20 min week following submission via email #1, #2, and #3 5%
Assignment 1 Week 4 5 hours week 5 via email and iLearn #1,#2, and #3 6%
Assignment 2 Week 8 10 hours week 9 via email and iLearn #1,#2, and #3 12%
Assignment 3 Week 12 10 hours week 13 via email and iLearn #1,#2, and #3 12%
Mid-term test Week 7 2 hours preparation time Week 8 #1, #2, and #3 10%
Final examination TBA 5 hours preparation time NA #1, #2, and #3 50%

Note that a certain number of requirements must be fulfilled in order to pass this unit.
If you cannot complete a piece of work please see the convenor before the due date. Check also the special consideration policy.
A more detailed description of each task is given below.

Tutorial questions and programming exercises

Each week, a set of questions and programming exercises will be made available online. At the end of odd weeks (1, 3, 5, ...) you have to submit via iLearn your answer addressing a particular question. At the end of even weeks (2, 4, 6, ...) you have to write a short Java program solving a particular problem and to submit it via iLearn.


There are three assignments that are worth 30% in total. Each assignment includes different components to assess different levels of achievements. See standards for details.

You are encouraged to:

  • set your personal deadline earlier than the actual one;
  • keep backups of all your important files;
  • make sure that no-one else picks up your printouts;
  • make sure that you log off when you leave the labs.

Late work will not be accepted. If you cannot submit on time because of illness or other circumstances, please contact the lecturer before the due date.

Mid-term examination

A one hour long written examination worth 10% will be held in week 7 during class time. It will test your understanding of material covered in weeks 1 to 6. You will receive some feedback that will allow you to be better prepared for the final examination.

Final Examination

A three hour examination worth 50% will be held at the end of the semester. More details on the structure of the examination will be provided towards the end of the semester.

Regarding the examination process, note that

  • you must attend all required classes and submit all required assessment, otherwise the Executive Dean of the Faculty or delegated authority has the power to refuse permission to attend the final examination
  • the University Examination period in for End-of-Year 2011 is from Monday 14th November to Friday 2nd December 2011
  • you are expected to present yourself for examination at the time and place designated in the University Examination Timetable
  • the timetable will be available in Draft form approximately eight weeks before the commencement of the examinations and in Final form approximately four weeks before the commencement of examinations
  • no early examinations for individuals or groups of students will be set. All students are expected to ensure that they are available until the end of the teaching semester, that is the final day of the official examination period
  • the only exception to not sitting an examination at the designated time is because of documented illness or unavoidable disruption. In these circumstances you may wish to consider applying for Special Consideration.


Four standards, namely Developing, Functional, Proficient, and Advanced, summarize as many different levels of achievement. Each standard is precisely defined to help students know what kind of performance is expected to deserve a certain mark. The standards corresponding to the learning outcomes of this unit are given below:

L.O. #1
Limited ability to solve problems. Limited knowledge of basic data structures.
Ability to write simple algorithms and solve simple problems using OOD. Know basic data structures (queues, stacks, linked lists) and how to manipulate them.
Ability to write complex algorithms and solve complex problems using OOD and recursion. Ability to select the most appropriate data structures to solve a problem.
L.O. #2
Show poor programming skills. Limited ability to write code that compiles or excutes properly.
Show basic programming skills. Understand notions of compiler and virtual machine. Know types, how to implement simple conditions, simple loops, simple data structures, simple objects.
Show advanced programming skills. Understand notions of compiler and virtual machine. Know types, how to implement conditions, loops, data structures, objects. Understand inheritance and polymorphism.
L.O. #3
Unability to follow specifications. Poor coding style. Poor documentation. Submission of incorrect programs showing no sign of testing/debugging skills.
Follow simple specifications. Document code (e.g. pre-post conditions). Test and debug a simple program. Understand the notion of modularity/object file.
Understand the importance of specifications. Neat code/consistent programming style. Clear and insightful comments. Design test cases and debug programs.


At the end of the semester, you will receive a grade that reflects your achievement in the unit

  • Fail (F): does not provide evidence of attainment of all learning outcomes. There is missing or partial or superficial or faulty understanding and application of the fundamental concepts in the field of study; and incomplete, confusing or lacking communication of ideas in ways that give little attention to the conventions of the discipline.
  • Pass (P): provides sufficient evidence of the achievement of learning outcomes. There is demonstration of understanding and application of fundamental concepts of the field of study; and communication of information and ideas adequately in terms of the conventions of the discipline. The learning attainment is considered satisfactory or adequate or competent or capable in relation to the specified outcomes.
  • Credit (Cr): provides evidence of learning that goes beyond replication of content knowledge or skills relevant to the learning outcomes. There is demonstration of substantial understanding of fundamental concepts in the field of study and the ability to apply these concepts in a variety of contexts; plus communication of ideas fluently and clearly in terms of the conventions of the discipline.
  • Distinction (D): provides evidence of integration and evaluation of critical ideas, principles and theories, distinctive insight and ability in applying relevant skills and concepts in relation to learning outcomes. There is demonstration of frequent originality in defining and analysing issues or problems and providing solutions; and the use of means of communication appropriate to the discipline and the audience.
  • High Distinction (HD): provides consistent evidence of deep and critical understanding in relation to the learning outcomes. There is substantial originality and insight in identifying, generating and communicating competing arguments, perspectives or problem solving approaches; critical evaluation of problems, their solutions and their implications; creativity in application.

In this unit, your final grade depends on your performance for each component of the assessment. Indeed, for each task, you receive a mark that captures your standard of performance regarding each learning outcome assessed by this task. Then the different component marks are added up to determine your total mark out of 100. Your grade then depends on this total mark and your overall standard of performance.

Concretely, you will pass the unit, if
  • your total mark is at least 50 out of 100; and
  • you pass the mid term test + final examination (i.e. obtain an aggregate mark of at least 30 out of 60).

In order to obtain a higher grade than a Pass, you must fulfill the conditions for a Pass and have a total mark of at least

  • 85 for High Distinction;
  • 75 for Distinction;
  • 65 for Credit.


Macquarie is developing a number of policies in the area of learning and teaching. Approved policies and associated guidelines can be found at Policy Central. Refer to the Science Centre regarding the implementation of these policies (e.g. precise procedures, forms, deadlines, etc).

Special Consideration

Special Consideration is intended for a student who is prevented by serious and unavoidable disruption from completing any unit requirements in accordance with their ability. This application form needs to be filled and submitted to the Science centre along with some evidence to support your case. Depending on the circumstances presented, the convenor may choose to give you an alternate assessment, additional time for an assessment, make-up exam, etc. For details of the Special Consideration policy specific to the Department of Computing, see the Department's policy page.

In particular, if your application concerns the final examination and is approved

  1. you will normally be required to sit a supplementary examination after the conclusion of the official examination period;
  2. your performance in the (original) final examination, if you sat it, will not be considered;
  3. your final grade will be based on your assignment marks and your performance in the supplementary examination.

Grade Appeal

In case of problems arising with your final grade, the first step is to organise a review. The Department recommends that you request an appointment with the convenor of the unit in order to review your grade. If the review does not solve the problem, a formal Grade Appeal can be lodged. See the grade appeal policy.

Academic Honesty and Plagiarism

Plagiarism involves using the work of another person and presenting it as one's own. The Department, in line with University policy, treats all cases seriously. In particular, the Department, keeps a record of all plagiarism cases. This record is referred to so that an appropriate penalty can be applied to each case.