DIP Past Questions
CSE 4227 · Digital Image Processing

DIP Past Questions

Her past finals from Fall 2021 to Spring 2025 (90 questions, her parts only) and the Fall 2025 quiz questions that were collected (12), cut out one by one, with one worked answer per topic.

Exam format, Fall 2025

CLO125Answer 5 of 6, 5 marks eachWhy / what / describe / how (from memory)
CLO2244 x 6 or 3 x 8 (option count not stated)Apply algorithm to given input; write theory, equation, calculation; proofs
CLO321Answer 3 of 4, 7 marks eachCase study: pick technique and justify why; to-the-point answers score

What she said in class

From her Spring 2025 suggestion class (translated)

Most repeated topics

How many of her 8 finals each topic appeared in.

One solved question per topic (19)

A worked answer for one of her questions on each topic, newest first, done the way her slides do it. Tap to open.

01 Histogram equalization · Fall 2025 quiz 2 (set C) · Q2
Question F25-Q2C/2
Show worked answer
01234
012470
121315
252141
376314
Input image
rk01234567
nk16323212
Histogram h(rk) = nk (count each value)
00.0750.150.2250.30.0500.310.1520.130.1540.150.0560.17
Normalized histogram p(rk) = nk/N

Image is 4×5, so N = 20 pixels; L = 8 gray levels (0 to 7).

rkStep 1: nkStep 2: PDF p(rk)=nk/NStep 3: CDFStep 4: (L−1)·CDF = 7·CDFStep 5: sk (round)
010.05000.05000.35000
160.30000.35002.45002
230.15000.50003.50004
320.10000.60004.20004
430.15000.75005.25005
520.10000.85005.95006
610.05000.90006.30006
720.10001.00007.00007
Round-off rule from the slides: .5 goes up (3.5 → 4).
Gray level rkNew gray level skNo. of pixels nk
001
126
243
342
453
562
661
772
Mapping the new gray levels into number of pixels
sPixels in equalized image
01
10
26
30
45
53
63
72
Equalized histogram counts (add the nk that map to the same s)
01.534.561061322334251627
Original histogram (nk vs rk)
01.534.5610162354353627
Equalized histogram (n vs sk)
0123456701234567rs
Transformation function s = T(r) (staircase)
01234
024570
142426
264252
376425
Equalized output image (replace each r by its s)
02 Filters at one pixel + bit planes · Spring 2025 final · Q2b
Question SP25-F/2b
Show worked answer

Bit plane 2 is the MSB (weight 4), plane 1 has weight 2, plane 0 has weight 1 (3-bit image).

0123456
01111111
11110111
21100011
31000001
41100011
50000000
61111111
Bit plane 2
0123456
01111111
11111111
21000001
30000000
40000000
51111111
61111111
Bit plane 1
0123456
01111111
11110111
21100011
31110111
41100011
51110111
61111111
Bit plane 0

value = 4·b2 + 2·b1 + 1·b0

0123456
07777777
17772777
27500057
35110115
45500055
53332333
67777777
Reconstructed original image

Task 1: 3×3 max filter at (3,2) (row 3, column 2, counted from 0 at the top-left)

012
0500
1110
2500
3×3 neighbourhood of (3,2) (zero padding outside)

sorted: 0, 0, 0, 0, 0, 1, 1, 5, 5 → max = 5

Max filter output at (3,2) = 5

Task 2: 3×3 negative Laplacian at (3,2)

012
00-10
1-14-1
20-10
mask: laplacian neg

Σ w·z = (-1)(0) + (-1)(1) + (4)(1) + (-1)(0) + (-1)(0) = 3

Laplacian response at (3,2) = 3

Task 3: mask that averages the 4 neighbours and leaves out the centre

012
0010
1101
2010
1/4 × (weights add to 1 after dividing by 4)

g(x,y) = ¼ [ f(x−1,y) + f(x+1,y) + f(x,y−1) + f(x,y+1) ]

03 Point transforms: stretch, negative, slicing · Fall 2025 quiz 1 (set C) · Q2a
Question F25-Q1C/2a
Show worked answer

