units

FIT1008

Faculty of Information Technology

Monash University

Undergraduate - Unit

This unit entry is for students who completed this unit in 2015 only. For students planning to study the unit, please refer to the unit indexes in the the current edition of the Handbook. If you have any queries contact the managing faculty for your course or area of study.

print version

6 points, SCA Band 2, 0.125 EFTSL

Refer to the specific census and withdrawal dates for the semester(s) in which this unit is offered.

LevelUndergraduate
FacultyFaculty of Information Technology
OfferedClayton First semester 2015 (Day)
Malaysia First semester 2015 (Day)
Clayton Second semester 2015 (Day)
Malaysia Second semester 2015 (Day)

Synopsis

This unit introduces students to core problem-solving, analytical skills, and methodologies useful for developing flexible, robust, and maintainable software. In doing this it covers a range of conceptual levels, from high-level algorithms and data-structures, down to the machine models and simple assembly language programming. Topics include data types; data structures; algorithms; algorithmic complexity; recursion; and translation to assembly language.

Outcomes

At the completion of this unit, students should be able to:

  1. implement and modify common data types such as stacks, queues, lists, trees, priority queues, heaps and hash tables using a variety of data structures such as arrays and linked nodes. Implement simple algorithms that manipulate these data types. Construct new basic data types;
  2. compare and evaluate different implementations of a basic data type and evaluate their implications regarding time complexity, functionality, and memory usage;
  3. design and implement simple recursive algorithms and data structures, including those manipulating lists, trees and heaps. Assess the relationship between recursive and iterative algorithms, their advantages and disadvantages;
  4. calculate the best case and worst case big O time complexity of simple iterative and recursive algorithms (including all those studied in the unit);
  5. manually translate simple high level code containing if-then-elses, loops, arithmetic and function calls into the assembly code used by a particular computer architecture such as MIPS R2000.

Assessment

Examination (3 hours): 70%; In-semester assessment: 30%

Workload requirements

Minimum total expected workload equals 12 hours per week comprising:

(a.) Contact hours for on-campus students:

  • Three hours of lectures
  • One 1-hour tutorial
  • One 3-hour laboratory

(b.) Additional requirements (all students):

  • A minimum of 5 hours of personal study per week in order to satisfy the reading and assignment expectations.

See also Unit timetable information

Chief examiner(s)

This unit applies to the following area(s) of study

Prerequisites

(FIT1040 or ECE2071 or FIT1002) and FIT1029
Students beginning FIT1008 are assumed to be able to: Identify the main components of an algorithm (variables, operators, expressions, etc), and write the algorithm associated to the specification of a simple problem. Be able to translate a simple algorithm into a program containing variable declarations, selection, repetition, and lists and/or arrays.

Prohibitions

CSE1303, CSC1030, FIT1015, FIT2085

Additional information on this unit is available from the faculty at: