Giáo án Tin học 10 · Toàn bộ sách chính (đồ họa và Python)
Tin họcLớp 10Phần 5. Chủ đề 5. Giải quyết vấn đề với sự trợ giúp của máy tính

Giáo án Bài 23. Một số lệnh làm việc với dữ liệu danh sách

Kế hoạch bài dạy theo mẫu Công văn 5512/BGDĐT-GDTrH · 1 tiết (45 phút)

I. Mục tiêu

1. Kiến thức

  • Nêu được tác dụng của các lệnh append, insert, remove, pop và lệnh in khi làm việc với danh sách.
  • Giải thích được sự khác nhau giữa a.remove(x) (xóa theo giá trị) và a.pop(i) (xóa theo vị trí, trả về phần tử bị xóa).
  • Giải thích được vì sao các thao tác thêm, xóa làm thay đổi độ dài danh sách và chỉ số của các phần tử sau đó.
  • Vận dụng được các lệnh trên để viết chương trình Python xử lí danh sách và dự đoán kết quả in ra.

2. Năng lực

a) Năng lực chung

  • Tự chủ và tự học: Tự dự đoán kết quả của đoạn lệnh, kiểm tra lại bằng cách chạy chương trình và tự sửa lỗi khi kết quả khác dự đoán.
  • Giao tiếp và hợp tác: Làm việc theo cặp, trao đổi và giải thích kết quả dự đoán cho bạn; trình bày lập luận khi báo cáo trước lớp.
  • Giải quyết vấn đề và sáng tạo: Phân tích yêu cầu bài toán (thêm 5, xóa 7, tính tổng), lựa chọn lệnh phù hợp và đề xuất cách phòng tránh lỗi khi xóa giá trị không có trong danh sách.

b) Năng lực đặc thù

  • Sử dụng và quản lí các phương tiện công nghệ thông tin và truyền thông: Sử dụng máy tính và môi trường lập trình Python (IDLE hoặc trình thực thi trực tuyến) để nhập, chạy và kiểm tra chương trình.
  • Giải quyết vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông: Viết chương trình tính tổng danh sách sau khi thêm và xóa phần tử, đối chiếu với kết quả tính tay.
  • Ứng dụng công nghệ thông tin và truyền thông trong học và tự học: Sử dụng bài giảng và bài tập tương tác trên NeoEdu để luyện tập và tự kiểm tra kết quả.

3. Phẩm chất

  • Chăm chỉ: Hoàn thành đầy đủ các bài tập dự đoán và viết chương trình trong thời gian quy định.
  • Trung thực: Ghi lại đúng kết quả chạy thực tế, không sửa kết quả để khớp với dự đoán ban đầu; thừa nhận khi dự đoán sai.
  • Trách nhiệm: Kiểm tra điều kiện trước khi xóa (ví dụ kiểm tra giá trị có trong danh sách) để tránh lỗi khi chạy chương trình.

II. Thiết bị dạy học và học liệu

1. Giáo viên

  • Máy tính, máy chiếu, bảng phụ và môi trường lập trình Python (IDLE).
  • Phiếu học tập số 1 (in hoặc chiếu lên màn hình).
  • Học liệu số NeoEdu: trang bài học có bài giảng, ví dụ và bài tập tương tác tại neoedu.vn/learn/10/informatics/bai-23-mot-so-lenh-lam-viec-voi-du-lieu-danh-sach.

2. Học sinh

  • Máy tính có cài Python (IDLE) hoặc truy cập được trình thực thi Python trực tuyến.
  • Vở ghi, bút, giấy nháp để tính tay và dự đoán kết quả.
  • Thẻ dự đoán (hoặc giấy ghi nhanh) để ghi kết quả dự đoán trước khi chạy chương trình.

III. Tiến trình dạy học

Hoạt động 1: Mở đầu · 5 phút

Dự đoán danh sách thay đổi thế nào

