Units
Data Structures and Algorithms
Unit code: INN371
Contact hours: 3 per week
Credit points: 12
Information about fees and unit costs
The purpose of this unit is to ensure that you have a sound knowledge of modern programming techniques and their use in providing medium-scale software solutions. This unit will teach you to decompose a problem and produce a modular solution to a programming task. The principles to analyse algorithms for efficiency will also be introduced. In addition, you will acquire the necessary skills for you to use the tools available in common development environments, such as Microsoft Visual Studio.
Availability
| Semester | Available |
|---|---|
| 2013 Semester 1 | Yes |
Sample subject outline - Semester 1 2013
Note: Subject outlines often change before the semester begins. Below is a sample outline.
Rationale
This unit will provide you with understanding of how data is stored to achieve high efficiency while developing algorithms to solve programming problems in the IT profession. In this unit, you will develop an abstract approach to programming and to complex inter-relationships between data, learning to understand the high level structures which underpin the organisation of modern software and the data on which it relies. You will study core abstract data types (ADTs) including the specification, implementations and time efficiency analysis of a range of commonly used ADTs and corresponding algorithms in an object-oriented setting. The intention of this unit is to leave you fully equipped for medium-scale software development in any modern language, and you will gain useful experience with a variety of tools which support the production and maintenance of larger software systems.
Aims
The purpose of this unit is to ensure that you have a sound knowledge of modern programming techniques and their use in providing medium-scale software solutions. This unit will teach you to decompose a problem and produce a modular solution to a programming task. The principles to analyse algorithms for efficiency will also be introduced. In addition, you will acquire the necessary skills for you to use the tools available in common development environments, such as Microsoft Visual Studio.
Objectives
On successful completion of this unit, you should be able to:
- Use abstraction and encapsulation techniques for dealing with complex data inter-relationships and design abstract data types (ADTs) to model computational problems (GC1, GC2);
- Implement common ADTs efficiently (GC1);
- Demonstrate knowledge of algorithm analysis for comparative efficiency (GC1, GC2)
- Understand some general algorithm development techniques such as recursion and divide-and-conquer (GC1)
- Analyse and solve programming problems by choosing appropriate ADTs and implementing data structures and algorithms efficiently (GC2);
- Work independently or in pairs as you use a modern language to implement programming solutions, emphasising re-use of existing modules (GC3, GC4, GC5);
Key: Graduate Capabilities
GC1 - Knowledge and Skills
GC2 - Critical and Creative Thinking
GC3 - Communication
CG4 - Lifelong Learning
GC5 - Independence and Collaboration
GC6 - Social and Ethical Responsibility
GC7 - Leadership and Change
Content
In this unit you will learn:
- advanced features of object oriented programming
- about recursion, searching and sorting algorithms about algorithm analysis
- about core ADTs (lists, stacks, queues, trees, etc), algorithms for common tasks and efficient implementation of the ADTs
- how to design new algorithms to solve new problems and apply the same principles used in implementing the common data structures to implement new data structures
- how to use industry standard software tools for developing large-scale programs
Approaches to Teaching and Learning
Weekly contact will consist of one 2-hour lecture and one 1-hour workshop. Lecture notes will be made available in weekly releases downloadable from QUT's Blackboard site. There is an emphasis on providing a variety of approaches to teaching and learning. The lectures will be, for the main part, in the traditional style for large classes; but presentations are enhanced by the use of a suite of software applications. For the workshops, you will be presented each week with a minimum requirement of tasks to be completed before the next week. After allowing you time to attempt solutions, questions arising from the exercises will be discussed by teachers during workshop sessions.
This unit has two compulsory programming assignments. You will learn how to choose appropriate data structures and how to develop efficient algorithms in software development.
Concurrent Teaching
This unit is being taught concurrently with an undergraduate offering of the same subject. University policy permits postgraduate and undergraduate students to attend the same lectures. Separate workshop sessions will be provided for postgraduates students where student numbers allow. As a postgraduate student you will be required to complete separate assessment tasks that reflect the advanced knowledge and understanding of the subject. For this unit that means your assessment will be of increased complexity but not necessarily of greater length or effort. The assessment will require you to show additional evidence of critical evaluation.
Assessment
Criterion-Referenced Assessment
Appropriate assessment criteria will be made available to students in the introduction to the assignments.You can obtain feedback on your progress throughout the unit through the following mechanisms:
· The unit coordinator and co-lecturer will be available in person at specified consultation times or via email to answer questions.
· The lecturer will encourage your involvement during lectures,
· Teachers will encourage discussion of your answers to workshop questions. Sample answers to the workshop questions will be made available on the Blackboard after each workshop session.
· You will receive a detailed marking criteria sheet for each assignment. No sample solution will be distributed to the class.
· Selected past exams for the predecessor units ITN711 and ITN702 are available on the Blackboard site.
Assessment name:
Project (applied)
Description:
Small scale programming task involving object oriented programming features.
Relates to objectives:
1, 3, 4, 5
Weight:
20%
Internal or external:
Internal
Group or individual:
Individual
Due date:
Week 6
Assessment name:
Project (applied)
Description:
Medium-scale programming task involving ADTs
Relates to objectives:
1, 2, 4, 5, 6
Weight:
30%
Internal or external:
Internal
Group or individual:
Group
Due date:
Week 12
Assessment name:
Examination (Theory)
Description:
Final Examination
Relates to objectives:
1, 2, 3, 4, 5
Weight:
50%
Internal or external:
Internal
Group or individual:
Individual
Due date:
Exam period
Academic Honesty
QUT is committed to maintaining high academic standards to protect the value of its qualifications. To assist you in assuring the academic integrity of your assessment you are encouraged to make use of the support materials and services available to help you consider and check your assessment items. Important information about the university's approach to academic integrity of assessment is on your unit Blackboard site.
A breach of academic integrity is regarded as Student Misconduct and can lead to the imposition of penalties.
Resource materials
No extraordinary charges or costs are associated with the requirements for this unit.
Required text:
Larry Nyhoff, ADTs, Data Structures, and Problem Solving with C++, Second Edition, Pearson Prentice Hall, 2005.
Risk assessment statement
There are no unusual health or safety risks associated with this unit. It is your responsibility to familiarise yourself with the Health and Safety policies and procedures applicable within campus areas and laboratories.
Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of semester.
Last modified: 24-Oct-2012