---
url: https://docs.nemo12.com/curriculum/ap/cs-a/trace-code.md
description: >-
  Module 4.2 AP Computer Science A: đọc và lần tay code, nói đúng giá trị mọi
  biến ở từng dòng của đoạn code lạ mà không cần máy.
---

# Module 4.2 · Read and trace code (Đọc và lần tay code)

Thuộc [Package 4 · AP Computer Science A](/curriculum/ap/cs-a/).

| | |
| --- | --- |
| **Unit** | 4 |
| **Mastery level** | 10 tới 12 |
| **Lớp (VN)** | 10 tới 11 |
| **Key concept chính** | Iteration (Lặp) |

## Dạy module này theo kiểu IB

Mỗi buổi bắt đầu bằng một đoạn code chiếu lên màn hình, laptop gập lại: cả lớp viết bảng giá trị biến rồi mới mở máy đối chiếu. Ai đoán sai phải chỉ ra dòng mình bắt đầu lệch.

## Unit 1 · Tracing control flow (Lần tay luồng điều khiển)

> **Tôi sẽ làm được** lập bảng theo dõi biến qua vòng lặp lồng nhau và nói được số lần thân trong chạy.

**Mastery level 10-12 · Lớp 10 · Iteration (Lặp)**

| Bậc | Learner làm được gì |
| --- | --- |
| **Đang hình thành** | Lần được vòng lặp một tầng khi biến đếm tăng đều một đơn vị |
| **Đạt** | Lập bảng biến cho vòng lồng hai tầng có điều kiện bên trong, ra đúng output từng dòng in |
| **Vững** | Nhìn vòng lồng nói ngay số lần chạy thân trong theo n, và chỉ ra dòng nào không bao giờ chạy tới |

**Bằng chứng đạt.** Đoạn code in tam giác sao có điều kiện chen giữa: learner viết đủ bảng giá trị và output khớp máy từng kí tự.

**Hiểu lầm thường gặp.** Đọc code theo ý định của tên biến, ví dụ thấy biến tên count là tin nó đang đếm đúng.

**Knowledge node.** Lần tay luồng điều khiển

***

## Unit 2 · Boolean logic and short-circuit (Logic Boolean và tắt mạch)

> **Tôi sẽ làm được** rút gọn và phủ định biểu thức điều kiện phức, và biết vế phải nào KHÔNG được thực thi.

**Mastery level 10-12 · Lớp 10 · Syntax (Cú pháp)**

| Bậc | Learner làm được gì |
| --- | --- |
| **Đang hình thành** | Đọc đúng một điều kiện đơn có một phép so sánh |
| **Đạt** | Lập bảng chân trị cho điều kiện ba biến, viết được phủ định đúng của và cùng hoặc |
| **Vững** | Chỉ ra một điều kiện bị lỗi khi đảo thứ tự hai vế, vì vế trái đang chặn lỗi cho vế phải |

**Bằng chứng đạt.** Learner giải thích vì sao kiểm tra chỉ số trong biên phải đứng TRƯỚC phép truy cập mảng trong cùng một điều kiện, và code đảo lại thì hỏng thế nào.

**Hiểu lầm thường gặp.** Nghĩ Java luôn tính cả hai vế của phép và, nên coi thứ tự hai vế là tuỳ ý.

**Knowledge node.** Logic Boolean và tắt mạch

***

## Unit 3 · Strings and object references (Chuỗi và tham chiếu đối tượng)

> **Tôi sẽ làm được** phân biệt so sánh tham chiếu với so sánh nội dung, và lần tay các thao tác cắt chuỗi theo chỉ số.

**Mastery level 10-12 · Lớp 11 · Abstraction (Trừu tượng)**

| Bậc | Learner làm được gì |
| --- | --- |
| **Đang hình thành** | Gọi được các phương thức chuỗi thông dụng khi có ví dụ mẫu bên cạnh |
| **Đạt** | Lần đúng kết quả cắt chuỗi theo cặp chỉ số đầu và cuối, biết vì sao chuỗi không đổi tại chỗ mà tạo chuỗi mới |
| **Vững** | Vẽ sơ đồ ô nhớ cho hai biến trỏ cùng một đối tượng và dự đoán đúng khi nào sửa qua biến này thấy được ở biến kia |

**Bằng chứng đạt.** Learner dự đoán đúng output của đoạn code so sánh hai chuỗi bằng toán tử bằng và bằng phương thức so nội dung, kèm sơ đồ tham chiếu.

**Hiểu lầm thường gặp.** So sánh hai chuỗi bằng toán tử bằng rồi thấy chạy đúng vài lần nên tin là cách này chuẩn.

**Knowledge node.** Chuỗi và tham chiếu đối tượng

***

## Unit 4 · Recursion (Đệ quy)

> **Tôi sẽ làm được** vẽ cây lời gọi của một hàm đệ quy và nói giá trị trả về được ghép lại từ đâu.

**Mastery level 11-12 · Lớp 11 · Abstraction (Trừu tượng)**

| Bậc | Learner làm được gì |
| --- | --- |
| **Đang hình thành** | Nhận ra hàm đang gọi lại chính nó và chỉ được trường hợp cơ sở |
| **Đạt** | Vẽ đủ cây lời gọi cho đầu vào nhỏ, ghi giá trị trả về ngược từ lá lên, ra đúng kết quả cuối |
| **Vững** | Sửa một hàm đệ quy chạy vô hạn bằng cách chỉ ra tham số nào không tiến về trường hợp cơ sở |

**Bằng chứng đạt.** Với hàm đệ quy trên chuỗi, learner vẽ cây lời gọi cho đầu vào bốn kí tự và ra đúng chuỗi kết quả trước khi chạy máy.

**Hiểu lầm thường gặp.** Nghĩ lời gọi đệ quy chạy xong là hàm kết thúc luôn, quên phần code SAU lời gọi vẫn còn phải chạy.

**Knowledge node.** Đệ quy

***

[Module 4.3 · Algorithms and free response →](/curriculum/ap/cs-a/algorithms-frq)
