Giáo án chuyên đề Khoa học máy tính 12 kết nối Bài 2: Kiểu dữ liệu ngăn xếp

Giáo án giảng dạy theo sách Chuyên đề học tập Tin học 12 - Định hướng Khoa học máy tính bộ sách Kết nối tri thức Bài 2: Kiểu dữ liệu ngăn xếp. Bộ giáo án giúp giáo viên hướng dẫn học sinh mở rộng kiến thức, phát triển năng lực, nâng cao khả năng định hướng nghề nghiệp cho các em sau này. Thao tác tải về rất đơn giản, tài liệu file word có thể chỉnh sửa dễ dàng. Mời quý thầy cô tham khảo bài soạn.

Xem: => Giáo án Tin học 12 - Định hướng Khoa học máy tính kết nối tri thức

Xem toàn bộ: Giáo án chuyên đề Khoa học máy tính 12 kết nối tri thức đủ cả năm

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

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

 

BÀI 2: 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ểu diễn được ngăn xếp bằng mảng một chiều.

  • Giải thích và viết được các chương trình con sử dụng các hàm cơ bản của kiểu dữ liệu ngăn xếp.

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:

  • Biểu diễn được kiểu dữ liệu ngăn xếp bằng list trong Python.

  • Giải thích và viết được các chương trình con có sử dụng các hàm cơ bản của kiểu dữ liệu ngăn xế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.

  • Trung thực: Thực hiện đúng phần việc của bản thân và hợp tác làm việc nhóm khi được giao nhiệm vụ. Có ý thức báo cáo kết quả một cách chính xác.

  • Trách nhiệm: Hoàn thành các bài tập theo yêu cầu của GV thông qua hệ thống câu hỏi, phiếu học tập, thông qua sản phẩm.

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: Gợi ý, gây tò mò cho HS về các cách khác nhau có thể biểu diễn mô hình ngăn xếp trong ngôn ngữ lập trình bậc cao cụ thể.

b. Nội dung: HS thảo luận nhóm và trả lời các câu hỏi phần Khởi động SGK tr.9. 

c. Sản phẩm học tập: Từ yêu cầu, HS vận dụng sự hiểu biết để trả lời các câu hỏi phần Khởi động SGK tr.9.

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

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

GV chia lớp thành ba nhóm học tập và nêu câu hỏi Khởi động SGK tr.9 cho các nhóm thảo luận

Theo em, những kiểu dữ liệu sau có thể được dùng để thiết lập dữ liệu ngăn xếp không? Tại sao?

a) Sử dụng kiểu mảng có chiều dài cố định N, với số tự nhiên N khá lớn.

b) Sử dụng kiểu dữ liệu danh sách liên kết (đã học ở chương trình Tin học 11 – Định hướng Khoa học máy tính).

c) Sử dụng kiểu dữ liệu list của Python.

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

- HS thảo luận theo nhóm 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 lần lượt mời các nhóm báo cáo kết quả thảo luận.

Gợi ý trả lời:

Cả ba kiểu dữ liệu đều có thể được dùng để thiết lập dữ liệu ngăn xếp:

a) Mảng có thể được sử dụng để mô phỏng ngăn xếp vì nó cho phép truy cập và thao tác dữ liệu theo kiểu LIFO.

b) Danh sách liên kết là lựa chọn lý tưởng cho ngăn xếp vì nó hỗ trợ truy cập và thao tác dữ liệu theo kiểu LIFO một cách hiệu quả.

c) Kiểu dữ liệu list của Python được triển khai dựa trên danh sách liên kết, do đó nó có thể được sử dụng để mô phỏng ngăn xếp.

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: Cả ba kiểu dữ liệu được trình bày trong phần Khởi động đều có thể được dùng để biểu diễn mô hình dữ liệu ngăn xếp. Vậy nếu dùng những kiểu dữ liệu đó thì các thao tác chính như pop() và push() sẽ được thiết lập như thế nào? Để trả lời câu hỏi này, chúng ta sẽ cùng nhau tìm hiểu Bài 2: Kiểu dữ liệu ngăn xếp.

B. HOẠT ĐỘNG HÌNH THÀNH KIẾN THỨC

Hoạt động 1. Dùng kiểu dữ liệu mảng để biểu diễn ngăn xếp

a. Mục tiêu: HS biết và nắm được cách sử dụng kiểu dữ liệu list trong Python để mô tả ngăn xếp thông qua sơ đồ hoặc mô tả bằng lời, chưa cần lập trình.