Approach 1 (without background): s = 255 if 120 ≤ r ≤ 200, else 0

Approach 2 (with background): s = 255 if 120 ≤ r ≤ 200, else s = r

rin [120,200]?Approach 1 sApproach 2 s
100outside0100
150inside255255
220outside0220
00120120200200255255rs
Approach 1: highlight [120, 200], background to 0
00120120200200255255rs
Approach 2: highlight [120, 200], background kept (s = r)
04 Huffman, entropy, compression ratio · Spring 2025 final · Q2c
Question SP25-F/2c
Show worked answer

i) Original = 512 × 512 × 8 bits = 2,097,152 bits = 262,144 bytes = 256 KB. Compressed = 64 KB.

CR = 256 KB / 64 KB = 4 (4:1)

ii) RLE of AAAAABBBCCDAA

(A,5) (B,3) (C,2) (D,1) (A,2)

iii) ABAB… length 100: every run has length 1, so there are 100 runs → 100 (symbol, count) pairs.

Encoded length = 100 pairs × 2 bytes = 200 bytes, original = 100 bytes

CR = 100/200 = 0.5: RLE expands the data (slide 109: small runs give expansion instead of compression).

iv) Huffman for A 0.4, B 0.3, C 0.2, D 0.1

Sort by probability (largest first). Repeatedly add the two smallest and re-sort (a sum that ties goes below the equal ones). Then walk back from the last column: the upper branch gets 0, the lower gets 1.

SymbolProbabilityCodeReduction 1Reduction 2
A0.410.4  10.6  0
B0.3000.3  000.4  1
C0.20100.3  01
D0.1011
Huffman source reduction and code assignment

Lavg = Σ l(rk)·p(rk) = (0.4)(1) + (0.3)(2) + (0.2)(3) + (0.1)(3) = 1.9 bits/symbol

H = −Σ p·log2p = −(0.4)log2(0.4) + −(0.3)log2(0.3) + −(0.2)log2(0.2) + −(0.1)log2(0.1) = 1.8464 bits/symbol

Efficiency η = H / Lavg = 1.8464 / 1.9 = 97.18%

Lavg = 1.9 is just above the entropy 1.8464, as it must be (you cannot go below H).

05 LZW table · Spring 2025 final · Q3b
Question SP25-F/3b
Show worked answer
0123
07840100
17840100
27840100
37840100
Input image (8-bit)

Dictionary locations 0–255 already hold the single gray levels 0–255; new entries start at 256. Read the pixels left to right, top to bottom.

Currently recognized sequencePixel being processedEncoded outputDictionary location (code word)Dictionary entry
7
7872567-8
84082578-40
401004025840-100
1007100259100-7
78
7-8402562607-8-40
40100
40-100725826140-100-7
78
7-840
7-8-401002602627-8-40-100
1007
100-78259263100-7-8
840
8-401002572648-40-100
100100
LZW encoding

Encoded output: 7 8 40 100 256 258 260 259 257 100

Original = 16 pixels × 8 bits = 128 bits; encoded = 10 codes × 9 bits = 90 bits

CR = 128/90 = 1.4222

06 RLE, Golomb, RMSE · Fall 2024 final · Part B · Q3b
Question F24-F/B3b
Show worked answer

Same image and same +2 error as the RMSE question above: erms = 2.

valuecountP
111/9
222/9
322/9
433/9
511/9
Original image statistics

H = −Σ P log2P = 2.1972 bits/pixel

Best lossless compression for a 3-bit image = 3 / H = 3 / 2.1972 = 1.3654

A lossy coder can go beyond this ratio because it is allowed to change pixels; the price is the error measured by erms.

