Chủ đề 1: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH I NỘI DUNG CHỦ ĐỀ Bài 1, II MỤC TIÊU Kiến thức: - Biết có lớp ngơn ngữ lập trình mức ngơn ngữ lập trình: ngơn ngữ máy, hợp ngữ ngôn ngữ bậc cao - Biết vai trị Chương trình dịch - Biết khái niệm Biên dịch Thông dịch - Biết thành phần ngơn ngữ lập trình nói chung Một ngơn ngữ lập trình có ba thành phần: Bảng chữ cái, cú pháp ngữ nghĩa - Biết số khái niệm như: tên, tên chuẩn, tên dành riêng, tên người lập trình đặt, hằng, biến thích Kĩ năng: - Phân biệt biên dịch thông dịch - Phân biệt tên chuẩn với tên dành rêng tên người lập trình đặt - Nhớ quy định tên, biến - Biết đặt tên nhận biết tên sai quy định - Sử dụng thích Năng lực - Năng lực giải vấn đề, sáng tạo - Năng lực tự học, đọc hiểu - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết - Năng lực tính tốn, Năng lực thực hành Phẩm chất - Giúp học sinh rèn luyện thân phát triển phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm III THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên - Bài giảng, máy chiếu, máy chiếu vật thể - Yêu cầu học sinh tập hợp kiến thức học lớp 10 Cụ thể 4, SGK lớp 10 - Chuẩn bị tốn đơn giản, ngơn ngữ lập trình cụ thể VD ngơn ngữ lập trình Python Học sinh - Sách giáo khoa, ghi - Kiến thức học lớp 10 IV TIẾN TRÌNH DẠY HỌC Tiết PPCT: BÀI 1: KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH A HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa d) Tổ chức thực hiện: GV giới thiệu dẫn dắt vào bài: Chiếu tốn: Kết luận nghiệm phương trình ax + b=0 + Hãy xác định Input, Output toán trên? + Hãy xác định bước để giải toán trên? - Hệ thống bước gọi thuật toán + Các bước giải toán máy tính? + Làm để máy tính hiểu thực thuật toán lựa chọn giải toán? - Như hoạt động để diễn đạt thuật tốn máy tính thơng qua ngơn ngữ lập trình gọi lập trình Và để máy tính hiểu thực câu lệnh NNLTBC cần phải chuyển đổi NN máy để máy tính hiểu thực B HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu Khái niệm lập trình – ngơn ngữ lập trình a) Mục tiêu: Nắm khái niệm lập trình – ngơn ngữ lập trình b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu GV c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức d) Tổ chức thực hiện: dạy học online k12online Hoạt động GV HS Sản phẩm dự kiến * Bước 1: Chuyển giao nhiệm vụ: A Khái niệm lập trình + Nghiên cứu SGK nêu khái niệm lập trình + Khái niệm: Lập trình việc + Kết hoạt động lập trình gì? sử dụng cấu trúc liệu Có loại ngơn ngữ lập trình nào? lệnh ngơn ngữ lập trình cụ Phân biệt ngơn ngữ lập trình bậc cao với thể để mô tả liệu diễn đạt ngôn ngữ khác nội dung nào? thao tác thuật toán Tại người ta phải xây dựng ngơn ngữ lập B Các loại ngơn ngữ lập trình bậc cao? trình Kể tên số ngơn ngữ lập trình bậc cao mà Có nhiều loại ngơn ngữ lập em biêt? trình, chia làm ba loại * Bước 2: Thực nhiệm vụ: chính: NN máy, hợp ngữ + HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi NNLT bậc cao + GV: quan sát trợ giúp cặp - Ngôn ngữ gần gũi với ngôn * Bước 3: Báo cáo, thảo luận: ngữ tự nhiên + HS: Lắng nghe, ghi xem kết - Có tính độc lập cao * Bước 4: Kết luận, nhận định: GV xác - Ít phụ thuộc vào loại máy hóa kiến thức cụ thể Vì: NN gần gũi với NN tự nhiên, dễ đọc, dễ hiểu NNLTBC nói chung khơng phụ thuộc loại máy Một số NNLTBC: pascal, C+ +, Java, Python… Hoạt động 2: Tìm hiểu Chương trình dịch a) Mục tiêu: Biết vai trị chương trình dịch, hiểu giai đoạn chương trình dịch; Phâm biệt chương trình thơng dịch chương trình biên dịch b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu GV c) Sản phẩm: HS hồn thành tìm hiểu kiến thức d) Tổ chức thực hiện: Dạy học trực tuyến Hoạt động GV HS Sản phẩm dự kiến * Bước 1: Chuyển giao nhiệm vụ: Chương trình dịch ? Theo em chương trình viết - CTD chương trình đặc biệt có chức ngơn ngữ bậc cao chương trình viết chuyển đổi chương trình viết ngơn ngữ máy khác nào? ngơn ngữ lập trình bậc cao thành ? Khi chương trình đưa vào máy tính chương trình thực máy tính hiểu thực chưa? máy tính ? Làm để chuyển chương trình - Chương trình viết ngơn ngữ máy viết ngơn ngữ bậc cao sang ngơn ngữ nạp trực tiếp vào nhớ thực máy? ? Nghiên cứu SGK cho biết khái niệm - Chương trình viết ngơn ngữ lập chương trình dịch trình bậc cao phải chuyển đổi thành ? Vì khơng lập trình ngơn ngữ máy chương trình ngơn ngữ lập máy để khỏi cơng chuyển đổi lập trình với thực ngôn ngữ bậc cao - Ngôn ngữ bậc cao dễ viết, dễ hiểu ? Theo em chương trình dịch: - Ngơn ngữ máy khó viết chương trình chương trình nguồn - Chương trình nguồn chương trình viết chương trình đích ngơn ngữ lập trình bậc cao ? Cho nhận xét tiến trình hai ví dụ - Chương trình đích chương trình thực ? Vậy với cách dịch người ta gọi chuyển đổi sang ngôn ngữ máy gi? - Tiến trình thơng dịch biên dịch: ? Hai cách dịch có khác +Thông dịch: * Bước 2: Thực nhiệm vụ: B1: Kiểm tra tính đắn câu lệnh + HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi chương trình nguồn; B2: * Bước 3: Báo cáo, thảo luận: Chuyển lệnh thành + HS: Lắng nghe, ghi ngôn ngữ máy + Các nhóm nhận xét, bổ sung cho B3: Thực câu lệnh vừa * Bước 4: Kết luận, nhận định: GV chuyển đổi xác hóa kiến thức +Biên dịch: B1: Duyệt, phát lỗi, kiểm tra tính đắn câu lệnh chương trình nguồn B2: Dịch tồn chương trình nguồn thành chương trình đích thực máy lưu trữ để sử dụng lại cần thiết C HOẠT ĐỘNG LUYỆN TẬP a Mục tiêu: Củng cố, luyện tập kiến thức vừa học b Nội dung: HS đọc SGK làm tập c Sản phẩm: Bài làm học sinh, kĩ giải nhiệm vụ học tập d Tổ chức thực hiện: Câu Lập trình là: A Sử dụng giải thuật để giải tốn B Dùng máy tính để giải toán C Sử dụng cấu trúc liệu câu lệnh ngơn ngữ lập trình cụ thể để giải tốn máy tính D Sử dụng NN Python Câu Đối với ngôn ngữ lâp trình có kĩ thuật dịch? A loại (biên dịch) B loại (Thông dịch biên dịch C loại (Thông dịch hợp dịch) D loại (Hợp dịch biên dịch) Câu 3: Trong NNLT có chức sau: A Biên soạn B Lưu trữ C Tìm kiếm D Có tất chức Câu 4: Chương trình viết hợp ngữ có đặc điểm: A Máy tính hiểu trực tiếp chương trình B Kiểu liệu cách tổ chức liệu đa dạng, thuận tiện cho việc nhập mơ tả thuật tốn C Diễn đạt gần với ngôn ngữ tự nhiên D Tốc độ thực nhanh so với chương trình viết Câu Hãy cho biết điểm khác tên dành riêng tên chuẩn? Câu Hãy viết ba tên theo quy tắc Python? Câu Hãy cho ví dụ biến sử dụng viết chương trình? D HOẠT ĐỘNG VẬN DỤNG a Mục tiêu: Vận dụng kiến thức vừa học vấn đề học tập thực tiễn b Nội dung: HS sử dụng tài liệu vận dụng kiến thức để trả lời câu hỏi c Sản phẩm: HS vận dụng kiến thức vào giải nhiệm vụ đặt d Tổ chức thực hiện: Giao nhiệm vụ: trả lời câu hỏi sau ghi chép lại câu trả lời vào tập: Mối liên hệ thuật tốn cấu trúc liệu? Ví dụ minh họa (có thể sử dụng ví dụ có sẵn) Việc tìm tịi, phát minh thuật tốn thuộc giai đoạn nào? Hãy cho biết đặc điểm ngơn ngữ lập trình bậc cao? Tiết BÀI 2: CÁC THÀNH PHẦN CƠ BẢN CỦA NGƠN NGỮ LẬP TRÌNH A HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa d) Tổ chức thực hiện: GV giới thiệu dẫn dắt vào bài: (?) Để diễn tả ngơn ngữ tự nhiên ta cần phải biết gì? lấy ví dụ (?) Quan sát chương trình viết ngơn ngữ lập trình bậc cao so sánh với ngơn ngữ tự nhiên - Ngôn ngữ tự nhiên gồm thành phần: bảng chữ cái, cú pháp ý nghĩa câu (từ) cần diễn tả - Các ngơn ngữ lập trình nói chung thường có chung số thành phần như: Dùng kí hiệu bảng chữ để viết chương trình? viết theo quy tắc nào? viết có ý nghĩa gì? Bài học hơm trả lời câu hỏi B HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu thành phần NNLT a) Mục tiêu: Nắm thành phần NNLT b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu GV c) Sản phẩm: HS hồn thành tìm hiểu kiến thức d) Tổ chức thực hiện: Sử dụng k12 tạo giảng Hoạt động GV HS Sản phẩm dự kiến * Bước 1: Chuyển giao nhiệm vụ: Các thành phần Hãy cho biết khái niệm bảng chữ - Tiếng Việt nói riêng ngơn ngữ tự ngơn ngữ lập trình? nhiên nói chung hình thành từ: - Trong tiếng việt muốn viết câu + Bảng chữ phải dựa vào đâu? +Ngữ pháp - Tượng tự, lập trình để viết + Ngữ nghĩa từ câu chương trình người ta dựa vào - Mỗi ngơn ngữ lập trình thường có thành gì? phần bản: Bảng chữ cái, cú pháp, ngữ - Cú pháp gì? nghĩa - Khái niệm ngữ nghĩa? a Bảng chữ - Lấy ví dụ bảng chữ cái, cú pháp, Bảng chữ cái: tập kí tự dùng để viết ngữ nghĩa chương trình Khơng dùng kí tự * Bước 2: Thực nhiệm vụ: kí tự quy định bảng chữ + HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi video Các chữ thường chữ in * Bước 3: Báo cáo, thảo luận: hoa bảng chữ tiếng Anh: + HS: Xem kết abcdefghijklmnopqrstuvwxy * Bước 4: Kết luận, nhận định: Kết z luận kiến thức AB C D EFG H IJ K LM N O PQ R ST UVWXYZ 10 chữ số thập phân Ả Rập: 89 Các kí tự đặc biệt: + - * / = , (dấu < > [ ] phẩy ) ' (dấu ; # ^ $ @ & ( ) { } : nháy ) _ (dấu dấu cách (mã ASCII 32) gạch dưới) b Cú pháp Là quy tắc để viết chương trình Dựa vào chúng, người lập trình chương trình dịch biết tổ hợp kí tự bảng chữ hợp lệ tổ hợp không hợp lệ Nhờ đó, mơ tả xác thuật toán để máy thực c Ngữ nghĩa - Xác định ý nghĩa thao tác cần thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh - Lỗi cú pháp chương trình dịch phát thơng báo cho người lập trình Chương trình khơng cịn lỗi cú pháp dịch sang ngơn ngữ máy - Lỗi ngữ nghĩa phát chạy chương trình Hoạt động 2: Tìm hiểu khái niệm tên a) Mục tiêu: Nắm khái niệm tên b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu GV c) Sản phẩm: HS hồn thành tìm hiểu kiến thức d) Tổ chức thực hiện: Dạy học k12online Hoạt động GV HS Sản phẩm dự kiến * Bước 1: Chuyển giao nhiệm vụ: Trả Một số khái niệm: lời câu hỏi giảng a Tên - Em cho biết quy tắc đặt tên Mọi đối tượng chương trình phải ngơn ngữ lập trình Python? đặt tên Tên dãy liên tiếp khơng q - Cho ví dụ sau, cho biết tên 256 kí tự bao gồm chữ số, chữ dấu gạch quy tắc: bắt đầu chữ dấu gạch ABC Trong chương trình dịch Python, tên có Q89_O phân biệt chữ hoa, chữ thường A 12 _12BN Nhiều ngôn ngữ lập trình, có Python, 87_AC phân biệt ba loại tên: @DFG12 - Tên dành riêng (từ khóa): Một số tên ngôn BGV#21 - Đọc sách giáo khoa cho biết ngơn ngữ ngữ lập trình quy định dùng với ý nghĩa xác định, người lập trình khơng sử dụng với ý nghĩa lập trình thường có loại tên? khác Những tên gọi tên dành riêng (cịn - Cho ví dụ: gọi từ khố) Program ct_vd; Ví dụ: Một số từ khóa Uses crt; Trong Pascal: program, uses, const, Begin Trong C++: main, include, if, while, Clrscr; Trong Python: print, if, else, Write(‘ Xin chào lớp 11A’); - Tên chuẩn Một số tên ngôn ngữ lập trình Readln; dùng với ý nghĩa Những tên gọi End Hãy xác định tên dành riêng, tên chuẩn, tên người lập trình đặt * Bước 2: Thực nhiệm vụ: + HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi * Bước 3: Báo cáo, thảo luận: + HS: Xem kết làm + Các nhóm nhận xét, bổ sung cho * Bước 4: Kết luận, nhận định: Xem kết luận kiến thức tên chuẩn Tuy nhiên, người lập trình khai báo dùng chúng với ý nghĩa mục đích khác Ý nghĩa tên chuẩn quy định thư viện ngôn ngữ lập trình Ví dụ: Một số tên chuẩn: Trong Pascal: abs, sqr, integer, byte, Trong C++: cin, cout, getchar, Trong Python: str, float, int, - Tên người lập trình tự đặt Tên người lập trình đặt dùng với ý nghĩa riêng, xác định cách khai báo trước sử dụng Các tên không trùng với tên dành riêng VD: A1 DELTA CT_Vidu Hoạt động 3: Tìm hiểu khái niệm biến a) Mục tiêu: Nắm khái niệm biến b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu GV c) Sản phẩm: HS hồn thành tìm hiểu kiến thức d) Tổ chức thực hiện: Tổ chức thực k12online Hoạt động GV HS Sản phẩm dự kiến * Bước 1: Chuyển giao nhiệm vụ: Trả b Hằng biến: lời câu hỏi sau: Hằng: Là đại lượng có giá trị khơng thay đổi - Hằng gì? Trong ngơn ngữ lập trình q trình thực chương trình thường có loại nào? - Hằng số học số nguyên hay số thực, có dấu - Hãy trình bày khái niệm biến? - VD: Xác định đại lượng có khơng dấu tốn: “Tính chu vi (CV), diện tích (DT) - Hằng lôgic giá trị đúng/sai tương ứng với hình trịn với bán kính (R) đưa True/False Python vào từ bàn phím” Hãy cho biết đại lượng - Hằng chuỗi chuỗi kí tự bảng chữ Khi hằng? đại lượng biến? - Cho biết chức thích viết, chuỗi kí tự đặt cặp dấu nháy đơn cặp dấu nháy kép chương trình? * Bước 2: Thực nhiệm vụ: Ví dụ: + HS: Suy nghĩ, tham khảo sgk trả lời câu -Hằng số học: -5 +18 hỏi 1.5 -22.36 +3.14159 0.5 -2.236E01 * Bước 3: Báo cáo, thảo luận: 1.0E-6 + HS: Xem lại kết làm * Bước 4: Kết luận, nhận định: GV - Hằng logic: True False xác hóa kiến thức - Hằng chuỗi: “Tin học 11”, ‘Python’ - Biến Là đại lượng đặt tên, dùng để lưu trữ giá trị giá trị thay đổi q trình thực chương trình Tuỳ theo cách lưu trữ xử lí, Python phân biệt nhiều loại biến Các biến dùng chương trình phải khai báo c Chú thích: Có thể đặt đoạn thích chương trình nguồn Các thích giúp cho người đọc chương trình nhận biết ngữ nghĩa chương trình dễ Chú thích khơng ảnh hưởng đến nội dung chương trình nguồn chương trình dịch bỏ qua Cách tạo thích Python đặt nội dung thích sau dấu # C HOẠT ĐỘNG LUYỆN TẬP a Mục tiêu: Củng cố, luyện tập kiến thức vừa học b Nội dung: HS đọc SGK làm tập c Sản phẩm: Bài làm học sinh, kĩ giải nhiệm vụ học tập d Tổ chức thực hiện: GV giao nhiệm vụ cho HS: Hãy cho biết điểm khác tên dành riêng tên chuẩn? Hãy viết ba tên theo quy tắc Python? Hãy cho ví dụ biến sử dụng viết chương trình? D HOẠT ĐỘNG VẬN DỤNG a Mục tiêu: Vận dụng kiến thức vừa học vấn đề học tập thực tiễn b Nội dung: HS sử dụng SGK vận dụng kiến thức để trả lời câu hỏi c Sản phẩm: HS vận dụng kiến thức vào giải nhiệm vụ đặt d Tổ chức thực hiện: GV yêu cầu hs trả lời câu hỏi sau: Cú pháp ngữ nghĩa khác nào? Cho VD sau: viết chương trình giải PTBH: với a, b, c ba số nguyên Cho biết: - Chương trình sử dụng tên nào? ... PHẦN CƠ BẢN CỦA NGƠN NGỮ LẬP TRÌNH A HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi c) Sản phẩm: Từ yêu... làm * Bước 4: Kết luận, nhận định: GV - Hằng logic: True False xác hóa kiến thức - Hằng chuỗi: ? ?Tin học 11”, ‘Python’ - Biến Là đại lượng đặt tên, dùng để lưu trữ giá trị giá trị thay đổi trình