b. Nội dung: GV giao nhiệm vụ; HS tìm hiểu nội dung mục 1. Biểu diễn ngăn xếp bằng mảng một chiều, kết hợp với những hiểu biết về thực tiễn, thảo luận nhóm thực hiện nhiệm vụ.

c. Sản phẩm: HS biểu diễn được ngăn xếp bằng mảng một chiều.

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 trả lời các câu hỏi để ôn tập lại kiến thức về kiểu dữ liệu list của Python và một số hàm, phương thức có liên quan sẽ được sử dụng để cài đặt ngăn xếp.

+ List là gì?

+ Để tạo list rỗng, em sử dụng lệnh nào?

+ Trong Python, list có bị giới hạn phần tử không?

+ Phần tử cuối của list A có chỉ số như thế nào?

+ Phương thức nào dùng để bổ sung thêm phần tử vào cuối của danh sách?

+ Phương thức nào dùng để xoá phần tử cuối cùng của list A và trả về giá trị của phần tử này?

- GV yêu cầu HS thảo luận theo 2 – 3 HS, trả lời câu hỏi Hoạt động 1 - Dùng kiểu dữ liệu mảng để biểu diễn ngăn xếp SGK tr.9:

Quan sát, trao đổi, thảo luận để tìm hiểu cách biểu diễn ngăn xếp bằng mảng một chiều. Trả lời các câu hỏi sau:

+ Có thể biểu diễn ngăn xếp bằng mảng một chiều được không?

+ Cần có các biến nào để thực hiện các phép toán cơ bản trên ngăn xếp?

GV yêu cầu HS thảo luận theo nhóm 2 – 3 HS và trả lời các câu hỏi:

+ Theo em, ngăn xếp được cài đặt bằng một danh sách (kiểu list của Python) có những trường hợp nào?

- GV tổng hợp cách dùng kiểu dữ liệu danh sách (list) của Python để biểu diễn ngăn xếp.

- GV yêu cầu HS vận dụng kiến thức vừa tìm hiểu, trả lời câu hỏi Củng cố tr.10 SGK:

Câu 1. Dãy các số 1, 2, 3, 4, 5, 6 lần lượt được đưa vào ngăn xếp S bằng lệnh push(). Người thực hiện làm như sau: Cứ thực hiện push(S,x) hai lần thì lại pop(S) một lần. Dãy số kết quả thu được bao gồm những số nào?

Câu 2. Giả sử chúng ta lần lượt thực hiện dãy các lệnh sau (ngăn xếp S ban đầu là rỗng): push(S,1); push(S,2); pop(S); push(S,3); pop(S); pop(S).

Dãy các phần tử lần lượt được đưa ra khỏi ngăn xếp là các số nào?

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

- HS tìm hiểu nội dung mục 1 SGK tr.9 – 10 và thảo luận trả lời các câu hỏi mà GV đưa ra.

- GV quan sát và trợ giúp 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

- Đại diện các nhóm HS trả lời.

- Các nhóm khác đưa ra ý kiến nhận xét.

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

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

- GV chính xác hoá lại các nội dung kiến thức.

- GV chốt kiến thức: 

  • Ngăn xếp được cài đặt bằng mảng một chiều (danh sách thuộc kiểu list của Python). 

  • Phép toán push(S, x) thêm x vào cuối mảng. 

  • Phép toán pop(S) lấy ra phần tử cuối của mảng. 

  • Đỉnh (top) là phần tử cuối của mảng.

* Ôn tập lại kiến thức:

- List là một dãy các phần tử tuyến tính, đánh chỉ số từ 0.

- Có thể tạo list rỗng bằng lệnh A = [] hoặc A = list().

- List trong Python có thể có không hạn chế các phần tử.

- Có thể bổ sung thêm phần tử vào cuối của danh sách bằng phương thức append().  

Ví dụ: A.append(x) sẽ bổ sung x vào cuối dãy A. 

- Phần tử cuối của list A có chỉ số len(A) 1 hoặc 1.

- Phương thức (hàm) A.pop() sẽ xoá phần tử cuối của A và trả về giá trị phần tử này.

1. Biểu diễn ngăn xếp bằng mảng một chiều

Ngăn xếp được cài đặt bằng một danh sách (kiểu list của Python) có các trường hợp sau:

a) Khởi tạo ngăn xếp S rỗng: Đặt S là danh sách rỗng. 

Hình 2.1a. Ngăn xếp rỗng

b) Phép toán push(S,x):

- Dùng để thêm x vào đỉnh top của ngăn xếp S, nghĩa là thêm x vào cuối danh sách. 

- Đáy (bottom) của ngăn xếp là phần tử đầu tiên và đỉnh (top) của ngăn xếp là phần tử cuối của danh sách.

Ví dụ: Hình 2.1b minh hoạ quá trình thêm các giá trị 3, 8, –1, 18, 10, 7 vào ngăn xếp:

Hình 2.1b. Ngăn xếp với phép toán 
thêm vào

c) Phép toán pop(S) dùng để lấy ra và trả về phần tử ở đỉnh (top) của ngăn xếp S, nghĩa là lấy ra phần tử cuối của danh sách.

Ví dụ: Hình 2.1c minh hoạ ngăn xếp sau khi lấy ra một phần tử.

Hình 2.1c. Ngăn xếp với phép toán lấy ra

Có thể biểu diễn ngăn xếp bằng list của Python:

Lưu ý: Dùng kiểu dữ liệu danh sách (list) của Python để biểu diễn ngăn xếp chỉ là một cách và không phải là cách duy nhất. Có nhiều cách biểu diễn khác nhưng trong phạm vi Bài 2 chỉ học cách này.

Hướng dẫn trả lời câu hỏi Hoạt động 1 SGK tr.9:

- Có thể biểu diễn ngăn xếp bằng mảng một chiều.

- Các biến cần có để thực hiện các phép toán cơ bản trên ngăn xếp:

+ top: phần tử cuối của mảng.

+ bottom: phần tử đầu của mảng.

Hướng dẫn trả lời câu hỏi Củng cố SGK tr.10:

Câu 1. Dãy số kết quả thu được bao gồm các số: 1, 3, 5.

Câu 2. Dãy các phần tử lần lượt được đưa ra khỏi ngăn xếp là các số: 2, 3, 1.

Hoạt động 2. Tìm hiểu các hàm của kiểu dữ liệu ngăn xếp

a. Mục tiêu: HS hiểu và thực hiện được việc cài đặt các hàm chính của kiểu dữ liệu ngăn xếp bằng list của Python.

b. Nội dung: GV giao nhiệm vụ; HS tìm hiểu nội dung mục 2. Tìm hiểu các hàm của kiểu dữ liệu ngăn xếp, kết hợp với những hiểu biết về thực tiễn, thảo luận nhóm thực hiện nhiệm vụ.

c. Sản phẩm: Các hàm của kiểu dữ liệu ngăn xếp.

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 đọc Hoạt động 2 - Tìm hiểu các hàm của kiểu dữ liệu ngăn xếp SGK tr.10:

Đọc, trao đổi để biết các hàm cơ bản của ngăn xếp được cài đặt bằng danh sách (kiểu list của Python).

GV chia lớp thành các nhóm 2 – 3 HS, mỗi nhóm thực hiện viết các hàm cơ bản của ngăn xếp ra giấy, sau đó GV cùng HS phân tích đúng sai và rút ra kết luận.

- GV yêu cầu HS vận dụng kiến thức vừa tìm hiểu, trả lời câu hỏi Củng cố tr.12 SGK:

Câu 1. Sửa lại hàm pop(S)top(S) trong hoạt động trên như sau: Nếu ngăn xếp rỗng thì thông báo: “Ngăn xếp rỗng không thể thực hiện được lệnh này”.

Câu 2. Vì sao các hàm cơ bản trên ngăn xếp S được cài đặt bằng danh sách (kiểu list của Python) không cần sử dụng biến top và biến bottom?

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

- HS tìm hiểu nội dung mục 2 SGK tr.10 – 11 và thảo luận theo nhóm thực hiện nhiệm vụ.

- GV quan sát và trợ giúp 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 5 HS lên bảng, mỗi HS viết một hàm.

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

- GV nhận xét và gọi một số HS đứng tại vị trí giải thích ý nghĩa của từng câu lệnh trong các hàm trên bảng sau đó chạy chương trình cho HS quan sát kết quả.

- GV chính xác hoá lại các nội dung kiến thức.