a) Mục tiêu

Huy động kiến thức nền về danh sách và xác định nhiệm vụ học tập: làm thế nào để thêm, xóa phần tử trong danh sách bằng lệnh Python.

b) Nội dung

GV đưa ra danh sách a=[4,7,2] và hỏi HS: Nếu thêm số 5 vào cuối rồi xóa số 7 thì danh sách còn lại những số nào? Tổng các số là bao nhiêu? HS dự đoán trên giấy nháp, sau đó GV nêu nhiệm vụ của bài: tìm hiểu các lệnh thêm, chèn, xóa phần tử trong danh sách.

c) Sản phẩm

Dự đoán ban đầu của HS: danh sách sau thao tác là 4, 2, 5 và tổng là 11. HS nêu được mục tiêu bài học: nắm các lệnh append, insert, remove, pop và cách kiểm tra phần tử có trong danh sách.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV chiếu danh sách a=[4,7,2] và đặt câu hỏi: Sau khi thêm 5 vào cuối rồi xóa 7, danh sách còn lại những số nào? Tổng bằng bao nhiêu? Yêu cầu HS dự đoán và ghi ra giấy nháp trong 1 phút.

    Học sinh

    HS đọc đề, ghi dự đoán ra giấy nháp (ví dụ: danh sách còn 4, 2, 5; tổng 11).

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV quan sát, gọi một vài HS đọc dự đoán, không nhận xét đúng sai ngay.

    Học sinh

    HS trao đổi nhanh với bạn bàn bên cạnh về cách mình tính.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 2–3 HS trình bày dự đoán và lí do, ghi lên bảng các dự đoán khác nhau.

    Học sinh

    HS trình bày, ví dụ: "Em thêm 5 vào sau cùng, rồi bỏ số 7 nên còn 4, 2, 5, tổng là 11."

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV giới thiệu nhiệm vụ bài học: các lệnh làm việc với danh sách. GV nhấn mạnh: thao tác thay đổi độ dài danh sách và vị trí các phần tử, nên cần dự đoán cẩn thận trước khi chạy.

    Học sinh

    HS ghi tên bài học và mục tiêu vào vở.

Hoạt động 2.1: Hình thành kiến thức mới · 10 phút

Thêm và chèn phần tử vào danh sách

a) Mục tiêu

Giải thích được tác dụng của append và insert; dự đoán được vị trí phần tử mới và độ dài danh sách sau khi thêm.

b) Nội dung

HS làm việc theo cặp với Phiếu học tập số 1 (phần A) và thực hành trên máy tính: lệnh a.append(x) thêm x vào cuối; lệnh a.insert(i, x) chèn x vào vị trí i (chỉ số bắt đầu từ 0). Mỗi cặp dự đoán kết quả của đoạn lệnh a=[2,5], a.append(8), print(len(a)) và của đoạn a=[2,5], a.insert(1,9), print(a), sau đó chạy kiểm tra.

c) Sản phẩm

Kết quả đúng: sau a.append(8), danh sách là [2, 5, 8], len(a) cho 3. Sau a.insert(1, 9), danh sách là [2, 9, 5]. HS rút ra: append luôn thêm vào cuối; insert đẩy các phần tử từ vị trí i trở đi sang phải và làm tăng độ dài danh sách thêm 1.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV phát Phiếu học tập số 1 (phần A) và hướng dẫn HS chia cặp. GV nêu nhiệm vụ: dự đoán trước, sau đó nhập lệnh vào IDLE và so sánh kết quả.

    Học sinh

    HS nhận phiếu, ngồi cặp và đọc yêu cầu.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV đi quanh lớp, nhắc HS chú ý chỉ số bắt đầu từ 0 và kiểm tra kết quả chạy so với dự đoán.

    Học sinh

    HS ghi dự đoán, nhập đoạn lệnh, chạy và ghi kết quả thực tế vào phiếu. Ví dụ: một HS hỏi "insert(1, 9) thì 9 nằm ở vị trí nào?" và bạn trả lời "vị trí thứ hai, chỉ số 1".

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 2 cặp báo cáo kết quả, yêu cầu giải thích vì sao độ dài tăng lên 1 khi chèn. GV ghi kết quả lên bảng.

    Học sinh

    HS trình bày: "append thêm 8 vào cuối, danh sách có 3 phần tử, len cho 3"; "insert(1, 9) chèn 9 vào chỉ số 1, số 5 bị đẩy sang phải."

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: append(x) thêm x ở cuối; insert(i, x) chèn x tại chỉ số i; cả hai đều làm tăng độ dài danh sách. GV nhấn mạnh chỉ số bắt đầu từ 0.

    Học sinh

    HS ghi vào vở: append thêm cuối; insert chèn theo vị trí; độ dài tăng 1.