07 Arithmetic coding · Fall 2024 final · Part B · Q2
Question F24-F/B2
Show worked answer
SymbolProbabilityInitial sub-interval
a0.1[0, 0.1)
b0.4[0.1, 0.5)
c0.3[0.5, 0.8)
d0.2[0.8, 1)
Step 1: divide [0, 1) in the given order
SymbolCurrent intervalWidthNew low = low + width × sym-lowNew high = low + width × sym-high
b[0, 1)10 + 1×0.1 = 0.10 + 1×0.5 = 0.5
b[0.1, 0.5)0.40.1 + 0.4×0.1 = 0.140.1 + 0.4×0.5 = 0.3
a[0.14, 0.3)0.160.14 + 0.16×0 = 0.140.14 + 0.16×0.1 = 0.156
d[0.14, 0.156)0.0160.14 + 0.016×0.8 = 0.15280.14 + 0.016×1 = 0.156
c[0.1528, 0.156)0.00320.1528 + 0.0032×0.5 = 0.15440.1528 + 0.0032×0.8 = 0.15536
Step 2: narrow the interval for each symbol

Final interval = [0.1544, 0.15536)

Any number in that interval encodes "bbadc". Shortest: 0.155

08 Chain code + CFD / NCFD · Fall 2025 quiz 3 (set D) · Q2
Question F25-Q3D/2
Show worked answer
0123456
00010100
10101010
20100001
30010010
40001100
Boundary pixels as read from the figure (1 = black)

Walk the boundary anticlockwise, starting at top-left pixel (0,2). Directions (8-connected): 0 →, 1 ↗, 2 ↑, 3 ↖, 4 ←, 5 ↙, 6 ↓, 7 ↘.

movefrom → to (row, col)code
1(0,2) → (1,1)5
2(1,1) → (2,1)6
3(2,1) → (3,2)7
4(3,2) → (4,3)7
5(4,3) → (4,4)0
6(4,4) → (3,5)1
7(3,5) → (2,6)1
8(2,6) → (1,5)3
9(1,5) → (0,4)3
10(0,4) → (1,3)5
11(1,3) → (0,2)3

Chain code from top-left pixel (0,2) (CC): 56770113353 (11 moves)

Shape number (smallest circular shift of CC) → start-point invariant only: 01133535677

Circular first difference (CFD), slide 22 rule: each digit = (next code − this code) mod 8. The last digit wraps round: (first − last), because the boundary is closed.

icalculationCFD digit
1(6 − 5) mod 8 = 11
2(7 − 6) mod 8 = 11
3(7 − 7) mod 8 = 00
4(0 − 7) mod 8 = 11
5(1 − 0) mod 8 = 11
6(1 − 1) mod 8 = 00
7(3 − 1) mod 8 = 22
8(3 − 3) mod 8 = 00
9(5 − 3) mod 8 = 22
10(3 − 5) mod 8 = 66
11(5 − 3) mod 8 = 2 (wrap: first − last)2

CFD = 11011020262 → rotation invariant

NCFD = smallest circular shift of the CFD (start reading at digit 3) = 01102026211

Start + rotation invariant chain code (shape number) = 01102026211

09 Morphology on a grid · Fall 2025 quiz 4 (set C) · Q2
Question F25-Q4C/2
Show worked answer

You choose the image. Use something small and clean: a 4×4 square inside a 6×6 image, and a 3×3 square SE with the origin at the centre.

012345
0000000
1011110
2011110
3011110
4011110
5000000
A (6×6)
012
0111
1111
2111
B (3×3), origin centre

Algorithm (slide 61, edge detection by dilation): 1. dilate A by B; 2. subtract A. Edges = (A ⊕ B) − A.

012345
0111111
1111111
2111111
3111111
4111111
5111111
A ⊕ B
012345
0111111
1100001
2100001
3100001
4100001
5111111
(A ⊕ B) − A = outer edge

Inner boundary instead (slide 119): β(A) = A − (A ⊖ B).

012345
0000000
1000000
2001100
3001100
4000000
5000000
A ⊖ B
012345
0000000
1011110
2010010
3010010
4011110
5000000
β(A) = A − (A ⊖ B) = inner boundary

Write the set definitions too: A ⊕ B = {z | (B̂)z ∩ A ≠ ∅}, A ⊖ B = {z | (B)z ⊆ A}.

