TỔNG QUAN VỀ TÀI LIỆU KẾ HOẠCH BÀI DẠY TIN HỌC 12: ĐỊNH HƯỚNG KHOA HỌC MÁY TÍNH

Tổng quan về giáo trình

Kế hoạch bài dạy Chuyên đề học tập Tin học 12 – Định hướng Khoa học máy tính là tài liệu sư phạm chuyên biệt do Vũ Thế Anh và Phan Thị Huệ biên soạn, được Nhà xuất bản Giáo dục Việt Nam phát hành. Tài liệu được thiết kế nhằm hỗ trợ giáo viên tổ chức giảng dạy nội dung Chuyên đề học tập Tin học 12 thuộc bộ sách giáo khoa Kết nối tri thức với cuộc sống, bám sát khung Chương trình Giáo dục phổ thông 2018 của Bộ Giáo dục và Đào tạo.

Về mặt phân công biên soạn, tác giả Phan Thị Huệ chịu trách nhiệm nội dung Chuyên đề 1 và Chuyên đề 3; tác giả Vũ Thế Anh phụ trách Chuyên đề 2. Toàn bộ hệ thống giáo án được cấu trúc hóa theo quy chuẩn Công văn 5512/BGDĐT-GDTrH, bảo đảm tính tường minh về mục tiêu kiến thức, năng lực chung, năng lực tin học và phẩm chất cần hình thành.

Mục tiêu học tập của tài liệu tập trung vào việc trang bị cho học sinh các khái niệm nền tảng về cấu trúc dữ liệu và giải thuật trong Khoa học máy tính, bao gồm cấu trúc tuyến tính (ngăn xếp, hàng đợi), cấu trúc phi tuyến tính (cây nhị phân, cây tìm kiếm nhị phân) và cấu trúc mạng lưới (đồ thị). Điểm đặc sắc của tài liệu là phương pháp tiếp cận gắn liền mô hình lý thuyết với lập trình thực nghiệm thông qua ngôn ngữ Python, giúp chuyển hóa các khái niệm trừu tượng thành các chương trình thực thi cụ thể.

+-------------------------------------------------------------------------+
|      CHUYÊN ĐỀ HỌC TẬP TIN HỌC 12 - ĐỊNH HƯỚNG KHOA HỌC MÁY TÍNH       |
+-------------------------------------------------------------------------+
| • Chuyên đề 1: Tìm hiểu một vài kiểu dữ liệu tuyến tính (Stack, Queue)   |
| • Chuyên đề 2: Cây tìm kiếm nhị phân trong sắp xếp và tìm kiếm (Tree)   |
| • Chuyên đề 3: Kĩ thuật duyệt đồ thị và ứng dụng (Graph, DFS, BFS)       |
+-------------------------------------------------------------------------+

Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