- GV chốt kiến thức: 

  • Ngăn xếp có thể được cài đặt bằng danh sách (kiểu list của Python). 

  • Các hàm cơ bản trên ngăn xếp S gồm Stack(), isEmptyStack(S), push(S,x), pop(S) và top(S).

2. Tìm hiểu các hàm của kiểu dữ liệu ngăn xếp

Một số hàm cơ bản của ngăn xếp được cài đặt bằng danh sách (kiểu list của Python):

* Đỉnh (top) của ngăn xếp S luôn là phần tử cuối của danh sách S, nghĩa là biến top = len(S) – 1. Do đó không cần có biến top.

a) Hàm Stack() dùng để tạo ngăn xếp rỗng, hàm trả về danh sách rỗng:

Lệnh tạo ngăn xếp S rỗng (S là danh sách rỗng):

b) Hàm push(S,x) dùng để thêm x vào đỉnh (top) của ngăn xếp, nghĩa là thêm x vào cuối danh sách S bằng hàm append():

Lệnh gọi hàm:

c) Hàm isEmptyStack(S):

- Trả về True nếu ngăn xếp S rỗng.

- Ngược lại trả về False.

d) Hàm pop(S):

- Lấy ra phần tử tại đỉnh (top) của ngăn xếp S và trả về phần tử này. 

- Nếu S rỗng thì hàm báo lỗi ngoại lệ ValueError và dừng chương trình.

Lệnh gọi hàm:

e) Hàm top(S):

- Trả về phần tử tại đỉnh (top) của ngăn xếp S (phần tử cuối: S[len(S)-1] hoặc 
S[-1]) và phần tử này vẫn còn trong ngăn xếp S (ngăn xếp S không bị thay đổi). 

- Nếu S rỗng thì hàm báo lỗi ngoại lệ ValueError và dừng chương trình.

Lệnh gọi hàm:

Một số ví dụ thiết lập và làm việc với ngăn xếp:

Ví dụ 1. Các lệnh sau thiết lập ngăn xếp rỗng và thêm 10 vào ngăn xếp:

Ví dụ 2. Đoạn mã sau lấy ra và in các phần tử của ngăn xếp S cho đến ngăn xếp S là rỗng:

Hướng dẫn trả lời câu hỏi Củng cố SGK tr.12:

Câu 1. 

- Hàm pop(S):

- Hàm top(S):

Câu 2. Khi sử dụng list để biểu diễn ngăn xếp thì luôn có chỉ số phần tử ở đáy là 0, chỉ số phần tử ở đỉnh là len(S)-1, do đó không cần các biến top hay bottom.

* THÔNG TIN BỔ SUNG

 

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

 

Trên chỉ là 1 phần của giáo án. Giáo án khi tải về có đầy đủ nội dung của bài. Đủ nội dung của học kì I + học kì II

MỘT VÀI THÔNG TIN:

  • Powerpoint soạn: Hiện đại, đẹp mắt để tạo hứng thú học tập
  • Giáo án word và PPT đồng bộ với nhau
  • Các phản hồi của giáo viên được trả lời ngay và luôn

Thời gian bàn giao giáo án

  • Khi đặt nhận đủ chuyên đề I
  • 30/11 bàn giao chuyên đề II
  • 30/01 bàn giao chuyên đề III

Phí giáo án chuyên đề

  • Giáo án word: 300k
  • Giáo án Powerpoint: 400k
  • Trọn bộ word + PPT: 650k

Chỉ gửi trước 350k. Sau đó, gửi dần trong quá trình nhận. Đến lúc nhận đủ kì 1 thì gửi nốt số còn lại

=> Khi đặt sẽ nhận ngay và luôn:

  • Phiếu trắc nghiệm cấu trúc mới: 5-7 phiếu
  • Nhận đủ chuyên đề I
  • Một số đề kiểm tra giữa kì I - có ma trận, lời giải...
  • PPCT, file word đáp án sgk

Cách đặt:

  • Bước 1: Gửi phí vào tk: 10711017 - Chu Văn Trí - Ngân hàng ACB (QR)
  • Bước 2: Nhắn tin tới Zalo Fidutech - nhấn vào đây để thông báo và nhận giáo án

Xem toàn bộ: Giáo án chuyên đề Khoa học máy tính 12 kết nối tri thức đủ cả năm

ĐẦY ĐỦ GIÁO ÁN CÁC BỘ SÁCH KHÁC

GIÁO ÁN WORD LỚP 12 KẾT NỐI TRI THỨC