10 Hit-or-miss: corners and end points · Fall 2023 final · Q2e
Question F23-F/2e
Show worked answer
0123456789101112
00000000000000
10111110111110
20100010100010
30100000100000
40100000111110
50100000000010
60100010100010
70111110111110
Input image A

Each SE is 3×3: 1 = must be object, 0 = must be background, × = don't care. A pixel is marked when the SE fits it exactly (both its 1s and its 0s). Pixels outside the image count as background.

012
0×1×
1011
200×
B1 (has up and right neighbours: bottom-left corner)
0123456789101112
00000000000000
10000000000000
20000000000000
30000000000000
40000000100000
50000000000000
60000000000000
70100000100000
A ⊛ B1: 3 found
012
0×1×
1110
2×00
B2 (up and left: bottom-right corner)
0123456789101112
00000000000000
10000000000000
20000000000000
30000000000000
40000000000000
50000000000000
60000000000000
70000010000010
A ⊛ B2: 2 found
012
0×00
1110
2×1×
B3 (down and left: top-right corner)
0123456789101112
00000000000000
10000010000010
20000000000000
30000000000000
40000000000010
50000000000000
60000000000000
70000000000000
A ⊛ B3: 3 found
012
000×
1011
2×1×
B4 (down and right: top-left corner)
0123456789101112
00000000000000
10100000100000
20000000000000
30000000000000
40000000000000
50000000000000
60000000000000
70000000000000
A ⊛ B4: 2 found
0123456789101112
00000000000000
10100010100010
20000000000000
30000000000000
40000000100010
50000000000000
60000000000000
70100010100010
Combined: union of the four results = 10 corner pixels

10 corner pixels: (1,1), (1,5), (1,7), (1,11), (4,7), (4,11), (7,1), (7,5), (7,7), (7,11)

11 Canny with numbers · Fall 2023 final · Q3a
Question F23-F/3a
Show worked answer
012
0200 ↓40 ↓57 ↙
110 →20 ↑101 ←
250 ↑41 ↑74 ←
Given: magnitude M and gradient direction

Step 3. Non-maximum suppression: compare each pixel with its two neighbours along its gradient direction (the arrow). Keep it only if it is not smaller than both; otherwise set it to 0.

pixelMdirectionneighbours along directionresult
(0,0)200↓10kept
(0,1)40↓20kept
(0,2)57↙20kept
(1,0)10→20suppressed → 0
(1,1)20↑40, 41suppressed → 0
(1,2)101←20kept
(2,0)50↑10kept
(2,1)41↑20kept
(2,2)74←41kept
012
02004057
100101
2504174
gN(x,y) after non-maximum suppression

Step 4. Double thresholding with TH = 100, TL = 45: strong if gN ≥ 100; weak if 45 ≤ gN < 100; else 0.

012
020000
100101
2000
gNH(x,y): strong (sure) edges
012
00057
1000
250074
gNL(x,y): weak edges

Step 5. Hysteresis (connectivity): keep a weak pixel only if it is 8-connected to a strong pixel.

weak pixelvaluestrong 8-neighboursdecision
(0,2)57(1,2)kept (connected to a strong pixel)
(2,0)50nonediscarded
(2,2)74(1,2)kept (connected to a strong pixel)
012
0200057
100101
20074
Final edge map g(x,y)

ii) False positive / false negative: 74 at (2,2) is weak but survives because it touches the strong 101; if it is noise, it is a false positive. 50 at (2,0) is weak with no strong neighbour, so it is dropped; if it was a real edge, that is a false negative. The 40 and 41 are below TL and are removed for the same reason.

iii) TH = 245, TL = 10: no pixel reaches 245, so there are no strong edges. Hysteresis keeps a weak pixel only when it touches a strong one, so every weak pixel is dropped: the output is empty (all real edges become false negatives). A very low TL would otherwise let noise in (false positives); the rule of thumb is TH : TL = 2:1 or 3:1 (slide 52), and 245:10 breaks it.

12 Histogram matching (specification) · Slide 49–53: 64×64 image, specified pz = [0, 0, 0, .15, .20, .30, .20, .15]
Show worked answer

Step 1. Equalize the input histogram → Hk