Cấu trúc nội dung của tài liệu được phân chia thành 3 chuyên đề học tập lớn với lộ trình phát triển logic chặt chẽ:

  1. Chuyên đề 1: Tìm hiểu một vài kiểu dữ liệu tuyến tính

    • Bài 1: Mô hình dữ liệu ngăn xếp và hàng đợi: Giới thiệu cơ chế LIFO (Last In First Out) của ngăn xếp (Stack) và cơ chế FIFO (First In First Out) của hàng đợi (Queue) thông qua các hình ảnh trực quan thực tế (chồng đĩa, dòng người xếp hàng tại cây ATM).
    • Bài 2: Kiểu dữ liệu ngăn xếp: Cài đặt ngăn xếp bằng kiểu dữ liệu danh sách (list) trong Python; xây dựng các hàm nguyên thủy: Stack(), push(S, x), pop(S), top(S), isEmptyStack(S) cùng cơ chế kiểm soát ngoại lệ ValueError.
    • Bài 3: Thực hành với dữ liệu ngăn xếp: Ứng dụng ngăn xếp giải quyết các bài toán: mô phỏng lịch sử duyệt web (chức năng quay lại trang trước backward và đi tới trang kế tiếp forward), kiểm tra tính hợp lệ của các cặp dấu ngoặc (), [], {} trong biểu thức toán học, quản lý ngăn xếp sách từ tệp sach.inp.
    • Bài 4: Kiểu dữ liệu hàng đợi: Cài đặt hàng đợi bằng list trong Python; xây dựng các hàm: Queue(), enqueue(Q, x), dequeue(Q), front(Q), isEmptyQueue(Q) và phương án cài đặt hàng đợi trên mảng có độ dài cố định $N$ thông qua con trỏ chỉ số backIdx.
    • Bài 5: Thực hành kiểu dữ liệu ngăn xếp và hàng đợi: Kết hợp cả hai cấu trúc dữ liệu để giải quyết bài toán mô phỏng hệ thống phân phối suất ăn trong bếp ăn tập thể dựa trên việc xử lý dữ liệu từ các tệp input1.inp và input2.inp.
  2. Chuyên đề 2: Tìm hiểu cây tìm kiếm nhị phân trong sắp xếp và tìm kiếm

    • Bài 6: Cây nhị phân: Định nghĩa cấu trúc cây tổng quát, các khái niệm nút (node), nút lá (leaf node), nút trong (inner node/branch node), cây con (subtree), mức (level), chiều cao (height), bậc (degree). Phân biệt cây nhị phân hoàn chỉnh (complete binary tree) và cây nhị phân hoàn hảo (perfect binary tree).
    • Biểu diễn và duyệt cây nhị phân: Phương pháp biểu diễn cây nhị phân hoàn chỉnh bằng mảng một chiều; các thuật toán duyệt cây: duyệt trước (preorder: gốc – trái – phải), duyệt giữa (inorder: trái – gốc – phải), duyệt sau (postorder: trái – phải – gốc).
    • Cây tìm kiếm nhị phân và thực hành: Cấu trúc cây tìm kiếm nhị phân (BST), thuật toán chèn nút, thuật toán tìm kiếm và đánh giá hiệu năng thao tác sắp xếp, truy xuất dữ liệu.
  3. Chuyên đề 3: Tìm hiểu kĩ thuật duyệt đồ thị và ứng dụng

    • Khái niệm và biểu diễn đồ thị: Khái niệm đỉnh, cạnh, đồ thị có hướng, đồ thị vô hướng; các phương pháp biểu diễn đồ thị trong bộ nhớ (ma trận kề, danh sách kề).
    • Kĩ thuật duyệt đồ thị: Thuật toán tìm kiếm theo chiều sâu (Depth-First Search - DFS) sử dụng ngăn xếp hoặc đệ quy; thuật toán tìm kiếm theo chiều rộng (Breadth-First Search - BFS) sử dụng hàng đợi; thực hành cài đặt thuật toán và ứng dụng giải các bài toán liên thông, đường đi.

Kiến thức nền tảng được xây dựng

Tài liệu cung cấp nền tảng lý thuyết cấu trúc dữ liệu và giải thuật tiêu chuẩn:

Cấu trúc dữ liệu Đặc điểm mô hình Cơ chế vận hành Thao tác cơ bản Cài đặt bằng Python list
Ngăn xếp (Stack) Tuyến tính, một đầu mở (top) LIFO (Last In First Out) push, pop, top, isEmptyStack append(x) thêm cuối, pop() xóa cuối danh sách
Hàng đợi (Queue) Tuyến tính, hai đầu mở (front, back) FIFO (First In First Out) enqueue, dequeue, front, isEmptyQueue append(x) thêm cuối, pop(0) xóa đầu danh sách
Cây nhị phân (Binary Tree) Phi tuyến tính, phân cấp, tối đa 2 con Gốc $\rightarrow$ Nhánh $\rightarrow$ Lá preorder, inorder, postorder Mảng 1 chiều ánh xạ 1-1 theo thứ tự mức
Đồ thị (Graph) Phi tuyến tính, tập hợp đỉnh và cạnh Đa hướng, có hướng DFS (ngăn xếp), BFS (hàng đợi) Ma trận kề / Danh sách kề

Kỹ năng phát triển

  1. Kỹ năng kỹ thuật (Technical Skills):

    • Xây dựng các module cấu trúc dữ liệu độc lập (Stack.py, Queue.py) để tái sử dụng trong các bài toán phức tạp.
    • Thao tác thành thạo trên kiểu dữ liệu list của Python, xử lý ngoại lệ cấu trúc (raise ValueError) khi can thiệp vào cấu trúc rỗng hoặc đầy.
    • Đọc và ghi dữ liệu cấu trúc từ tệp văn bản ngoại vi (sach.inp, input1.inp, input2.inp).
  2. Kỹ năng phân tích (Analytical Skills):

    • Nhận diện bản chất bài toán thực tế để trừu tượng hóa thành mô hình dữ liệu tương ứng (mô hình tiến/lùi trang web ánh xạ sang ngăn xếp; mô hình điều phối hàng người ánh xạ sang hàng đợi; biểu thức toán học phân cấp ánh xạ sang cây nhị phân).
    • Phân tích và so sánh chỉ số truy cập: chỉ số đầu (front) của hàng đợi tương ứng đáy (bottom) của ngăn xếp; chỉ số đuôi (back/rear) của hàng đợi tương ứng đỉnh (top) của ngăn xếp.
  3. Kỹ năng thực hành (Practical Competencies):

    • Viết chương trình kiểm tra cú pháp biểu thức toán học đa cấp chứa nhiều loại dấu ngoặc: (), [], {}.
    • Lập trình mô phỏng các bài toán xếp lịch và điều phối tài nguyên (bếp ăn tập thể, phân phối suất ăn dựa trên cơ chế kết hợp hàng đợi đăng ký và ngăn xếp thực phẩm).

