[an error occurred while processing this directive] [an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive]

Associate Professor David Dowe
Associate Professor
Phone: +61 3 990 55776
Fax: +61 3 990 55157

Lecturer(s) / Leader(s):


Associate Professor David Dowe
Associate Professor
Phone: +61 3 990 55776
Fax: +61 3 990 55157


Hi, and welcome to FIT3014 Analysis and design of algorithms.  This  6-point unit is optional/core to many degrees.  It is similar to its predecessor, CSE3305 (Formal Methods II) - and students are not permitted to do both CSE3305 and FIT3014, and students cannot count both subjects towards any degree.  Students should make sure that they have obtained the relevant pre-requisite(s) before doing FIT3014.  [An alternative name for the subject could be 'Formal Methods II'.]  In 2009, FIT3014 is offered in both 1st semester and 2nd semester.  Turning up to all lectures and all tutes/pracs is encouraged, strongly recommended and in students' interests.  Tute/prac attendance will be recorded.

Unit synopsis

This unit provides students with advanced techniques for designing and analysing complex algorithms. In particular, it teaches advanced search strategies, how to select an appropriate search stategy for a given problem, advanced techniques for analysis of algorithmic complexity, dynamic programming, basic statistics to estimate program behaviour, Monte Carlo simulation techniques, and basic notions in computability such as NP completeness.

Learning outcomes

  1. Advanced deterministic search strategies, including A*'
  2. Advanced stochastic search and optimization techniques, including simulated annealing, genetic algorithms and Markov Chain Monte Carlo;
  3. Monte Carlo simulation methods for estimation and problem solving;
  4. Probability theory and basic information theory;
  5. Methods for analysing algorithmic complexity, including asymptotic notation and average case complexity;
  6. Dynamic programming concepts and methods;
  7. Basic computational complexity theory, including nondeterministic Turing machines, P reduction, NP-Completeness;
  8. Be sensitive to the implications algorithm design has for computational complexity;
  9. Be aware of the appropriateness of different search methods for different problems;
  10. Select a search strategy appropriate to a given problem;
  11. Analyse the computational complexity of search algorithms;
  12. Employ Monte Carlo simulation techniques;
  13. Determine when dynamic programming methods will assist in dealing with resource limits;
  14. Use basic statistics to estimate program behaviour;
  15. Develop asymptotic approximations to computationally complex problems.

Contact hours

4 x contact hrs/week


For on campus students, workload commitments are:

  • two x one hour lectures and
  • two-hour tutorial/ laboratory
  • a minimum of 2-3 hours of personal study in order to satisfy the reading and assignment expectations.
  • You will need to allocate up to 5 hours per week in some weeks, for use of a computer.

Unit relationships


FIT2004 or CSE2304




FIT3014 is a (level 3) core unit in the Bachelor of Computer Science (BCS), BA/BCS, BSc/BCS and in the computer science major in the BSc and an elective in BSE (Bachelor of Software Engineering).

Before attempting this unit you must have satisfactorily completed FIT2004 or CSE2304, or equivalent.