rkStep 1: nkStep 2: PDF p(rk)=nk/NStep 3: CDFStep 4: (L−1)·CDF = 7·CDFStep 5: sk (round)
07900.19290.19291.35011
110230.24980.44263.09843
28500.20750.65014.55105
36560.16020.81035.67216
43290.08030.89066.23446
52450.05980.95046.65317
61220.02980.98026.86167
7810.01981.00007.00007
Round-off rule from the slides: .5 goes up (3.5 → 4).

Step 2. Equalize the specified histogram → Sk = G(z)

zqpz(zq)CDF7·CDFSk
00000
10000
20000
30.150.151.051
40.20.352.452
50.30.654.555
60.20.855.956
70.15177

Step 3. Map: for each rk take its Hk, find the S value closest to it, and read that z. If two S values are equally close, take the higher one (slide 58).

rknkHkclosest Soutput z
0790113
11023324
2850555
3656666
4329666
5245777
6122777
781777
zpixels in output
00
10
20
3790
41023
5850
6985
7448
Output histogram
0123456701234567rs
Specification transformation r → z
13 Region growing, split & merge, thresholding · Slides 14–15: region growing, 4-connectivity
Show worked answer
0123456
010101010101010
110101069701010
259106064595660
310591060701062
410605965671065
510101010101010
610101010101010
4-connectivity: region grown from the seed 60 at (3,3), |difference to the neighbour it grows from| ≤ 5

Region size = 13 pixels

14 Pixels, paths, distances, bits · Spring 2025 final · Q1b
Question SP25-F/1b
Show worked answer

4-neighbour (N4): the pixels above, below, left and right. 8-neighbour (N8): N4 plus the four diagonals. m-connectivity: q is m-adjacent to p if q ∈ N4(p), or q ∈ ND(p) and N4(p) ∩ N4(q) has no pixel with a value in V. It keeps the diagonal links of 8-connectivity but removes the double (ambiguous) paths.

0123
01010
10101
21010
30101
Image, V = {1}

4-connectivity: 8 component(s)

8-connectivity: 1 component(s)

m-connectivity: 1 component(s)

4-neighbours of every 1 are 0s, so under 4-connectivity each 1 is its own component. Diagonal neighbours are 1, so 8-connectivity joins them all. m-adjacency allows a diagonal link only when the two pixels share no 4-neighbour in V; here the shared 4-neighbours are all 0, so every diagonal link is allowed and the answer equals the 8-connected one.

Effect of diagonal adjacency: it merges pixels that touch only at corners, so the count drops from 8 to 1. m-connectivity keeps those joins but removes double (ambiguous) paths.

15 Colour models (+ RGB to CMY / HSI numbers) · Spring 2025 final · Q1c
Question SP25-F/1c
Show worked answer

Colour image: each pixel holds a vector of values, e.g. (R, G, B), one value per colour channel.

Additive mixing (light): coloured lights add up; R + G + B = white; used by monitors and cameras. Subtractive mixing (pigments): each ink absorbs some wavelengths; C + M + Y = black; used in printing.

Purpose of colour models: to specify colours in a standard, numeric way suited to a device or task (display, printing, analysis).

Printing: CMY/CMYK. Segmentation: HSI (HSV), because hue separates colour from brightness, so objects of one colour stay together under different lighting (deck 14 slide 12).

16 Segmentation and Canny theory · Fall 2025 quiz 3 (set D) · Q1
Question F25-Q3D/1
Show worked answer

Two principal approaches (based on two properties of intensity, deck 08 slide 6): discontinuity, which splits the image where intensity changes sharply (points, lines, edges; edge-based methods), and similarity, which groups pixels that are alike by a rule (thresholding, region growing, region splitting and merging).

Why LoG: the Laplacian is a second derivative and is extremely sensitive to noise; it also gives double edges. Smoothing first with a Gaussian removes the noise, then the Laplacian finds edges as zero crossings. One combined LoG mask is cheaper than two filters (slides 33–36).

17 Case: which morphology and why · Spring 2025 final · Q3c
Question SP25-F/3c
Show worked answer