Phương pháp giảng dạy và học tập

Tài liệu thiết kế tiến trình bài học dựa trên quy định chuẩn hóa của Công văn 5512/BGDĐT-GDTrH, chia mỗi bài dạy thành 4 hoạt động sư phạm kế tiếp nhau:

  • Hoạt động khởi động: Sử dụng các hiện tượng trực quan quen thuộc (chồng đĩa, rút tiền tại máy ATM, sơ đồ gia phả dòng họ, sơ đồ tổ chức bộ máy cơ quan) để dẫn dắt học sinh nhận thức được nhu cầu lưu trữ và tổ chức dữ liệu đặc thù.
  • Hoạt động hình thành kiến thức: Tổ chức học sinh thảo luận theo nhóm (thường chia lớp thành 6 nhóm). Giáo viên đóng vai trò chuyển giao nhiệm vụ thông qua hệ thống phiếu học tập (ví dụ: Phiếu học tập số 1, Phiếu học tập số 2 về ghép nối khái niệm và hàm tương ứng), học sinh tiếp nhận, nghiên cứu sách chuyên đề, báo cáo kết quả trên bảng và giáo viên tiến hành chuẩn hóa kiến thức.
  • Hoạt động luyện tập: Học sinh thực thi trực tiếp các bài tập lập trình cơ bản trên máy tính hoặc vở ghi, sửa lỗi thuật toán và kiểm tra kết quả chạy chương trình với các bộ dữ liệu thử nghiệm.
  • Hoạt động vận dụng: Mở rộng bài toán ra môi trường thực tế, yêu cầu học sinh xử lý các ràng buộc phức tạp hơn, viết chương trình có khả năng đọc tệp và xuất kết quả phân tích hệ thống.

Về phương pháp đánh giá, tài liệu kết hợp đánh giá thường xuyên thông qua sản phẩm học tập (phiếu học tập cá nhân/nhóm, vở ghi bài) và đánh giá năng lực lập trình thông qua kết quả thực thi mã nguồn Python trên máy tính.


Điểm nổi bật và cập nhật

  1. Tuân thủ khung chương trình GDPT 2018: Tài liệu được biên soạn hoàn toàn theo cấu trúc chuẩn đầu ra của chương trình Giáo dục phổ thông 2018 môn Tin học lớp 12, phân ban Định hướng Khoa học máy tính, hỗ trợ trực tiếp bộ sách giáo khoa Kết nối tri thức với cuộc sống.
  2. Hiện đại hóa ngôn ngữ lập trình: Thay thế cách tiếp cận lý thuyết thuần túy hoặc sử dụng các ngôn ngữ cũ bằng ngôn ngữ lập trình Python. Toàn bộ các cấu trúc ngăn xếp, hàng đợi, cây nhị phân đều được hiện thực hóa bằng mã nguồn Python rõ ràng, tận dụng linh hoạt các phương thức có sẵn của list (append, pop) kết hợp với tư duy lập trình hàm và module.
  3. Mô hình hóa bài toán thực tế: Các bài thực hành không dừng lại ở các bài toán số học đơn giản mà mô phỏng trực tiếp các ứng dụng phần mềm thực tế:
    • Hệ thống lịch sử trình duyệt web (Back/Forward trong Chrome, Bing).
    • Bộ kiểm tra cú pháp biểu thức toán học của trình biên dịch.
    • Hệ thống quản lý hàng đợi và điều phối dịch vụ đời sống.
  4. Cung cấp mã nguồn đồng bộ: Tài liệu đi kèm hệ thống liên kết mã nguồn mở (thông qua liên kết Google Drive được cung cấp trong bài giảng), giúp giáo viên và học sinh đối chiếu, chạy thử nghiệm trực tiếp và chỉnh sửa các bài tập mẫu.

Đối tượng sử dụng giáo trình

