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, algorithms, algorithmic complexity, recursion, and their practical applications.
Requisites
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)
- Applies to all offerings
Unit Coordinator(s)
- First semester, Malaysia, Teaching activities are on-campus (ON-CAMPUS)
- Second semester, Malaysia, Teaching activities are on-campus (ON-CAMPUS)
- 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:
Teaching approach
Assessment
Individual task
Group task
Individual task
Individual
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
Computational science