COIT20256 - Data Structures and Algorithms

General Information

Unit Synopsis

In this unit, you will study advanced data structures and algorithms for software development using an object oriented programming language. You will learn how to build classes, throw exceptions, and extend a class using inheritance and polymorphism. You will practice these concepts and build applications with front-end Graphical User Interface and back-end database using database programming. You will also learn to build software applications using built-in Java Application Programming Interfaces (APIs) for generic collections of linked lists, stacks, queues, sets and maps, and creating custom generic data structures. You will also gain understanding of sorting and searching algorithms, recursion, search trees, and learn to evaluate algorithms using Big O notation. You will be introduced to functional programming using Lambdas and Streams. You will be given hands-on experience to practice all concepts during computer lab tutorials. The object-oriented design will also be covered.

Details

Level Postgraduate
Unit Level Not Applicable
Credit Points 6
Student Contribution Band 2
Fraction of Full-Time Student Load 0.125
Pre-requisites or Co-requisites

Pre-requisite: COIT20245 Introduction to Programming

Class Timetable View Unit Timetable
Residential School No Residential School

Unit Availabilities from Term 2 - 2018

Term 2 - 2018 Profile
Brisbane
Distance
Melbourne
Rockhampton
Sydney
Term 3 - 2018 Profile
Brisbane
Distance
Melbourne
Sydney
Term 1 - 2019 Profile
Brisbane
Melbourne
Online
Rockhampton
Sydney
Term 2 - 2019 Profile
Brisbane
Melbourne
Online
Rockhampton
Sydney
Term 3 - 2019 Profile
Brisbane
Melbourne
Online
Sydney

Attendance Requirements

All on-campus students are expected to attend scheduled classes – in some units, these classes are identified as a mandatory (pass/fail) component and attendance is compulsory. International students, on a student visa, must maintain a full time study load and meet both attendance and academic progress requirements in each study period (satisfactory attendance for International students is defined as maintaining at least an 80% attendance record).

Assessment Overview

Recommended Student Time Commitment

Each 6-credit Postgraduate unit at CQUniversity requires an overall time commitment of an average of 12.5 hours of study per week, making a total of 150 hours for the unit.

Assessment Tasks

Assessment Task Weighting
1. Written Assessment 20%
2. Written Assessment 30%
3. Examination 50%

This is a graded unit: your overall grade will be calculated from the marks or grades for each assessment task, based on the relative weightings shown in the table above. You must obtain an overall mark for the unit of at least 50%, or an overall grade of ‘pass’ in order to pass the unit. If any ‘pass/fail’ tasks are shown in the table above they must also be completed successfully (‘pass’ grade). You must also meet any minimum mark requirements specified for a particular assessment task, as detailed in the ‘assessment task’ section (note that in some instances, the minimum mark for a task may be greater than 50%).

Consult the University’s Grades and Results Procedures for more details of interim results and final grades

Past Exams

To view Past Exams, please login
Previous Feedback

Term 1 - 2018 : The overall satisfaction for students in the last offering of this course was 4 (on a 5 point Likert scale), based on a 38.27% response rate.

Feedback, Recommendations and Responses

Every unit is reviewed for enhancement each year. At the most recent review, the following staff and student feedback items were identified and recommendations were made.

Source: Unit evaluation
Feedback
Received many positive feedbacks from students regarding the opportunity to learn database programming, lambdas, and graphical user interface coding. Teach more algorithms.
Recommendation
Formalise inclusion of Lambdas by updating the unit profile sections of overview and assessment. Algorithms are already part of the unit. It is difficult to include more content as the Unit is already content intensive. Some minor modifications can be done and this will be considered.
Action Taken
The unit profile is updated revising the unit overview, learning outcomes and assessment weights, to formalise the inclusion of Lambdas and Streams.
Source: Unit evaluation
Feedback
There have been some dissatisfaction about the clarity of assignment requirements.
Recommendation
The assignments are written based on authentic software development cases and this may cause some inherent vagueness. The students will be given clear instructions to design the solution with supporting assumptions taken by them.
Action Taken
Nil.
Unit learning Outcomes

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

  1. Compare and contrast different algorithms in problem solving
  2. Design and implement appropriate data structures for application development
  3. Evaluate a variety of data structures and algorithmic approaches including: recursion, linked lists, stacks, queues, streams, search trees, sorting and searching
  4. Analyse, develop and implement software solutions with the focus of data structures and algorithms
  5. Apply classes, inheritance, polymorphism, and exception handling
  6. Programmatically connect to a database and implement the database operations
  7. Work collaboratively as part of a small team
  8. Demonstrate socially innovative practices in software development
  9. Accomplish functional programming with Lambda expressions and Streams.

Australian Computer Society (ACS) recognises the Skills Framework for the Information Age (SFIA). SFIA is in use in over 100 countries and provides a widely used and consistent definition of ICT skills. SFIA is increasingly being used when developing job descriptions and role profiles.
ACS members can use the tool MySFIA to build a skills profile at https://www.acs.org.au/professionalrecognition/mysfia-b2c.html
This unit contributes to the following workplace skills as defined by SFIA. The SFIA code is included:
  • Systems design (DESN)
  • System Integration (SINT)
  • Program ming/Software Development (PROG)
  • Data Analysis (DTAN)
  • Database/Repository Design (DBDS)
  • Testing (TEST)
  • Applications Support (ASUP)

Alignment of Assessment Tasks to Learning Outcomes
Assessment Tasks Learning Outcomes
1 2 3 4 5 6 7 8 9
1 - Written Assessment
2 - Written Assessment
3 - Examination
Alignment of Graduate Attributes to Learning Outcomes
Advanced Level
Professional Level
Graduate Attributes Learning Outcomes
1 2 3 4 5 6 7 8 9
1 - Knowledge
2 - Communication
3 - Cognitive, technical and creative skills
4 - Research
5 - Self-management
6 - Ethical and Professional Responsibility
Alignment of Assessment Tasks to Graduate Attributes
Advanced Level
Professional Level
Assessment Tasks Graduate Attributes
1 2 3 4 5 6 7
1 - Written Assessment
2 - Written Assessment
3 - Examination