Tài liệu được định hình phục vụ các nhóm đối tượng sau:

  • Giáo viên Tin học trung học phổ thông: Sử dụng tài liệu làm khung giáo án chi tiết theo Công văn 5512/BGDĐT-GDTrH để tổ chức bài giảng Chuyên đề học tập Tin học 12 (Định hướng Khoa học máy tính).
  • Học sinh lớp 12 định hướng Khoa học máy tính: Sử dụng làm tài liệu tự học, đối chiếu mã nguồn và thực hành các bài tập thuật toán nâng cao trong chương trình học.
  • Sinh viên ngành Sư phạm Tin học và Công nghệ thông tin: Sinh viên năm 3, năm 4 có thể sử dụng tài liệu như một mô hình tham khảo chuẩn mực về phương pháp giảng dạy cấu trúc dữ liệu và giải thuật ở bậc học phổ thông.

Điều kiện tiên quyết (Prerequisites): Người học cần nắm vững kiến thức lập trình cơ bản trong Python, bao gồm các kiểu dữ liệu cơ sở, cấu trúc dữ liệu danh sách (list), cấu trúc điều khiển rẽ nhánh (if-else), vòng lặp (for, while), khái niệm hàm con (def) và các thao tác đọc/ghi tệp tin cơ bản (open, read, close).


Câu hỏi thường gặp

1. Tài liệu này phù hợp với đối tượng nào?

Tài liệu được biên soạn phục vụ giáo viên giảng dạy môn Tin học 12 theo chương trình GDPT 2018 (bộ sách Kết nối tri thức với cuộc sống - phân ban Khoa học máy tính) và học sinh lớp 12 cần tài liệu học tập, thực hành thuật toán có cấu trúc bài bản.

2. Cần kiến thức nền nào để tiếp cận tài liệu?

Người học cần có kiến thức cơ bản về lập trình Python (hàm, vòng lặp, xử lý danh sách list và thao tác nhập/xuất dữ liệu với tệp tin) để có thể đọc hiểu và cài đặt các thuật toán trong tài liệu.

3. Điểm khác biệt của tài liệu này so với các tài liệu giảng dạy Tin học trước đây?

Tài liệu tích hợp toàn diện phương pháp sư phạm của Công văn 5512/BGDĐT-GDTrH với việc cài đặt thực nghiệm hoàn toàn bằng Python. Cấu trúc bài học không nặng về lý thuyết thuần túy mà đi thẳng vào phân tích mô hình, xây dựng thư viện module và giải quyết các bài toán mô phỏng thực tế.

4. Làm sao để tự học và triển khai bài giảng hiệu quả với tài liệu?

Người học và giáo viên nên triển khai theo từng bước: đọc hiểu cơ chế mô hình qua các ví dụ thực tế $\rightarrow$ xây dựng các hàm cơ sở của cấu trúc dữ liệu vào tệp thư viện riêng (Stack.py, Queue.py) $\rightarrow$ nhập mã nguồn và chạy thử các bài thực hành trên môi trường lập trình Python.

5. Có tài liệu bổ trợ nào kèm theo không?

Tài liệu đi kèm các phiếu học tập chi tiết trong từng bài học, hệ thống mã nguồn mẫu được lưu trữ trực tuyến (qua liên kết Google Drive trong văn bản), cùng sách chuyên đề học tập (SCĐ) và sách giáo viên (SGV) thuộc bộ sách Kết nối tri thức với cuộc sống.


Kết luận

Kế hoạch bài dạy Chuyên đề học tập Tin học 12 – Định hướng Khoa học máy tính của tác giả Vũ Thế Anh và Phan Thị Huệ cung cấp một hệ thống bài giảng hoàn chỉnh về mặt sư phạm lẫn chuyên môn học thuật. Tài liệu giúp cấu trúc hóa quá trình giảng dạy các nội dung cốt lõi của Khoa học máy tính: từ các kiểu dữ liệu tuyến tính (ngăn xếp, hàng đợi) đến các cấu trúc dữ liệu phi tuyến tính (cây nhị phân, cây tìm kiếm nhị phân, đồ thị).

Lộ trình học tập được thiết kế tuyến tính, tăng dần về độ phức tạp:

  1. Nắm bắt cơ chế LIFO/FIFO và cài đặt ngăn xếp, hàng đợi trên Python.
  2. Xây dựng cấu trúc phân cấp cây nhị phân, ánh xạ mảng một chiều và các thuật toán duyệt cây.
  3. Làm chủ kỹ thuật biểu diễn và duyệt đồ thị theo chiều sâu (DFS), chiều rộng (BFS).

Tài liệu là nguồn tham chiếu sư phạm và kỹ thuật chuẩn mực cho việc giảng dạy và nghiên cứu chuyên đề Khoa học máy tính lớp 12 hiện nay.