Students beginning FIT3014 (Analysis and Design of Algorithms) are assumed to know:

  • Basic data structures (lists, trees, graphs)
  • Basic search algorithms
  • Elementary analysis of algorithms
  • Automata theory
  • Discrete mathematics
  • .

    You may not study this unit and CSE3305 in your degree.

    Teaching and learning method

    FIT3014 provides students with lectures, tutorials/pracs to facilitate your learning.

    Timetable information

    For information on timetabling for on-campus classes please refer to MUTTS, http://mutts.monash.edu.au/MUTTS/

    Tutorial allocation

    On-campus students should register for tutorials/laboratories using the Allocate+ system: http://allocate.cc.monash.edu.au/

    Unit Schedule

    Week Topic Study guide Key dates
    1 Introduction - analysing algorithms and their complexity    
    2 Introduction to search There is a Workbook ``study guide'' to accompany most of this subject  
    3 Local search and intro' to (faster) brute force search    
    4 More on faster brute force search; intro' to probability and information    
    5 Probability and information    
    6 Randomness, complexity and coding theory overview    
    7 Random number generation and transforming distributions    
    8 Monte Carlo simulation, simulated annealing and evolutionary algorithms    
    9 Evolutionary Artificial Life (ALife) simulation, the Halting Problem and the Church-Turing thesis    
    10 P, NP, NP-Completeness and the Cook-Levin theorem    
    Mid semester break
    11 Catch-up, revision    
    12 Catch-up, revision    
    13 Revision    

    Unit Resources

    Prescribed text(s) and readings

    Recommended text(s) and readings

    Jon Kleinberg and Eva Tardos (2006).  Algorithm design.  Addison Wesley Pearson.

    Zbigniew Michalewicz, David B. Fogel (2004). How to Solve It: Modern Heuristics. Springer.

    Supplementary Reading

    Sheldon Ross (2002). Simulation, 3rd edition. Academic Press.

    Vijay V. Vazirani (2001). Approximation Algorithms. Springer.

    Thomas M. Cover, Joy A. Thomas (1991). Elements of Information Theory. Wiley-Interscience.

    Christopher S. Wallace (2005).  Statistical and Inductive Inference by Minimum Message Length. Springer.

    Sara Baase, Allen Van Gelder (1999). Computer Algorithms: Introduction to Design and Analysis, 3rd Edition. Addison Wesley.

    Michael Sipser (2006). Introduction to the theory of computation, 2nd edition. Thomson.

     D. L. Dowe (2008). ``Foreword re C. S. Wallace'', Computer Journal, Vol. 51, No. 5 [Christopher Stewart WALLACE (1933-2004) memorial special issue {http://comjnl.oxfordjournals.org/content/vol51/issue5}], pp523-560.

    There is a Workbook ``study guide'' to accompany most of this subject

    Required software and/or hardware

    You will need access to:

    • Linux software
    • C under Linux, C++ under Linux
    • Java
    On-campus students may use this software which is installed in the computing labs. Information about computer use for students is available from the ITS Student Resource Guide in the Monash University Handbook.

    Equipment and consumables required or provided

    Students studying off-campus are required to have the minimum system configuration specified by the Faculty as a condition of accepting admission, and regular Internet access.On-campus students, and those studying at supported study locations may use the facilities available in the computing labs.Information about computer use for students is available from the ITS Student Resource Guide in the Monash University Handbook. You will need to allocate up to approximately 8 or so hours per week for use of a computer, including time for newsgroups/discussion groups.

    Study resources

    Study resources we will provide for your study are:

    • Weekly (detailed) lecture notes outlining the learning objectives, discussion of the content, required readings and exercises;
    • (A workbook of) weekly (or perhaps occasionally fortnightly) tutorial or laboratory tasks and exercises - with sample solutions to be provided one to two weeks later;
    • Assignment specifications;
    • This Unit Guide outlining the administrative information for the unit;
    • The unit web site on Blackboard (or MUSO), where resources outlined above will be made available.
    • Solutions to assignments and (time permitting) a sample exam will be discussed in class, so please attend and be prepared and attentive with your questions.  But, printed worked solutions will most probably not be circulated.



    Assignments: 30%
    Compulsory assessed laboratory classes: 10%
    Examination (3 hours): 60%

    Faculty assessment policy

    To pass a unit which includes an examination as part of the assessment a student must obtain:

    • 40% or more in the unit's examination, and
    • 40% or more in the unit's total non-examination assessment, and
    • an overall unit mark of 50% or more.

    If a student does not achieve 40% or more in the unit examination or the unit non-examination total assessment, and the total mark for the unit is greater than 44% then a mark of no greater than 44-N will be recorded for the unit.

    In order to pass this unit you must:

    • Obtain at least 50% on the exam.
    • Obtain at least 50% overall for your pracs.
    • Obtain an overall mark of at least 50%.

    If you do not meet all of the above conditions the highest mark you can receive is 44N.

    Students should also be familiar with the consequences of plagiarism, for the students who copy and also to any (other) students who allow their work to be copied.  The best possible outcome for students in such an event is zero marks for the relevant question(s) and an official letter sent to them and kept on their file.  But students should also understand that is the best possible outcome, and other possible outcomes include zero marks for the entire assignment or even zero marks for the entire subject.  As a general  rule, penalties tend to be more severe for repeat offenders.

    Assignment tasks

    Assignment coversheets

    Assignment coversheets are available via "Student Forms" on the Faculty website: http://www.infotech.monash.edu.au/resources/student/forms/
    You MUST submit a completed coversheet with all assignments, ensuring that the plagiarism declaration section is signed.

    Assignment submission and return procedures, and assessment criteria will be specified with each assignment.

    • Assignment task 1
      Assignment 1
      Roughly, we will assess the lecture (and workbook) material of up to approx. 1 week before the assignment deadline.  Assessed material will include matters like (e.g.) Order notation (O, Omega, Theta, o), Conjunctive Normal Form (CNF) and satisfiability (SAT), elementary computational complexity, search trees and their sizes, Bertrand's paradox and implementations of optimisations for problems such as (e.g.) Travelling Salesman/Salesperson Problem (TSP), Minimum Spanning Tree (MST) and shortest path.
      Due date:
      To be advised in assignment specification, approximately Week 5
    • Assignment task 2
      Assignment 2
      Roughly, we will assess the lecture (and workbook) material of up to approx. 1 week before the assignment deadline.  Assessed material will include matters like (e.g.) elementary probability, elementary information theory, binary symmetrical (communication) channels (and bandwidth), conditional entropy, mutual entropy, (pseudo-)random number generation, inverse transform and rejection methods, random/stochastic search strategies (simulated annealing, genetic algorithms), computation complexity, Turing machines, algorithmic information theory (Kolmogorov complexity) and the Halting problem (Entscheidungsproblem), artificial/simulated life, real-world applications.
      Due date:
      To be advised in assignment specification, approximately Week 9
    • Assignment task 3
      Assignment 3 - Assessed Practical (or Practical Assignment)
      This is intended to be a programming exercise implementing various pieces of theory, etc. from earlier in semester.
      Due date:
      Late in semester, probably the tute/lab of week 12; to be advised
      This will most probably be assessed in one of your tute/lab sessions.  You should have done the necessary work beforehand.


    • Weighting: 60%
      Length: 3 hours
      Type (open/closed book): Closed book

    See Appendix for End of semester special consideration / deferred exams process.

    Due dates and extensions

    Please make every effort to submit work by the due dates. It is your responsibility to structure your study program around assignment deadlines, family, work and other commitments. Factors such as normal work pressures, vacations, etc. are not regarded as appropriate reasons for granting extensions. Students are advised to NOT assume that granting of an extension is a matter of course.

    Students requesting an extension for any assessment during semester (eg. Assignments, tests or presentations) are required to submit a Special Consideration application form (in-semester exam/assessment task), along with original copies of supporting documentation, directly to their lecturer within two working days before the assessment submission deadline. Lecturers will provide specific outcomes directly to students via email within 2 working days. The lecturer reserves the right to refuse late applications.

    A copy of the email or other written communication of an extension must be attached to the assignment submission.

    Refer to the Faculty Special consideration webpage or further details and to access application forms: http://www.infotech.monash.edu.au/resources/student/equity/special-consideration.html

    Late assignment

    Assignments received after the due date without adequate medical or other reason will be subject to a penalty of up to 5% per day, including weekends. An assignment is deemed late if any of the submitted versions (recall ``Assessment details'', ``Assignment submission'') is late.  Assignments received later than one week (seven days) after the due date will not normally be accepted. In some cases, this period may be shorter if there is a need to release sample solutions or discuss solutions in class.

    Where multiple versions of an assignment are to be submitted (e.g., soft electronic copy on MUSO/Blackboard and/or Damocles, and hard copy to the General Office), versions must be identical and the time of submission will be deemed to be when the final version is submitted and received.

    This policy will often be strictly adhered to because comments or guidance will be given on assignments as they are returned, and sample solutions may also be published and distributed - after assignment marking or with the returned assignment.

    Return dates

    Students can expect assignments to be returned within two weeks of the submission date or after receipt, whichever is later.


    Please visit the following URL: http://www.infotech.monash.edu.au/units/appendix.html for further information about:

    • Continuous improvement
    • Unit evaluations
    • Communication, participation and feedback
    • Library access
    • Monash University Studies Online (MUSO)
    • Plagiarism, cheating and collusion
    • Register of counselling about plagiarism
    • Non-discriminatory language
    • Students with disability
    • End of semester special consideration / deferred exams
    [an error occurred while processing this directive]