[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 1, 2015

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

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, FIT2085


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

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 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 Architecture. 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 & No Prac. No prac this week due to Good Friday
6 Lectures on Lists, Stacks and Queues. Tute & Prac. Prac 5
7 Test, Basic Searching algorithms & Linked Structures. Tutes & No Prac. Mid-Semester Test. No prac this week due to test
8 Lectures on Linked Stacks, Linked Queues and Linked Lists. Tute & Prac. Prac 6
9 Lectures on Iterators and Recursion. Tute & Prac. Prac 7
10 Lectures on Recursive Sorts and Binary Trees. Tute & Prac. Prac 8
11 Lectures on Binary Search Trees, Priority Queues and Heaps. Tute & Prac. Prac 9
12 Lectures on Hash Tables. Tute & Prac. Prac 10
  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 a lecture
Pracs (1.5 hours each) 20% Weekly except in Week 5 and Week 7
Peer Instruction Participation in Lecture Sessions 5% Every lecture
Examination 1 70% To be advised

Assessment Requirements

Assessment Policy

Assessment Tasks


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 a 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 5 and Week 7
  • Assessment task 3
    Peer Instruction Participation in Lecture Sessions
    Student participation will be recorded for lectures.
    Criteria for assessment:

    A grade will be based on a student's participation in lectures.

    Due date:
    Every lecture
    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)

Feedback to you

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 electronic submission). 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

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

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.


Engineers Australia Stage 1 competencies

This unit is a core unit in the Bachelor of Software Engineering accredited by Engineers Australia. Engineers Australia Accreditation Policy of Professional Engineering Programs requires that programs demonstrate how engineering graduates are prepared for entry to the profession and achieve Stage 1 competencies. The following information describes how this unit contributes to the development of these competencies for the Bachelor of Software Engineering. (Note: not all competencies may be emphasised in this unit).

Stage 1 competency How the compency is developed in this unit
 1. Knowledge and Skills base  
 1.1. Comprehension, theory based understanding of the underpinning natural and physical sciences and the engineering fundamentals applicable to the engineering discipline. This covered in lecture notes, practical exercises and assignments.
 1.2. Conceptual understanding of the mathematics, numerical analysis, statistics, and computer and information sciences, which underpin the engineering discipline. This is covered in all assessment components.
 1.3. In-depth understanding of specialist bodies of knowledge within the engineering discipline. Not covered in this unit.
 1.4. Discernment of knowledge development and research directions within th engineering discipline. Not covered in this unit.

 1.5. Knowledge of engineering design practice and contextual factors impacting the engineering discipline.

Not covered in this unit.
 1.6. Understanding of the scope, principles, norms, accountabilities and bounds of sustainable engineering practice in the specific discipline. Not covered in this unit.
 2. Engineering application ability  
 2.1. Application of established engineering methods to complex engineering problem solving. Not covered in this unit.
 2.2 Fluent application of engineering techniques, tools and resources. Not covered in this unit.
 2.3. Application of systematic engineering synthesis and design processes. Not covered in this unit.
 2.4. Application of systematic approaches to the conduct and management of engineering projects. Not covered in this unit.
 3. Professional and personal attributes  
 3.1. Ethical conduct and professional accountability. Not covered in this unit.
 3.2. Effective oral and written communication in professional and lay domains. Students have to express themselves clearly and effectively for their assessment components of the unit.
 3.3. Creative, innovative and proactive demeanour. Some creativity is encouraged top develop solutions for the assessment components.
 3.4. Professional use and management of information. Not covered in this unit.
 3.5. Orderly management of self, and professional conduct. This is covered in the unit through the delivery of solutions to exercises and assignments.
 3.6. Effective team membership and team leadership. The assignment is a group assignment – teams of two.

Relationship between Unit Learning Outcomes and BSE Course Outcomes

No. CO 1 CO 2 CO 3 CO 4 CO 5 CO 6 CO 7 C0 8 CO 9 CO 10 CO 11 CO 12 CO 13
 1  X  X              X        
 2  X  X  X    X  X    X  X        
 3  X  X  X    X  X    X  X        
 4  X  X  X    X  X    X  X        
 5  X  X            X  X        

Relationship between Unit Learning Outcomes and Assessments

No. Assignments Tests Practical Exercises Exam
1    X X X
2    X  X  X
3    X  X  X
4    X  X  X
5    X  X  X
[an error occurred while processing this directive]