[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]
Monash University

FIT1008 Introduction to computer science - Semester 2, 2014

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.

Mode of Delivery

  • Clayton (Day)
  • Malaysia (Day)

Workload Requirements

Minimum total expected workload equals 12 hours per week comprising:

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

  • Three 1-hour 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.

Additional workload requirements

The One 3-hour laboratory will be a Computer Lab Prac that includes 1.5 hours per week (requiring advance preparation) followed by an extra 1.5 hours for marking.

Unit Relationships


CSE1303, CSC1030, FIT1015


(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.

Chief Examiner

Campus Lecturer


Dr David Albrecht


Dr Jojo Wong

Your feedback to Us

Monash is committed to excellence in education and regularly seeks feedback from students, employers and staff. One of the key formal ways students have to provide feedback is through the Student Evaluation of Teaching and Units (SETU) survey. The University’s student evaluation policy requires that every unit is evaluated each year. Students are strongly encouraged to complete the surveys. The feedback is anonymous and provides the Faculty with evidence of aspects that students are satisfied and areas for improvement.

For more information on Monash’s educational strategy, see:

www.monash.edu.au/about/monash-directions/ and on student evaluations, see: www.policy.monash.edu/policy-bank/academic/education/quality/student-evaluation-policy.html

Previous Student Evaluations of this Unit

Pracs will be realesed earlier, to give students more time to work on them and collaborate with their prac partner.

If you wish to view how previous students rated this unit, please go to

Academic Overview

Learning Outcomes

At the completion of this unit, students will be able to:
  • 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;
  • compare and evaluate different implementations of a basic data type and evaluate their implications regarding time complexity, functionality, and memory usage;
  • 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;
  • calculate the best case and worst case big O time complexity of simple iterative and recursive algorithms (including all those studied in the unit);
  • explain the differences between compilation, interpretation and hybrid compilation methods. Identify different compilation targets, including abstract machine code, assembly language, object code, and machine code. 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.

Unit Schedule

Week Activities Assessment
0 Register for tutorials, pracs and lectures No formal assessment or activities are undertaken in week 0. Peer Instruction Participation recorded in every lecture or tutorial in the semester
1 Lectures on Overview of the unit, Python Basics, Sorting Revision and Big O. Tute & Prac. Prac 1.
2 Lectures on Analysis of sorting, Assembly and MIPS Archecture. Tute & Prac. Prac 2.
3 Lectures on Assembly Programming. Tute & Prac. Prac 3
4 Lectures on Function Calling/Returning in Assembly. Tute & Prac Prac 4
5 Lectures on Data Structures, Classes & Objects, and Exception Handling. Tute & Prac Prac 5
6 Lectures on Lists, Stacks and Queues. Tute & Prac. Prac 6
7 Test, Basic Searching algorithms & Linked Structures. Tutes & No Prac. Mid-Semester Test
8 Lectures on Linked Stacks, Linked Queues and Linked Lists. Tute & Prac. Prac 7
9 Lectures on Iterators and Recursion. Tute & Prac. Prac 8
10 Lectures on Recursive Sorts and Binary Trees. Tute & Prac. Prac 9
11 Lectures on Binary Search Trees, Priority Queues and Heaps. Tute & Prac. Prac 10
12 Lectures on Hash Tables. Tute & Prac. Prac 11
  SWOT VAC No formal assessment is undertaken in SWOT VAC
  Examination period LINK to Assessment Policy: http://policy.monash.edu.au/policy-bank/

*Unit Schedule details will be maintained and communicated to you via your learning system.

Teaching Approach

Lecture and tutorials or problem classes
This teaching and learning approach helps students first encounter the information at lectures, discuss and explore them at length during tutorials, and practice them in a hands-on environment during labs.

Assessment Summary

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

Assessment Task Value Due Date
Mid-semester Test (1 hour) 5% Week 7 in Monday lecture
Pracs (1.5 hours each) 20% Weekly except in Week 7
Peer Instruction Participation in Lecture Sessions or Tutorials 5% Every lecture
Examination 1 70% To be advised

Assessment Requirements

Assessment Policy

Assessment Tasks


Students must actively participate in at least 7 out of the 12 tutorials. Active participation includes contributing opinions to a discussion, providing an answer to some question/exercise, or posing a unit-related question.

Peer Instruction Participation occurs in every lecture.

  • Assessment task 1
    Mid-semester Test (1 hour)
    This test is performed during the class and covers exam-like questions for the first part of the course. It is intended to give students an idea of how they would perform in the final exam, given their current progress. 
    Criteria for assessment:

    This test will evaluate your understanding of the material provided during the first few weeks of semester, your capability to code simple algorithms given a clear specification, and to analyse the behaviour and complexity of simple fragments of code.

    Due date:
    Week 7 in Monday lecture
  • Assessment task 2
    Pracs (1.5 hours each)
    Each week you will need to complete a prac assignment. In some of the pracs, you will need to work together with another student, but will you will be marked individually. Prac assignments are long (they are designed to take about 4 hours). This means that you must have a significant proportion of the prac completed before attending the scheduled computer lab. The aim of the first 1.5 hour computer lab practical is to iron out any bugs, ask any questions about the prac you have not been able to solve on your own, and improve the parts that your demonstrator points out as lacking (including comments, algorithms, etc). If you do nothing before the prac,  you will soon realise that you do not have enough time to complete it. 
    Criteria for assessment:
    Every prac sheet contains the assessment criteria used to assess that prac. In addition, demonstrators carry with them a marking guide prepared by the lecturer which indicates how exactly to mark each prac question. You can request the demonstrator to show you the marking guide after he/she has marked your prac.
    Due date:
    Weekly except in Week 7
  • Assessment task 3
    Peer Instruction Participation in Lecture Sessions or Tutorials
    Student participation, depending on which campus they are on, will be recorded for lectures or tutorials.
    Criteria for assessment:

    Depending on which campus, a grade will be based on a student's participation in either lectures or tutorials.

    Due date:
    Every lecture
    If lecture participation is going to be recorded, students are required to purchase a Turning Point clicker from the Campus Bookstore or directly from the Australian Distributor.


  • Examination 1
    3 hours
    Type (open/closed book):
    Closed book
    Electronic devices allowed in the exam:

Learning resources

Reading list

For algorithms and data structures:

  • D. Reed and J. Zelle - Data Structures and Algorithms using Python and C++


  • R.L. Britton - MIPS Assembly Language Programming

For learning Python 3:

  • L. Perkovic - Introduction to Computing using Python: An Application Development Focus

For more Python 3 (for more experienced programmers):

  • Dive into Python 3: http://getpython3.com/diveintopython3/
  • Python tutorial: http://docs.python.org/3/tutorial/

Monash Library Unit Reading List (if applicable to the unit)

Faculty of Information Technology Style Guide

Feedback to you

Examination/other end-of-semester assessment feedback may take the form of feedback classes, provision of sample answers or other group feedback after official results have been published. Please check with your lecturer on the feedback provided and take advantage of this prior to requesting individual consultations with staff. If your unit has an examination, you may request to view your examination script booklet, see http://intranet.monash.edu.au/infotech/resources/students/procedures/request-to-view-exam-scripts.html

Types of feedback you can expect to receive in this unit are:

  • Informal feedback on progress in labs/tutes
  • Graded assignments without comments
  • Test results and feedback
  • Other: Detailed solutions to tutes

Extensions and penalties

Returning assignments

Assignment submission

It is a University requirement (http://www.policy.monash.edu/policy-bank/academic/education/conduct/student-academic-integrity-managing-plagiarism-collusion-procedures.html) for students to submit an assignment coversheet for each assessment item. Faculty Assignment coversheets can be found at http://www.infotech.monash.edu.au/resources/student/forms/. Please check with your Lecturer on the submission method for your assignment coversheet (e.g. attach a file to the online assignment submission, hand-in a hard copy, or use an online quiz). Please note that it is your responsibility to retain copies of your assessments.

Online submission

Please submit your work via Moodle at the time in which you are marked (and, thus, before you leave the lab). You can access Moodle via links in the my.monash portal.

Required Resources

Please check with your lecturer before purchasing any Required Resources. Limited copies of prescribed texts are available for you to borrow in the library, and prescribed software is available in student labs.

Python 3: This will be our programming language. Please make sure you get version 3.3

PyCharm: A good Python IDE. (http://www.jetbrains.com/pycharm/)

MARS (MIPS Assembler and Runtime Simulator): An IDE for MIPS Assembly Language Programming. (http://courses.missouristate.edu/kenvollmar/mars/)

All the above are included as part of the Standard Operating Environment used in Faculty Computer Labs.

Additional subject costs

Clayton students are required to purchase a Turning Point clicker from the Campus Bookstore or directly from the Australian Distributor. More information about clickers can be found on this webpage: http://intranet.monash.edu.au/infotech/resources/students/enrolment/clickers.html.

Other Information


Monash has educational policies, procedures and guidelines, which are designed to ensure that staff and students are aware of the University’s academic standards, and to provide advice on how they might uphold them. You can find Monash’s Education Policies at: www.policy.monash.edu.au/policy-bank/academic/education/index.html

Key educational policies include:

Faculty resources and policies

Important student resources including Faculty policies are located at http://intranet.monash.edu.au/infotech/resources/students/

Graduate Attributes Policy

Student Charter

Student services

Monash University Library

Disability Liaison Unit

Students who have a disability or medical condition are welcome to contact the Disability Liaison Unit to discuss academic support services. Disability Liaison Officers (DLOs) visit all Victorian campuses on a regular basis.

[an error occurred while processing this directive]