Giáo án chuyên đề KHMT 12 kết nối: Bài 3 Thực hành kiểu dữ liệu ngăn xếp

Trọn bộ giáo án chuyên đề tin học khoa học máy tính 12 sách kết nối tri thức cả năm file word. Giáo án bài 3 Thực hành kiểu dữ liệu ngăn xếp. Bài soạn bám sát theo chương trình mới được trình bày khoa học, kiến thức trọng tâm, dễ dàng giảng dạychỉnh sửa đơn giản khi cần.

Nội dung chi tiết

Ngày soạn:…/…/…

Ngày dạy:…/…/…

BÀI 3: THỰC HÀNH KIỂU DỮ LIỆU NGĂN XẾP

(2 tiết)

I. MỤC TIÊU

1. Kiến thức

Sau bài học này, HS sẽ:

  • Biết cách sử dụng kiểu dữ liệu ngăn xếp để giải quyết các bài toán thực tế.

2. Năng lực

Năng lực chung:

  • Năng lực giao tiếp và hợp tác: Biết lựa chọn hình thức làm việc nhóm với quy mô phù hợp với yêu cầu và thực hiện tốt nhiệm vụ.

  • Năng lực tự chủ và tự học: Chủ động học tập, tìm hiểu nội dung bài học, biết lắng nghe và trả lời nội dung trong bài học.

  • Giải quyết vấn đề và sáng tạo: Trả lời được các câu hỏi, giải quyết được các vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông.

Năng lực Tin học:

  • Có khả năng phân tích yêu cầu của bài toán để sử dụng kiểu dữ liệu ngăn xếp một cách phù hợp.

3. Phẩm chất

  • Chăm chỉ: Tích cực tìm tòi và sáng tạo trong học tập.

  • Trách nhiệm: Hoàn thành các nhiệm vụ và bài tập theo yêu cầu của GV.

II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU:

1. Đối với giáo viên:

  • Tài liệu, máy tính, máy trình chiếu.

  • SGK, SGV Chuyên đề học tập Tin học 12 – Định hướng Khoa học máy tính – Kết nối tri thức với cuộc sống.

2. Đối với học sinh:

  • Vở ghi, máy tính.

  • SGK Chuyên đề học tập Tin học 12 – Định hướng Khoa học máy tính – Kết nối tri thức với cuộc sống.

III. TIẾN TRÌNH DẠY HỌC

A. HOẠT ĐỘNG KHỞI ĐỘNG

a. Mục tiêu: Tạo hứng thú học tập cho HS.

b. Nội dung: HS suy nghĩ và trả lời câu hỏi phần Khởi động SGK tr.13.

c. Sản phẩm học tập: Câu trả lời cho phần Khởi động SGK tr.13.

d. Tổ chức thực hiện:

Bước 1: GV chuyển giao nhiệm vụ học tập

- GV yêu cầu HS hoạt động cá nhân, suy nghĩ trả lời câu hỏi phần Khởi động SGK tr.13:

Trong bài trước, các em đã học cách thiết lập kiểu dữ liệu ngăn xếp. Kiểu dữ liệu ngăn xếp được sử dụng khá phổ biến trong các ứng dụng thực tế. Theo em, có thể sử dụng kiểu dữ liệu này để mô phỏng chức năng quay lại trang web đã duyệt trong các trình duyệt thông dụng như Google Chrome hay Bing được không?

Bước 2: HS thực hiện nhiệm vụ học tập

- HS suy nghĩ và thực hiện nhiệm vụ.

- GV hướng dẫn, hỗ trợ HS (nếu cần thiết).

Bước 3: Báo cáo kết quả hoạt động và thảo luận

- GV mời 2 – 3 HS trả lời.

- HS khác lắng nghe, nhận xét.

Gợi ý trả lời:

Có thể sử dụng kiểu dữ liệu ngăn xếp để mô phỏng chức năng quay lại trang web đã duyệt (backward) trong hầu hết các trình duyệt. Để thực hiện chức năng này, các trình duyệt web lưu lại lịch sử các trang web đã duyệt trước đó.

Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập

GV đánh giá kết quả của HS, dẫn dắt HS vào bài học mới: Trong bài trước, các em đã học cách thiết lập kiểu dữ liệu ngăn xếp. Kiểu dữ liệu ngăn xếp được sử dụng khá phổ biến trong các ứng dụng thực tế. Để giúp các em biết cách sử dụng kiểu dữ liệu ngăn xếp để giải quyết các bài toán thực tế, chúng ta sẽ cùng nhau đến với Bài 3: Thực hành kiểu dữ liệu ngăn xếp.