i) Remove the small bright spots: opening A ∘ B = (A ⊖ B) ⊕ B with a small SE (e.g. 3×3 disk or square). Erosion deletes every bright spot smaller than the SE; the following dilation restores the roads (which are larger) to their size. Opening comes first so the noise is not enlarged or joined to the roads [3].

ii) Join the gaps: closing A • B = (A ⊕ B) ⊖ B, ideally with a line-shaped SE along the road direction. Dilation bridges the small gaps between road pieces; erosion brings the width back, so the roads become continuous without getting thicker [3].

iii) Highlight the boundaries: boundary extraction β(A) = A − (A ⊖ B) (or the morphological gradient (A ⊕ B) − (A ⊖ B)). Subtracting the eroded roads leaves only their outline [3].

iv) Yes. Clean, continuous outlines separate the thin connected road network from the background terrain and from blob-shaped buildings, so roads can be identified and measured [1].

18 Case: enhance, sharpen, segment · Spring 2025 final · Q3a
Question SP25-F/3a
Show worked answer

i) Two enhancement techniques [4]: (1) Median filter (3×3) to remove background noise specks while keeping stroke edges. (2) Local (adaptive) histogram equalization or contrast stretching per region to fix uneven illumination and make faded ink darker against the paper; a global method would leave the dark corner dark. (Alternatively: gamma correction / log for the faded ink.)

ii) Laplacian [3]: text strokes are thin, fine detail. The second derivative responds strongly to thin lines and points and is isotropic (all directions), so g = f − ∇²f makes faded strokes crisp. Sobel gives thicker edges and responds to direction, which suits large object boundaries more than thin text.

iii) Segmentation [3]: local (adaptive) thresholding, T(x,y) from the local mean (e.g. Niblack T = m + k·s), separates text from background even under uneven light (deck 09 slide 49–52). Then separate text lines with horizontal projection of the binary image (rows with no text pixels are gaps between lines) or connected components.

19 Case: mixed techniques · Spring 2025 final · Q3d
Question SP25-F/3d
Show worked answer

Write the three techniques below fully; each carries an equal share of the marks.

Power-law (gamma) transformation s = c·rγ: X-rays are often dark or washed out; γ < 1 brightens dark bone regions, γ > 1 darkens over-exposed ones, so faint fracture lines become visible. Advantage: simple, one parameter. Limitation: γ is chosen by trial and acts on the whole image, so it can also amplify noise.

Histogram analysis / equalization: the histogram shows whether the X-ray is dark or low-contrast; equalization spreads the gray levels so bone and the crack separate, and the histogram valley gives a threshold to separate bone from soft tissue. Advantage: automatic, no parameters. Limitation: global; it can over-enhance noise and has no position information.

Chain code: after segmenting the bone, its boundary is coded as a chain code; a fracture shows up as an abrupt change in the code (CFD/NCFD gives a start- and rotation-invariant shape number), so the bone outline can be compared with a normal one. Advantage: compact shape description. Limitation: sensitive to noise on the boundary; needs good segmentation.

Order: gamma or equalization (see the fracture) → edge detection and segmentation of the bone → chain code of its outline (describe and compare the shape).

Every question

Tap a paper to open it.

Finals

