DS ECE532 · Data Structures and Algorithms Universiti Teknologi MARA

ECE532 · Electrical & Electronic Engineering

Data structures,
engineered like circuits.

Data Structures and Algorithms for engineers. Lists, stacks, queues, trees and graphs taught through signals, sensors and fault logs — with interactive visualisers, Python challenges and weekly quizzes that mark themselves.

Weeks
14
Lessons
71
Activities
99
A linked list drawn as components on a circuit board, with a signal pulse travelling from node to node ECE532 · LINKED LIST · REV A data 0x1A next N0 HEAD data 0x2C next N1 data 0x3E next N2 TAIL NULL CH1 push / pop O(1)

What you'll do

Built for engineers, not just programmers.

Every structure is introduced through a problem you would meet in a lab or on a board, then implemented in Python and tested.

Probe every structure

Step through a linked list, a stack machine or a binary search tree one operation at a time, like watching a signal on a scope.

Python from real problems

Decode resistor colour bands, smooth sensor readings, parse fault logs and queue jobs. Each challenge ships with starter code.

Marked on the spot

Weekly quizzes are graded the moment you submit. Code goes to your lecturer with a line-by-line output comparison.

Progress you can measure

See exactly how much of each week is done, what is due next, and your marks for Test 1 and Test 2.

Signal path

14 weeks, one structure at a time.

Each week is released to your class by your lecturer, so the list below shows the full route. Your dashboard shows where you are on it.

≈ 56 h of guided work

  1. W01 5 lessons · 6 tasks

    Week 1 — Algorithms, Program Design & Python Refresher

    What an algorithm is, how to design one with pseudocode and flowcharts, the Python you need to express it, and a first look at how we measure efficiency.

  2. W02 5 lessons · 7 tasks

    Week 2 — Loops, Lists & Functions

    Repetition with while and for, lists and tuples (and why copying is not aliasing), and functions: arguments, return values, scope and how Python passes a reference.

  3. W03 5 lessons · 6 tasks

    Week 3 — Recursion & Object-Oriented Programming

    Recursive definitions and the call stack that runs them; kinds and cost of recursion; classes, objects, self, private state, __str__ and UML; and the Node class that Week 4 links together.

  4. W04 5 lessons · 7 tasks

    Week 4 — Linked Lists

    Why arrays fall short, the node and the chain, inserting and removing with the pointer updates in the right order, the cost of every operation versus a Python list, and doubly linked lists, iterators and generators.

  5. W05 5 lessons · 7 tasks

    Week 5 — Stacks & Queues

    LIFO and FIFO: stacks and queues on a Python list and on a linked chain, the circular-array queue with front, rear and count, overflow policies, priority queues and the deque — and how to choose between them.

  6. W06 5 lessons · 8 tasks

    Week 6 — Stack Applications: Expression Notation & Evaluation

    Infix, prefix and postfix; evaluating postfix (left to right) and prefix (right to left) with a stack; the shunting-yard conversions with precedence and associativity; back to infix with minimal parentheses.

  7. W07 5 lessons · 7 tasks

    Week 7 — Trees, Binary Trees & Binary Search Trees

    Tree terminology and representations; binary trees and the BST property; iterative insertion and search; inorder, preorder, postorder and level-order traversals; expression trees built from postfix.

  8. W08 5 lessons · 7 tasks

    Week 8 — BST Search & Deletion; Heaps & Priority Queues

    Search cost is the height; the two-case deletion with rightMost; complete trees, the heap property, reheapification up and down in an array; priority queues with a heap and Python's heapq.

  9. W09 5 lessons · 7 tasks

    Week 9 — Graphs: Representations, DFS & BFS

    G = (V, E) and the terminology; adjacency matrix versus adjacency list; depth-first search by recursion and with a stack; breadth-first search with a queue; reachability, components, fewest-hop paths and netlist checks.

  10. W10 5 lessons · 8 tasks

    Week 10 — Minimum Spanning Trees (Kruskal, Prim) and Shortest Paths (Dijkstra)

    Spanning trees and the greedy idea; Kruskal with Union-Find; Prim with a heap; Dijkstra with the iteration table, predecessors and the non-negative-weight limitation; which algorithm for which engineering question.

  11. W11 5 lessons · 7 tasks

    Week 11 — Quadratic Sorting & Big-O: Selection, Insertion, Bubble

    Big-O made formal (the definition, the counting rules, best/worst/average, the doubling test); selection, insertion and bubble sort by hand and in Python with comparison and move counters; stability, adaptivity and where the quadratic sorts still belong in engineering code.

  12. W12 5 lessons · 8 tasks

    Week 12 — Linearithmic Sorting: Merge Sort & Quicksort

    Divide and conquer; the merge step and merge sort (top-down and bottom-up) with its n log n derivation; the deck's Lomuto partition, quicksort, pivot strategies and the sorted-input worst case; all five sorts compared, the Ω(n log n) lower bound, what real libraries do, and the mini-project briefing.

  13. W13 5 lessons · 7 tasks

    Week 13 — Searching & Hashing I: Linear, Binary, Chaining, Probing

    Linear search and its (n+1)/2 average; binary search by hand with the low / high / mid table, the deck's −insertion point − 1 convention and the missing low = 0; hashing as retrieval without searching, h(key) = key % m, string hashing and why the table size should be prime; separate chaining and linear probing, the load factor, primary clustering and the tombstone.

  14. W14 6 lessons · 7 tasks

    Week 14 — Hashing II & Course Integration: Quadratic, Double, Rehash, Map & Set

    Open addressing in general — the i-th probe at (h(key) + f(i)) % m; quadratic probing by hand and the insert that can never succeed; the prime-size, α < ½ guarantee; double hashing, why g(key) must never be 0 and must be coprime with m; the load factor as the control variable, rehashing into the next prime and why it is O(1) amortised; Map and Set; and the whole course in one table.

How it works

Three steps to your first lesson.

No registration form. Your Universiti Teknologi MARA Google account is your student ID.

Sign in with Google
  1. 1

    Sign in

    Use your university Google account. If your lecturer has added you, you land straight in your class.

  2. 2

    Open this week

    Read the pages, run the visualiser, then take the trace-the-output set and the Python challenge.

  3. 3

    Submit and check

    Quiz marks appear instantly. Code and assignments come back with comments from your lecturer.