B. HOẠT ĐỘNG THỰC HÀNH

Nhiệm vụ 1. Viết chương trình mô phỏng quá trình duyệt web

a. Mục tiêu: HS cài đặt được chương trình mô phỏng quá trình duyệt web.

b. Nội dung: Viết chương trình mô phỏng quá trình duyệt web của người dùng bằng cách sử dụng kiểu dữ liệu ngăn xếp.

c. Sản phẩm: Chương trình mô phỏng quá trình duyệt web.

d. Tổ chức thực hiện:

HOẠT ĐỘNG CỦA GV - HS

DỰ KIẾN SẢN PHẨM

Bước 1: GV chuyển giao nhiệm vụ học tập

- GV yêu cầu HS hoạt động cá nhân, đọc và phân tích yêu cầu Nhiệm vụ 1 SGK tr.13.

Yêu cầu: Viết chương trình mô phỏng quá trình duyệt web của người dùng bằng cách sử dụng ngăn xếp. Chương trình cho phép người dùng nhấn phím số 1 để nhập vào địa chỉ trang web mới, nhấn phím số 2 để quay trở về trang web vừa duyệt trước đó, nhấn phím số 3 để kết thúc. Với mỗi lựa chọn, chương trình sẽ in ra thông báo về việc đi tới trang web tương ứng.

Bước 2: HS thực hiện nhiệm vụ học tập

- GV hướng dẫn HS viết chương trình.

- GV quan sát và trợ giúp HS khi cần.

Bước 3: Báo cáo kết quả hoạt động và thảo luận

- HS chạy chương trình và báo cáo kết quả cho GV.

- GV kiểm tra kết quả thực hành của HS.

Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập

- GV lưu ý: Để viết được chương trình trên phải viết trước các hàm của ngăn xếp và lưu vào thư mục chứa bài tập với tên tệp là Stack.py để bài duyệt web sẽ khai thác các hàm trong Stack đã xây dựng.

- Từ kết quả thực hành của HS, GV nhận xét, đánh giá quá trình HS thực hiện nhiệm vụ.

Nhiệm vụ 1. Viết chương trình mô phỏng quá trình duyệt web

Phân tích:

- Mỗi lần người dùng duyệt web, cần lưu lại địa chỉ trang web.

- Khi người dùng chọn quay trở lại trang web trước (backward) thì cần truy xuất lại trang web ngay trước đó, nghĩa là trang web nào được lưu trữ sau cùng sẽ được truy xuất đầu tiên.

Dữ liệu ngăn xếp là kiểu dữ liệu phù hợp trong bài toán này.

web.py

Nhiệm vụ 2: Viết chương trình kiểm tra các dấu ngoặc trong biểu thức

a. Mục tiêu: HS viết được chương trình kiểm tra các dấu ngoặc trong biểu thức.

b. Nội dung: Viết chương trình nhập vào một biểu thức toán học và kiểm tra các dấu đóng mở ngoặc trong biểu thức có hợp lệ hay không.

c. Sản phẩm: Chương trình kiểm tra các dấu ngoặc trong biểu thức.

d. Tổ chức thực hiện:

HOẠT ĐỘNG CỦA GV - HS

DỰ KIẾN SẢN PHẨM

Bước 1: GV chuyển giao nhiệm vụ học tập

- GV yêu cầu HS hoạt động cá nhân, đọc và phân tích yêu cầu Nhiệm vụ 2 SGK tr.14.

Yêu cầu: Em hãy viết chương trình cho phép người dùng nhập vào một biểu thức toán học và kiểm tra các dấu đóng mở ngoặc trong biểu thức có hợp lệ hay không. Biểu thức có thể chứa hai loại dấu đóng mở ngoặc là dấu "( )" và dấu "[ ]". Một biểu thức hợp lệ là biểu thức mà trong đó mỗi dấu mở ngoặc cần có các dấu đóng ngoặc tương ứng theo trình tự xuất hiện. Ví dụ biểu thức [(5 + 4)/(9-3)] được coi là hợp lệ; biểu thức [(5+4)/(9-3]) là không hợp lệ.