Spring 2025 final14 questions
Spring 2025 final · Q1a4 marks
Spring 2025 final · Q1a
Spring 2025 final · Q1b4 marks
Spring 2025 final · Q1b
Spring 2025 final · Q1c4 marks
Spring 2025 final · Q1c
Spring 2025 final · Q1d4 marks
Spring 2025 final · Q1d
Spring 2025 final · Q1e4 marks
Spring 2025 final · Q1e
Spring 2025 final · Q1f4 marks
Spring 2025 final · Q1f
Spring 2025 final · Q2a8 marks
Spring 2025 final · Q2a
Spring 2025 final · Q2b8 marks
Spring 2025 final · Q2b
Spring 2025 final · Q2c8 marks
Spring 2025 final · Q2c
Spring 2025 final · Q2d8 marks
Spring 2025 final · Q2d
Spring 2025 final · Q3a10 marks
Spring 2025 final · Q3a
Spring 2025 final · Q3b10 marks
Spring 2025 final · Q3b
Spring 2025 final · Q3c10 marks
Spring 2025 final · Q3c
Spring 2025 final · Q3d10 marks
Spring 2025 final · Q3d
Fall 2024 final · Part B5 questions
Fall 2024 final · QB1a5 marks
Fall 2024 final · QB1a
Fall 2024 final · QB1b5 marks
Fall 2024 final · QB1b
Fall 2024 final · QB25 marks
Fall 2024 final · QB2
Fall 2024 final · QB3a15 marks
Fall 2024 final · QB3a
Fall 2024 final · QB3b15 marks
Fall 2024 final · QB3b
Spring 2024 final13 questions
Spring 2024 final · Q1a5 marks
Spring 2024 final · Q1a
Spring 2024 final · Q1b5 marks
Spring 2024 final · Q1b
Spring 2024 final · Q1c5 marks
Spring 2024 final · Q1c
Spring 2024 final · Q1d5 marks
Spring 2024 final · Q1d
Spring 2024 final · Q1e5 marks
Spring 2024 final · Q1e
Spring 2024 final · Q2a9 marks
Spring 2024 final · Q2a
Spring 2024 final · Q2b9 marks
Spring 2024 final · Q2b
Spring 2024 final · Q2c9 marks
Spring 2024 final · Q2c
Spring 2024 final · Q3a8 marks
Spring 2024 final · Q3a
Spring 2024 final · Q3b8 marks
Spring 2024 final · Q3b
Spring 2024 final · Q3c8 marks
Spring 2024 final · Q3c
Spring 2024 final · Q3d8 marks
Spring 2024 final · Q3d
Spring 2024 final · Q3e8 marks
Spring 2024 final · Q3e
Fall 2023 final14 questions
Fall 2023 final · Q1a4 marks
Fall 2023 final · Q1a
Fall 2023 final · Q1b4 marks
Fall 2023 final · Q1b
Fall 2023 final · Q1c4 marks
Fall 2023 final · Q1c
Fall 2023 final · Q1d4 marks
Fall 2023 final · Q1d
Fall 2023 final · Q1e4 marks
Fall 2023 final · Q1e
Fall 2023 final · Q2a6 marks
Fall 2023 final · Q2a
Fall 2023 final · Q2b6 marks
Fall 2023 final · Q2b
Fall 2023 final · Q2c6 marks
Fall 2023 final · Q2c
Fall 2023 final · Q2d6 marks
Fall 2023 final · Q2d
Fall 2023 final · Q2e6 marks
Fall 2023 final · Q2e
Fall 2023 final · Q3a10 marks
Fall 2023 final · Q3a
Fall 2023 final · Q3b10 marks
Fall 2023 final · Q3b
Fall 2023 final · Q3c10 marks
Fall 2023 final · Q3c
Fall 2023 final · Q3d10 marks
Fall 2023 final · Q3d
Spring 2023 final14 questions
Spring 2023 final · Q1a9 marks
Spring 2023 final · Q1a
Spring 2023 final · Q1b9 marks
Spring 2023 final · Q1b
Spring 2023 final · Q2a5 marks
Spring 2023 final · Q2a
Spring 2023 final · Q2b5 marks
Spring 2023 final · Q2b
Spring 2023 final · Q2c5 marks
Spring 2023 final · Q2c
Spring 2023 final · Q2d5 marks
Spring 2023 final · Q2d
Spring 2023 final · Q2e5 marks
Spring 2023 final · Q2e
Spring 2023 final · Q2f5 marks
Spring 2023 final · Q2f
Spring 2023 final · Q3a8 marks
Spring 2023 final · Q3a
Spring 2023 final · Q3b8 marks
Spring 2023 final · Q3b
Spring 2023 final · Q3c8 marks
Spring 2023 final · Q3c
Spring 2023 final · Q3d8 marks
Spring 2023 final · Q3d
Spring 2023 final · Q3e8 marks
Spring 2023 final · Q3e
Spring 2023 final · Q3f8 marks
Spring 2023 final · Q3f
Fall 2022 final · Part A8 questions
Fall 2022 final · QA1a9 marks
Fall 2022 final · QA1a
Fall 2022 final · QA1b9 marks
Fall 2022 final · QA1b
Fall 2022 final · QA2a5 marks
Fall 2022 final · QA2a
Fall 2022 final · QA2b5 marks
Fall 2022 final · QA2b
Fall 2022 final · QA2c5 marks
Fall 2022 final · QA2c
Fall 2022 final · QA3a8 marks
Fall 2022 final · QA3a
Fall 2022 final · QA3b8 marks
Fall 2022 final · QA3b
Fall 2022 final · QA3c8 marks
Fall 2022 final · QA3c
Spring 2022 final14 questions
Spring 2022 final · Q1a9 marks
Spring 2022 final · Q1a
Spring 2022 final · Q1b9 marks
Spring 2022 final · Q1b
Spring 2022 final · Q2a5 marks
Spring 2022 final · Q2a
Spring 2022 final · Q2b8 marks
Spring 2022 final · Q2b
Spring 2022 final · Q3a5 marks
Spring 2022 final · Q3a
Spring 2022 final · Q3b8 marks
Spring 2022 final · Q3b
Spring 2022 final · Q4a5 marks
Spring 2022 final · Q4a
Spring 2022 final · Q4b8 marks
Spring 2022 final · Q4b
Spring 2022 final · Q5a5 marks
Spring 2022 final · Q5a
Spring 2022 final · Q5b8 marks
Spring 2022 final · Q5b
Spring 2022 final · Q6a5 marks
Spring 2022 final · Q6a
Spring 2022 final · Q6b8 marks
Spring 2022 final · Q6b
Spring 2022 final · Q7a5 marks
Spring 2022 final · Q7a
Spring 2022 final · Q7b8 marks
Spring 2022 final · Q7b
Fall 2021 final · Part B8 questions
Fall 2021 final · QB1a8 marks
Fall 2021 final · QB1a
Fall 2021 final · QB1b6 marks
Fall 2021 final · QB1b
Fall 2021 final · QB2a8 marks
Fall 2021 final · QB2a
Fall 2021 final · QB2b6 marks
Fall 2021 final · QB2b
Fall 2021 final · QB3a8 marks
Fall 2021 final · QB3a
Fall 2021 final · QB3b6 marks
Fall 2021 final · QB3b
Fall 2021 final · QB4a8 marks
Fall 2021 final · QB4a
Fall 2021 final · QB4b6 marks
Fall 2021 final · QB4b

