FIT1008 - Fundamentals of algorithms

FIT1008 - Fundamentals of algorithms

Overview

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 fundamental algorithms and data structures, down to their efficient implementation as well as complexity. Topics include data types, data structures, … For more content click the Read More button below.

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 fundamental algorithms and data structures, down to their efficient implementation as well as complexity. Topics include data types, data structures, algorithms, algorithmic complexity, recursion, and their practical applications.

Rules

Prerequisites: 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.

Contacts

Chief Examiner(s)

Associate Professor Markus Wagner
Offering(s):
  • Applies to all offerings

Unit Coordinator(s)

Dr Muhammad Fermi Pasha
Offering(s):
  • First semester, Malaysia, Teaching activities are on-campus (ON-CAMPUS)
  • Second semester, Malaysia, Teaching activities are on-campus (ON-CAMPUS)
Dr Alexey Ignatiev
Offering(s):
  • First semester, Clayton, Teaching activities are on-campus (ON-CAMPUS)
  • Second semester, Clayton, Teaching activities are on-campus (ON-CAMPUS)

Notes

Optional Peer Assisted Study Sessions (PASS) run in this unit.

Learning outcomes

On successful completion of this unit, you should be able to:

1. Translate problem statements into algorithms and implement them in a high-level programming language; keyboard_arrow_down
2. Determine appropriate basic abstract data types, including; stacks, queues, lists, binary trees, priority queues, heaps and hash tables; for specific contexts; keyboard_arrow_down
3.Theoretically and experimentally evaluate different implementations of basic abstract data types; keyboard_arrow_down
4. Analyse the efficiency of algorithms by determining their best-case and worst-case big-O time complexity; keyboard_arrow_down
5. Work in teams to analyse algorithms and write programs. keyboard_arrow_down

Teaching approach

Peer assisted learning
keyboard_arrow_down

Assessment

Assignment 1

Individual task

Value %:35
Assignment 2

Group task

Value %:35
Assignment 3

Individual task

Value %:15
Weekly Quiz

Individual

Value %:15

Workload requirements

This unit has a requirement of 1-2 hours per week of asynchronous learning.

Minimum total expected workload to achieve the learning outcomes for this unit is 144 hours per semester typically comprising a mixture of scheduled online and face to face learning activities and independent study. Independent study may include associated reading and preparation for scheduled teaching activities.

Learning resources

1.  Problem-Solving with algorithms and data structures using Python, Authors: Miller & Ranum [also freely available online under CC license: https://interactivepython.org/runestone/static/pythonds/index.html]
2. Data Structures & Algorithms in Python, Authors: Goodrich, Tamassia & Goldwasser

3. "Introduction to Algorithms” by Thomas Cormen, Charles Leiserson, Ronald Rivest, and Clifford Stein

Python 3: This will be our programming language. Please make sure you get at least version 3.3 - https://www.python.org/downloads/

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

Availability in areas of study

Computer science
Computational science

发表评论

电子邮件地址不会被公开。 必填项已用*标注