Các bước thực hiện:

  • Khởi tạo một ngăn xếp để chứa các dấu ngoặc mở. Tiến hành duyệt qua từng kí tự trong biểu thức.

  • Nếu kí tự là dấu ngoặc mở "(", "[", thì đẩy nó vào ngăn xếp.

  • Nếu kí tự là dấu ngoặc đóng ")", "]", thì kiểm tra ngăn xếp. Nếu ngăn xếp rỗng hoặc phần tử tại đỉnh ngăn xếp không phải là dấu ngoặc mở tương ứng thì biểu thức không hợp lệ.

  • Tiến hành duyệt cho đến hết biểu thức. Sau đó kiểm tra ngăn xếp:

  • Nếu rỗng biểu thức hợp lệ.

  • Nếu không rỗng, tức là còn dấu ngoặc mở chưa được đóng biểu thức không hợp lệ.

Ví dụ: Xét biểu thức "([()])".

Duyệt kí tự "(" đẩy vào ngăn xếp.

Duyệt kí tự "[" đẩy vào ngăn xếp.

Duyệt kí tự "(" đẩy vào ngăn xếp.

Duyệt kí tự ")" lấy "(" khỏi ngăn xếp.

Duyệt kí tự "]" lấy "[" khỏi ngăn xếp.

Duyệt kí tự ")" lấy "(" khỏi ngăn xếp.

Hết biểu thức, kiểm tra thấy ngăn xếp rỗng nên biểu thức là hợp lệ.

Bước 2: HS thực hiện nhiệm vụ học tập

- GV hướng dẫn HS viết chương trình.

- GV quan sát và trợ giúp HS khi cần.

Bước 3: Báo cáo kết quả hoạt động và thảo luận

- HS chạy chương trình và báo cáo kết quả cho GV.

- GV kiểm tra kết quả thực hành của HS.

Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập

- GV lưu ý: Để viết được chương trình trên phải viết trước các hàm của ngăn xếp và lưu vào thư mục chứa bài tập với tên tệp là Stack.py để bài duyệt web sẽ khai thác các hàm trong Stack đã xây dựng.

- Từ kết quả thực hành của HS, GV nhận xét, đánh giá quá trình HS thực hiện nhiệm vụ.

Nhiệm vụ 2: Viết chương trình kiểm tra các dấu ngoặc trong biểu thức

Phân tích:

- Các dấu đóng mở ngoặc có thể được chia ra làm hai nhóm: nhóm các dấu ngoặc mở bao gồm "(", "[" và nhóm các dấu ngoặc đóng ")", "]".

- Một biểu thức là hợp lệ nếu số lượng các dấu ngoặc đóng, ngoặc mở phải bằng nhau, thêm vào đó, với mỗi dấu ngoặc đóng, dấu ngoặc mở ngay trước đó phải là dấu cùng loại.

Ví dụ: Với dấu ")" thì dấu ngoặc mở ngay trước đó phải là dấu "(". Nếu dấu ngoặc mở ngay trước dấu ")" là "[" thì biểu thức là không hợp lệ.

Để giải bài toán này, chúng ta sử dụng ngăn xếp.

kiemtrabieuthuc.py


* THÔNG TIN BỔ SUNG

Khi sử dụng dữ liệu list trong Python làm ngăn xếp thì các thao tác cơ bản trên ngăn xếp có thể được mô tả bằng các lệnh hoặc phương thức đơn giản đối với list như sau:

STT

Hàm

Độ phức tạp thời gian

1

S = Stack()

S = []

2

push(S,x)

S.append(x)

3

isEmptyStack(S)

S == [] hoặc len(S) == 0

4

pop(S)

S.pop()

5

top(S)

S[-1] hoặc S[len(S)-1]

C. HOẠT ĐỘNG LUYỆN TẬP

a. Mục tiêu: GV hướng dẫn HS thực hiện các yêu cầu trong phần Luyện tập để đảm bảo HS thực sự hiểu được chương trình của Nhiệm vụ 1 và Nhiệm vụ 2 chứ không dừng lại ở mức sao chép và chạy chương trình.

b. Nội dung: GV hướng dẫn HS thực hiện phần Luyện tập SGK tr.15.

c. Sản phẩm học tập: HS hoàn thành 2 bài tập phần Luyện tập SGK tr.15.

d. Tổ chức thực hiện:

--------------- Còn tiếp ---------------