Hoạt động 2.2: Hình thành kiến thức mới · 12 phút

Xóa phần tử: remove, pop và kiểm tra có mặt

a) Mục tiêu

Phân biệt được remove(x) (xóa lần xuất hiện đầu của giá trị x), pop(i) (xóa và trả phần tử ở vị trí i), và dùng in để kiểm tra sự có mặt của giá trị.

b) Nội dung

HS làm Phiếu học tập số 1 (phần B) và chạy thử đoạn lệnh: a=[3,7,3], a.remove(3), print(a[0]); a=[4,9,2], x=a.pop(), print(x); a=[4,7,2], print(5 in a). Sau đó HS so sánh: a.remove(7) khác a.pop(1) ở điểm nào?

c) Sản phẩm

Kết quả: với [3,7,3], sau remove(3) danh sách còn [7,3] và a[0] là 7. Với [4,9,2], pop() trả về 2 và xóa phần tử cuối. Với 5 in [4,7,2] kết quả là False. HS rút ra: remove(x) xóa theo giá trị, chỉ xóa lần xuất hiện đầu và không trả về giá trị; pop(i) xóa theo vị trí và trả về phần tử bị xóa; x in a chỉ kiểm tra có hay không, không cho biết vị trí.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV chiếu Phiếu học tập số 1 (phần B) và yêu cầu HS dự đoán từng đoạn lệnh trước khi chạy.

    Học sinh

    HS đọc đề, dự đoán kết quả từng đoạn và ghi vào phiếu.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV hướng dẫn HS chạy từng đoạn lệnh, nhắc HS quan sát danh sách sau mỗi thao tác bằng cách in a.

    Học sinh

    HS nhập và chạy chương trình, so sánh kết quả với dự đoán. Nếu sai, HS thảo luận với bạn để tìm nguyên nhân.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời HS trình bày sự khác nhau giữa remove và pop, đặt câu hỏi: Nếu danh sách có hai số 3 thì remove(3) xóa số nào?

    Học sinh

    HS trả lời: "remove(3) chỉ xóa số 3 đầu tiên, số 3 cuối vẫn còn." "pop() không có đối số thì lấy phần tử cuối và trả về nó."

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt kiến thức: remove(x) xóa theo giá trị (lần đầu); pop(i) xóa và trả phần tử theo chỉ số, mặc định là phần tử cuối; x in a kiểm tra có mặt. GV nhắc: sau thao tác xóa, chỉ số các phần tử phía sau có thể thay đổi.

    Học sinh

    HS ghi tóm tắt ba lệnh vào vở, đánh dấu chỗ khác nhau giữa remove và pop.

Hoạt động 3: Luyện tập · 10 phút

Luyện tập dự đoán kết quả và kiểm tra điều kiện

a) Mục tiêu

Vận dụng các lệnh đã học để dự đoán đúng kết quả đoạn lệnh; nhận biết lỗi khi xóa giá trị không có trong danh sách và cách phòng tránh.

b) Nội dung