Quizzes

Fall 2025 quizzes (the ones collected)12 questions
Fall 2025 quiz 1 · set C · Q16 marks
Fall 2025 quiz 1 · set C · Q1
Fall 2025 quiz 1 · set C · Q2a11 marks
Fall 2025 quiz 1 · set C · Q2a
Fall 2025 quiz 1 · set C · Q2b3 marks
Fall 2025 quiz 1 · set C · Q2b
Fall 2025 quiz 1 · set D · Q16 marks
Fall 2025 quiz 1 · set D · Q1
Fall 2025 quiz 1 · set D · Q2a4 marks
Fall 2025 quiz 1 · set D · Q2a
Fall 2025 quiz 1 · set D · Q2b10 marks
Fall 2025 quiz 1 · set D · Q2b
Fall 2025 quiz 2 · set C · Q16 marks
Fall 2025 quiz 2 · set C · Q1
Fall 2025 quiz 2 · set C · Q214 marks
Fall 2025 quiz 2 · set C · Q2
Fall 2025 quiz 3 · set D · Q16 marks
Fall 2025 quiz 3 · set D · Q1
Fall 2025 quiz 3 · set D · Q214 marks
Fall 2025 quiz 3 · set D · Q2
Fall 2025 quiz 4 · set C · Q13 marks
Fall 2025 quiz 4 · set C · Q1
Fall 2025 quiz 4 · set C · Q27 marks
Fall 2025 quiz 4 · set C · Q2