MH1403: pass the exams, not just read the notes
Your complete guide to Nanyang Technological University's algorithms and computing course. See where the marks are, work real practice questions, and study with an AI tutor that knows MH1403.
Sia generates MH1403 practice questions, walks through introduction and python classes step by step, and quizzes you on the material the exam weights most heavily.
Find what is wrong
You need a structure that supports repeated insertion and lookup by key, with worst-case guarantees. A plain binary search tree is proposed. What is the objection, and what does an AVL tree change?
State the average case and the worst case separately. A binary search tree gives logarithmic search on average, and that average assumes keys arrive in an order that keeps the tree bushy. The average is not a guarantee.
See what the balance condition does. An AVL tree maintains the invariant that the heights of the two subtrees at any node differ by at most one. That invariant is what forces height to stay logarithmic in the number of nodes.
Account for the cost. The invariant is restored after insertion and deletion by rotations, which is extra work on every modification. That is the trade being made: a constant-factor cost on writes to convert an average-case bound into a worst-case one. NTU teaches binary search trees in week 6 and AVL trees in week 7 so the failure is seen before the fix.
The trap: Option C misplaces the benefit. An AVL tree does not store fewer nodes and is not uniformly faster; on an already-balanced workload it does strictly more work than a plain binary search tree because of the rebalancing. The gain is entirely in the worst case, and stating it as a general speed improvement is the answer that loses marks under ILO 2, where you are asked to analyse complexity rather than to rank structures. classic slip!
One exam decides 60% of your grade. Summative assessment. This whole page is built around that.
Overview
What MH1403 is, and where it sits
MH1403 is NTU's data structures and algorithms course in the Division of Mathematical Sciences. The published aim is a systematic introduction to data structures and algorithms for constructing efficient computer programs, with emphasis on data abstraction in the program development process and on the design of efficient algorithms. The simple algorithmic paradigms named are greedy algorithms, divide-and-conquer and dynamic programming, alongside elementary analysis of algorithmic complexity.
The language is Python throughout. ILO 1 is to implement data structures in Python, and the lab sessions are run as individual and group projects that you are expected to solve by Python programming, with lab tutors present to guide rather than to supply solutions.
The assessment shape is the thing to plan around, and it is unusually top-heavy. Ninety percent of the grade sits in two sittings: a 30% midterm test in week 10 and a 60% two-hour examination. The four programming labs are worth 4% in total, and 6% comes from answering questions in lectures. Practical work is where you learn the material, but it is not where the marks are.
Always treat your own course outline and the exam timetable as authoritative.
Difficulty & time commitment
Is MH1403 hard, and how much time does it take?
MH1403 is manageable if you keep a weekly rhythm and treat the back half as the main event. The pattern is consistent: it starts gently and steepens, and the heaviest assessment is the part that separates grades.
The difficulty curve and the assessment weighting point the same way: the back half is harder and worth more. Front-loading effort there is the highest-return decision in the course.
Is this course for you
Who tends to do well, and who tends to struggle
You will likely do well if
- You treat the week 10 midterm as half the exam rather than as coursework; at 30% it outweighs everything except the final.
- You can state the complexity of every operation on every structure as you learn it, not afterwards. ILO 2 is assessed directly.
- You attend lectures. Six percent is a small number, but it is free marks tied to attendance and attention across 12 sessions.
- You implement each structure yourself in Python rather than reading an implementation — ILO 1 is written as implement, not describe.
You may struggle if
- You optimise for the labs because they feel like the real work. They are 4% of the grade.
- You learn the paradigms in weeks 11 and 12 as named techniques without working through when each applies; that judgement is what the final tests.
- You skip the AVL rotations as fiddly detail. Week 7 exists because week 6 leaves a worst case open.
- You leave dynamic programming to revision. It arrives in week 12 and is the densest idea in the course.
- Build a table as you go: structure, operation, average cost, worst cost, and the input pattern that produces the worst case.
- For each paradigm, hold one canonical problem it solves and one problem it fails on. Greedy failing where dynamic programming succeeds is the standard contrast.
- Re-derive the sorting complexities rather than memorising them; week 8 rewards understanding of why comparison sorts have the bound they do.
- Practise writing code on paper under time. The 90% that decides your grade is written, not typed.
Syllabus
The 13 topics, topic by topic
The exam-weight marker on each topic shows where the marks concentrate. The amber topics carry the highest exam weight.
T1 · Introduction and algorithm analysis
Week 1; ILO1-4Asymptotic cost as the organising idea of the whole course.
T2 · Python classes
Week 2; ILO1-4The implementation vehicle: how a data structure becomes code.
T3 · Array, linked list, Python list
Week 3; ILO1-4Contiguous versus linked storage, and what each makes cheap or expensive.
T4 · Stack and queue
Week 4; ILO1-4The two restricted-access structures, and the problems each is the natural fit for.
T5 · Tree
Week 5; ILO1-4Hierarchical structure, traversal orders and terminology.
T6 · Binary search tree
Week 6; ILO1-4Ordered structure with logarithmic search in the average case, and what degrades it.
T7 · AVL tree
Week 7; ILO1-4Self-balancing through rotations, and why the balance condition is worth its cost.
T8 · Sorting algorithms
Week 8; ILO1-4The classic comparison sorts and their complexity profiles.
T9 · Divide-and-conquer algorithms
Week 9; ILO1-5Splitting a problem, solving the parts, combining the results.
T10 · Midterm test
Week 10; ILO1-5The 30% mid-semester test, held under exam conditions.
T11 · Greedy algorithms
Week 11; ILO1-5Locally optimal choices, and the question of when they give a globally optimal answer.
T12 · Dynamic programming
Week 12; ILO1-5Overlapping subproblems and optimal substructure, solved by storing results.
T13 · Linear programming, integer programming and revision
Week 13; ILO1-4An introduction to optimisation formulations, plus consolidation.
How it's assessed
Assessment structure
| Component | Weight | Format & timing |
|---|---|---|
| Examination (2 hours) | 60% | Two-hour examination of short answer questions assessed against ILOs 1 to 4, point-based marking. Examination period. Summative assessment. |
| Mid-semester Quiz (Midterm Test) | 30% | Short answer midterm test assessed against ILOs 1 to 4, point-based marking. Week 10. Continuous assessment. |
| Class participation: answering questions in lectures | 6% | Questions are asked in 12 lectures. The published scale runs from 6 marks for at least 8 correct answers down to 1 mark at the lowest band. Across the semester. Continuous assessment. |
| Assignment: four programming labs | 4% | Four programming lab submissions, one mark each. Code that works with a good algorithm scores full marks; partially correct code scores half. Across the semester. Continuous assessment. |
- The four components sum to 100. All lab assignments must be submitted, and NTU states that a lab not submitted before its deadline counts as no submission. Where medical absence from the midterm is documented, a make-up midterm test is arranged.
- Ninety percent of the grade is decided in two sittings — a 30% midterm in week 10 and a 60% two-hour examination — and both are mapped to ILOs 1 to 4. ILO 5, on teamwork and collaborative management of larger programming projects, is assessed only through the lab and participation components, which together are 10%.
This is an exam-cram course. With the exams at 90% of the grade and the examination (2 hours) alone at 60%, your result is overwhelmingly decided by how well you perform under time pressure. Summative assessment.
Final exam timing: Two-hour examination during the examination period. Confirm the exact date and venue on your exam timetable.
How to actually pass it
A weekly rhythm, two checklists, and the traps to avoid
The course rewards consistency over cramming, and practice over re-reading. Here is the loop that works, then what to have nailed before each exam.
The weekly loop
Before the mid-semester checklist
- Implement arrays, linked lists, stacks, queues, trees, binary search trees and AVL trees in Python.
- Analyse the complexity of operations on each structure, average and worst case.
- Explain what degrades a binary search tree and how the AVL balance condition prevents it.
- Compare the standard sorting algorithms by complexity and by the input patterns that favour each.
Before the final heaviest topics
- Design and implement divide-and-conquer solutions for given problems.
- Identify when a greedy choice yields a globally optimal solution and when it does not.
- Formulate a dynamic programming solution by identifying overlapping subproblems and optimal substructure.
- State the basic ideas of linear and integer programming formulations.
The mistakes that cost marks
Average case quoted as a guarantee. Binary search trees are logarithmic on average and linear in the worst case. ILO 2 asks for complexity analysis, and conflating the two is the most common way to lose those marks.
Greedy applied without justification. A greedy choice needs an argument that it does not foreclose the optimum. Producing the algorithm without the argument answers half the question.
Dynamic programming reduced to memoisation. Storing results is the mechanism. The content is recognising optimal substructure, which is what has to be demonstrated.
Labs treated as the workload. Four percent for four labs. The learning is real; the marks are not there.
Teaching team
Who teaches MH1403
The bios below are factual. We do not rate lecturers; any star ratings are submitted by students who have taken MH1403.
Teaching team as listed in public course information. AskSia does not rate lecturers; star ratings are submitted by students who have taken MH1403.
Formula & concept sheet
The vocabulary and formulas you must own
- Asymptotic complexity
- A description of how an algorithm's cost grows with input size, ignoring constant factors.
- Abstract data type
- A specification of operations and behaviour, separate from any particular implementation.
- Linked list
- A sequence of nodes each holding a reference to the next, giving cheap insertion but no direct indexing.
- Stack
- A last-in, first-out structure with insertion and removal at one end.
- Queue
- A first-in, first-out structure with insertion at one end and removal at the other.
- Binary search tree
- An ordered tree where every left descendant is smaller and every right descendant larger than the node.
- AVL tree
- A binary search tree maintaining a height difference of at most one between sibling subtrees.
- Rotation
- The local restructuring operation that restores balance after an insertion or deletion.
- Comparison sort
- A sorting algorithm whose only access to elements is pairwise comparison.
- Divide-and-conquer
- Splitting a problem into independent subproblems, solving them and combining the results.
- Greedy algorithm
- An algorithm making the locally best choice at each step, correct only when the problem structure allows it.
- Dynamic programming
- Solving overlapping subproblems once and reusing the stored results.
- Optimal substructure
- The property that an optimal solution contains optimal solutions to its subproblems.
Common acronyms: AU · AVL · ILO.
Where it fits
Prerequisites, related courses & why it matters
The published prerequisites are PS0001, BS1009, CV1014, MS1008 or MA1008, or the pairs CB0494 with CH2107 or CB0494 with BG2211; CB0494 is listed as a co-requisite. MH1403 carries 3 Academic Units and 39 contact hours, and is offered in Semester 2. The published textbook is Goodrich and Tamassia, Algorithm Design and Applications (Wiley, 2014), with Huang and Ng, Data Structures and Algorithms (Pearson Education South Asia, 2007) as reference; NTU notes both are available in its libraries.
Your MH1403 study toolkit
Study the course with Sia, not just read about it
Each tool already knows MH1403: your syllabus, your texts, and where the marks are. Grouped by how you study, from first contact to exam week.
FAQ
Frequently asked questions
Is MH1403 hard?
It rates moderately hard, and the reason is structural rather than conceptual. The material is standard first-course data structures, but 90% of the grade sits in the week 10 midterm and the final examination, so there is very little to absorb a bad sitting.
What is the assessment breakdown?
A 60% two-hour examination, a 30% midterm test in week 10, 6% for answering questions across 12 lectures, and 4% for four programming lab submissions.
Which programming language is used?
Python. ILO 1 is to implement data structures in Python, and the lab projects are to be solved by Python programming.
How much do the labs actually count?
Four percent in total, one mark per lab. All four must still be submitted — NTU states that a lab not submitted before its deadline counts as no submission.
How does the lecture participation mark work?
Questions are asked in 12 lectures. The published scale awards 6 marks for at least 8 correct answers, with lower bands down to 1 mark; answering more questions raises the band at a given correctness level.
What do I need before taking it?
A prior programming course from the published list — PS0001, BS1009, CV1014, MS1008 or MA1008, or one of the CB0494 pairings. CB0494 is listed as a co-requisite.
Study MH1403 with Sia
Work through introduction, python classes, array and the rest of the course with a tutor that knows it and quizzes you on the topics the assessments weight most heavily.
Start studying with Sia