HS làm bài tập trên NeoEdu (bài tập tương tác) hoặc trên phiếu, gồm: (1) Đoạn a=[2,5], a.append(8), print(len(a)) in ra số nào? (2) Đoạn a=[3,7,3], a.remove(3), print(a[0]) in ra số nào? (3) Đoạn a=[4,9,2], x=a.pop(), print(x) in ra số nào? (4) Để kiểm tra 5 có trong a không, dùng cách nào: A. 5 in a; B. a=5; C. a+5; D. 5 is a? (5) Lệnh remove xóa tất cả các lần lặp của một giá trị đúng hay sai? (6) Thêm 5 vào [4,7,2] rồi xóa 7, in tổng. Viết chương trình hoàn chỉnh và kiểm tra. (7) Nếu remove(9) mà danh sách không có 9 thì cần phòng tránh thế nào?

c) Sản phẩm

Đáp án: (1) 3; (2) 7; (3) 2; (4) A. 5 in a; (5) Sai, remove chỉ xóa lần xuất hiện đầu; (6) Chương trình: a=[4,7,2], a.append(5), a.remove(7), print(sum(a)); kết quả in 11, danh sách còn 4, 2, 5; (7) Kiểm tra if 9 in a: trước khi gọi a.remove(9), hoặc xử lí thông báo khi không có 9; không được giả định 9 đã bị xóa. Danh sách vẫn là 4, 2, 5 và tổng là 11.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV giao bài tập 1–7 trên NeoEdu hoặc trình chiếu; yêu cầu HS làm nhanh câu 1–5 trước, sau đó viết chương trình câu 6, 7.

    Học sinh

    HS mở trang bài tập NeoEdu hoặc đọc đề trên bảng, chuẩn bị giấy nháp.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV theo dõi, gợi ý khi HS bế tắc (ví dụ: "Hãy in danh sách sau mỗi bước để xem chuyện gì xảy ra").

    Học sinh

    HS làm bài cá nhân, sau đó chạy chương trình câu 6, 7 và kiểm tra kết quả. Một HS trả lời câu 7: "Em dùng if 9 in a: rồi mới gọi remove."

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời HS đọc đáp án từng câu, yêu cầu HS giải thích lí do chọn đáp án câu 4 và câu 5.

    Học sinh

    HS đọc đáp án và giải thích. Ví dụ: "Câu 4 chọn A vì 5 in a chỉ kiểm tra sự có mặt. Câu 5 là sai vì remove chỉ xóa lần đầu."

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV nhận xét, chốt lại lỗi thường gặp: gọi remove với giá trị không tồn tại sẽ gây lỗi; cần kiểm tra bằng in trước khi xóa. GV nhắc HS đối chiếu kết quả chạy với dự đoán.

    Học sinh

    HS sửa lại bài làm nếu sai và ghi chú cách phòng tránh lỗi vào vở.

Hoạt động 4: Vận dụng · 8 phút

Quản lí danh sách điểm kiểm tra của lớp

a) Mục tiêu

Vận dụng các lệnh thêm, xóa và kiểm tra có mặt để giải quyết tình huống thực tế: cập nhật danh sách điểm kiểm tra của lớp.

b) Nội dung

Tình huống: Lớp có danh sách điểm kiểm tra diem=[8,6,9,7]. Cô giáo cần (a) thêm điểm 10 của bạn mới chuyển đến vào cuối danh sách; (b) xóa điểm 6 do bạn đó đã nộp lại bài sai đề; (c) nếu điểm 4 không có trong danh sách thì in thông báo, không xóa; (d) in tổng điểm và số lượng điểm còn lại. HS viết chương trình và chạy thử, sau đó về nhà thử với một danh sách điểm khác.

c) Sản phẩm

