Murdoch University - Data Structures (ICT283)
Community study guide covering C++, Object-Oriented Design, Data Structures, Algorithms, and Design Patterns.
This repository is a public study resource for students enrolled in ICT283 - Data Structures
It is designed to complement your lecture and lab work - and help with exam/assignment preparation.
Academic Integrity Notice
All work submitted for assessment must be your own. This repository is for learning support only. Do not submit any code or notes from here directly as your own assessment work. Refer to Murdoch University's Academic Integrity Policy) for guidance.
ICT283-Study-Guide/
│
├── README.md <- You are here
│
└── resources/
└── ICT283_Questions.xlsx <- Full question list with topic tags and confidence tracker
| Resource | Description |
|---|---|
| cppreference.com - Containers | The definitive C++ STL containers reference. Covers vector, list, stack, queue, map, and more with full method documentation. |
| LearnCpp.com | Free, structured, chapter-by-chapter C++ guide. Great for revisiting fundamentals like pointers, classes, templates, and inheritance. |
| Resource | Description |
|---|---|
| CS Visualisation Tool (csvistool.com) | Interactive visualiser for common data structures and algorithms including BSTs, AVL trees, linked lists, sorting, and hashing. Excellent for seeing how operations work step by step. |
| VisuAlgo | Animated visualisations of data structures and algorithms - BST, linked list, sorting, graph algorithms, and more. Produced by the National University of Singapore. Highly recommended. |
| Resource | Description |
|---|---|
| Big-O Cheat Sheet | Quick-reference chart for time and space complexities of common data structures (Array, Stack, Queue, Linked List, BST, Hash Table) and sorting algorithms. Essential for exam prep, specifically Questions 18, 51, 67–70. |
The file resources/ICT283_Questions.xlsx contains all 80 exam/study questions from the ict283-Test2.pdf exam preparation document (exam question master list, thank you Shri).
Each row includes:
| Column | Description |
|---|---|
| Q# | Question number |
| Question | Full question text |
| Category | Topic area (e.g. OOP, Data Structures, Algorithms) |
| Topics | Specific topics covered |
| Key Concepts | Core ideas to understand |
| Coding | Whether a C++ code answer is required (Yes/No) |
| Confidence | Self-rated 0–10 - fill this in as you study |
| Notes | Personal notes and reminders |
Obviously, the Confidence column to identify your strengths and weaknesses. DO NOT avoid doing/studying questions you're not "good at", focus on your week points.
Below is a high-level map of unit topics:
- OO Design - Classes, encapsulation, inheritance, polymorphism, abstract classes
- Design Principles - SOLID, MVC, Law of Demeter, DRY, minimal but complete, information hiding
- Design Patterns - Strategy Pattern, MVC Pattern, NVI Pattern, PIMPL
- Data Structures - Vector, Linked List, Stack, Queue, BST, Set, Hash Table
- Templates & STL - Generics/Template programming, template classes/functions, STL containers
- Memory Management - Pointers, deep/shallow copy, Rule of Three, smart pointers, memory leaks
- Algorithm Analysis - Big-O, worst/best case, recursion vs iteration, merge sort, binary search
- UML - Class diagrams, relationships (specialisation, realisation), MVC in UML
Contributions from current and former ICT283 students are welcome! If you have helpful notes, a well-explained concept, or a resource worth adding:
- Fork this repository
- Create a branch:
git checkout -b your-contribution - Make changes
- Submit a pull request with a brief description
Please keep all contributions focused on learning. No full assessment solutions.
Last updated: 29 April 2026