Giáo án toán 12 kết nối tri thức
Giáo án đại số 12 kết nối tri thức
Giáo án hình học 12 kết nối tri thức

Giáo án vật lí 12 kết nối tri thức
Giáo án hoá học 12 kết nối tri thức
Giáo án sinh học 12 kết nối tri thức

Giáo án ngữ văn 12 kết nối tri thức
Giáo án lịch sử 12 kết nối tri thức
Giáo án địa lí 12 kết nối tri thức
Giáo án kinh tế pháp luật 12 kết nối tri thức

Giáo án Công nghệ Điện - điện tử 12 kết nối tri thức
Giáo án Công nghệ 12 Lâm nghiệp - Thuỷ sản kết nối tri thức
Giáo án Tin học 12 - Định hướng Khoa học máy tính kết nối tri thức
Giáo án Tin học 12 - Định hướng Tin học ứng dụng kết nối tri thức

Giáo án thể dục 12 bóng rổ kết nối tri thức
Giáo án thể dục 12 cầu lông kết nối tri thức
Giáo án thể dục 12 bóng chuyền kết nối tri thức

Giáo án mĩ thuật 12 kết nối tri thức
Giáo án âm nhạc 12 kết nối tri thức
Giáo án hoạt động trải nghiệm hướng nghiệp 12 kết nối tri thức

GIÁO ÁN POWERPOINT LỚP 12 KẾT NỐI TRI THỨC

Giáo án Powerpoint Toán 12 kết nối tri thức
Giáo án Powerpoint hình học 12 kết nối tri thức
Giáo án Powerpoint đại số 12 kết nối tri thức

Giáo án powerpoint vật lí 12 kết nối tri thức
Giáo án powerpoint ngữ văn 12 kết nối tri thức
Giáo án powerpoint địa lí 12 kết nối tri thức

Giáo án powerpoint lịch sử 12 kết nối tri thức
Giáo án powerpoint địa lí 12 kết nối tri thức
Giáo án Powerpoint Kinh tế pháp luật 12 kết nối tri thức

Giáo án Powerpoint Mĩ thuật 12 kết nối tri thức
Giáo án Powerpoint Tin học 12 - Định hướng Tin học ứng dụng kết nối tri thức
Giáo án Powerpoint Tin học 12 - Định hướng Khoa học máy tính kết nối tri thức

Giáo án powerpoint Công nghệ 12 Điện - điện tử kết nối tri thức
Giáo án powerpoint Công nghệ 12 Lâm nghiệp - Thuỷ sản kết nối tri thức
Giáo án powerpoint hoạt động trải nghiệm hướng nghiệp 12 kết nối tri thức

GIÁO ÁN CHUYÊN ĐỀ LỚP 12 KẾT NỐI TRI THỨC

Giáo án chuyên đề toán 12 kết nối tri thức
Giáo án chuyên đề vật lí 12 kết nối tri thức
Giáo án chuyên đề hoá học 12 kết nối tri thức
Giáo án chuyên đề sinh học 12 kết nối tri thức

Giáo án chuyên đề ngữ văn 12 kết nối tri thức
Giáo án chuyên đề lịch sử 12 kết nối tri thức
Giáo án chuyên đề địa lí 12 kết nối tri thứ
Giáo án chuyên đề kinh tế pháp luật 12 kết nối tri thức

Giáo án chuyên đề Công nghệ 12 Công nghệ điện - điện tử kết nối tri thức
Giáo án chuyên đề Công nghệ 12 Lâm nghiệp - Thuỷ sản kết nối tri thức
Giáo án chuyên đề Tin học 12 - Định hướng Khoa học máy tính kết nối tri thức
Giáo án chuyên đề Tin học 12 - Định hướng Tin học ứng dụng kết nối tri thức

GIÁO ÁN POWERPOINT CHUYÊN ĐỀ LỚP 12 KẾT NỐI TRI THỨC

 

GIÁO ÁN DẠY THÊM LỚP 12 KẾT NỐI TRI THỨC

Giáo án dạy thêm ngữ văn 12 kết nối tri thức
Giáo án powerpoint dạy thêm ngữ văn 12 kết nối tri thức
Giáo án dạy thêm toán 12 kết nối tri thức
Giáo án powerpoint dạy thêm toán 12 kết nối tri thức

Tài liệu giảng dạy

Chat hỗ trợ
Chat ngay