Kết quả khi chạy: sau (a) và (b), danh sách là [8, 9, 7, 10]; tổng là 34; số lượng điểm là 4. Với điểm 4 không có trong danh sách, chương trình in thông báo "Không có điểm 4" và không gọi remove. HS hiểu cách áp dụng: kiểm tra có mặt bằng in trước khi xóa, và giải thích được vì sao độ dài danh sách thay đổi.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV nêu tình huống và yêu cầu HS viết chương trình gồm bốn yêu cầu (a)–(d). GV nhắc HS dùng điều kiện if ... in ... cho yêu cầu (c).

    Học sinh

    HS đọc tình huống, xác định các lệnh cần dùng: append, remove, in, sum, len.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV hướng dẫn HS làm theo cặp, khuyến khích kiểm tra lại kết quả bằng cách in danh sách sau mỗi bước.

    Học sinh

    HS viết và chạy chương trình, so sánh với kết quả mong đợi [8, 9, 7, 10], tổng 34, số lượng 4.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 1–2 cặp trình bày chương trình và kết quả, đặt câu hỏi: Nếu bỏ kiểm tra điều kiện thì điều gì xảy ra với điểm 4?

    Học sinh

    HS trả lời: "Chương trình sẽ báo lỗi vì remove không tìm thấy giá trị 4."

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: khi làm việc với danh sách, cần kiểm tra điều kiện trước khi xóa; các thao tác thêm, xóa làm thay đổi độ dài và chỉ số phần tử. GV giao nhiệm vụ về nhà.

    Học sinh

    HS ghi nhận kiến thức và hoàn thành nhiệm vụ về nhà.

Phiếu học tập

Phiếu học tập số 1

Phần A: Thêm và chèn phần tử

  • Đoạn lệnh 1: a=[2,5], a.append(8), print(len(a)). Dự đoán kết quả: ...; kết quả khi chạy: ...
  • Đoạn lệnh 2: a=[2,5], a.insert(1,9), print(a). Dự đoán danh sách: ...; kết quả khi chạy: ...
  • Câu hỏi: Lệnh append thêm phần tử ở vị trí nào? Lệnh insert làm độ dài danh sách thay đổi như thế nào?

Phần B: Xóa phần tử và kiểm tra có mặt

  • Đoạn lệnh 3: a=[3,7,3], a.remove(3), print(a[0]). Dự đoán: ...; kết quả: ...
  • Đoạn lệnh 4: a=[4,9,2], x=a.pop(), print(x). Dự đoán: ...; kết quả: ...
  • Đoạn lệnh 5: a=[4,7,2], print(5 in a). Dự đoán: ...; kết quả: ...
  • Bảng so sánh (điền vào):
    • Lệnh remove(x): xóa theo ... ; xóa lần xuất hiện ...; có trả về giá trị không: ...
    • Lệnh pop(i): xóa theo ... ; mặc định xóa phần tử ...; có trả về giá trị không: ...
  • Câu hỏi: Nếu danh sách có hai số 3, remove(3) xóa số nào?

Hướng dẫn về nhà

  • Hoàn thành bài tập tương tác trên NeoEdu (neoedu.vn/learn/10/informatics/bai-23-mot-so-lenh-lam-viec-voi-du-lieu-danh-sach) và ghi lại các câu sai kèm lí do.
  • Viết chương trình Python: cho danh sách a=[4,7,2], thêm 5 vào cuối, xóa 7, in tổng. Chạy thử và kiểm tra kết quả có bằng 11 không; sau đó thử với danh sách khác do em tự chọn.
  • Viết đoạn lệnh kiểm tra trước khi xóa: nếu số 9 có trong danh sách thì xóa, nếu không thì in thông báo "Không có 9". Chạy thử với hai trường hợp.

Giáo án do NeoEdu soạn với sự hỗ trợ của AI, dựa trên nội dung bài học trên Học liệu. Thầy cô nên đọc lại và điều chỉnh cho phù hợp với học sinh của mình; bản Word để sửa trực tiếp.