Thái độ: - Giúp học sinh nhận thức được quá trình phát triển của ngôn ngữ lập trình gắn liền với quá trình phát triển của tin học nhằm giải các bài toán thực tiễn ngày càng phức tạp..
Trang 2Ngày soạn: 01/9/2007
VÀ NGÔN NGỮ LẬP TRÌNH
I Mục đích yêu cầu :
Kiến thức:
- Giúp cho học sinh hiểu khả năng của ngôn ngữ lập trình bậc cao
- Giúp học sinh hiểu được ý nghĩa của chương trình dịch, biết thế nào là biên dịch và thông dịch
Thái độ:
- Giúp học sinh nhận thức được quá trình phát triển của ngôn ngữ lập trình gắn liền với quá trình phát triển của tin học nhằm giải các bài toán thực tiễn ngày càng phức tạp Từ đó ham muốn được học một ngôn ngữ lập trình cụ thể để có thể tự giải các bài toán bằng máy tính
Kỹ năng:
- Phân biệt được các lớp ngôn ngữ lập trình, phân biệt được biên dịch và thông dịch
II Phương pháp :
- Dạy-học phát hiện vấn đề và giải quyết vấn đề kết hợp dạy-học hợp tác trong nhóm nhỏ
III.Chuẩn bị :
Giáo viên:
- Giáo án điện tử, phòng học công nghệ cao, phiếu học tập
- Đồ dùng dạy học: Sơ đồ khối biểu diễn quá trình thông dịch và quá trình biên dịch
Học sinh:
- Sách giáo khoa, vở học, vở bài tập, giấy nháp, bút, bảng phụ
IV Tiến trình bài dạy :
5’
15
’
Hoạt động 1: Ổn định lớp
Hoạt động 2: Bài mới.
1 Ôn tập:
a Các bước giải bài toán trên
máy tính
- Xác định bài toán
- Lựa chọn và thiết kế thuật toán
- Viết chương trình
- Hiệu chỉnh chương trình
- Viết tài liệu
b Các lớp ngôn ngữ lập trình
Ngôn ngữ lập trình là ngôn
ngữ để viết chương trình, được
chia thành 3 lớp
- Ngôn ngữ máy
- Hợp ngữ
- Ngôn ngữ bậc cao: là ngôn ngữ
lập trình rất thích hợp cho người
lập trình vì các lệnh gần với ngôn
ngữ tự nhiên, tính độc lập cao
Hoạt động 3: Bài mới.
- Ổn định lớp, giới thiệu bộ môn, yêu cầu HS chuẩn bị sách, vở và hướng dẫn phương pháp học tập
bộ môn
- Chia nhóm theo tổ hoặc theo bàn học, phát câu hỏi và hướng dẫn thảo luận
- Đặt một số câu hỏi gợi nhớ kiến thức cũ
- Mời một đại diện nhóm trả lời câu hỏi
- Nhận xét và kết luận các vấn đề
Đặc điểm các lớp NN lập trình
* Ngôn ngữ máy: bị phụ thuộc vào loại máy tính, lệnh là các dòng số không gợi nghĩa
* Hợp ngữ: lệnh là cụm từ tiếng Anh viết tắt Phải dùng chương trình hợp dịch để chuyển đổi
* Ngôn ngữ bậc cao: không phụ thuộc vào oại máy tính Phải dùng chương trình dịch để chuyển đổi
- Nắm bắt những yêu cầu của môn học, làm quen với phương pháp học tập bộ môn
- Chủ động trong hoạt động nhóm, tự phân công tổ trưởng, thư ký và HS đại diện trả lời
- Tham khảo vở học và SGK lớp
10, đọc kỹ câu hỏi và thảo luận nhóm để giải quyết vấn đề
* Nhóm 1: liệt kê các bước giải bài toán và giải thích từng bước phải làm gì?
* Nhóm 2: chia b ng phân ảng phân
bi t các l p NNLT theo các ệt các lớp NNLT theo các ớp NNLT theo các
đ c đi m và khái ni m ặc điểm và khái niệm ểm và khái niệm ệt các lớp NNLT theo các
Ngôn ngữ máy
Hợp ngữ
Ngôn ngữ bậc cao
- Lệnh
- Phụ thuộc
- …
- …
- …
- …
- …
- …
Trang 3’
5’
5’
2 Chương trình dịch:
Là chương trình đặc biệt có
chức năng chuyển đổi chương
trình viết bằng ngôn ngữ bậc cao
thành chương trình chạy được
trên máy tính
Chương trình nguồn
(Chương trình viết bằng ngôn
ngữ lập trình bậc cao)
Chương trình dịch
Chương trình đích
(Chương trình bằng ngôn ngữ
máy, chạy được trên máy tính)
- Thông dịch: duyệt từng câu
lệnh của chương trình Nếu lệnh
sai thì dừng quá trình dịch Nếu
lệnh đúng thì dịch và thực hiện
câu lệnh rồi chuyển quá trình đến
lệnh tiếp theo
- Biên dịch: duyệt qua toàn bộ
chương trình Nếu phát hiện có lỗi
thì ngừng quá trình dịch, ngược
lại dịch toàn bộ chương trình,
thực hiện chương trình và lưu lại
chương trình đích đã dịch được
Hoạt động 4: Bài mới.
3 Khái niệm Lập trình:
Là sử dụng cấu trúc dữ liệu
và các câu lệnh của ngôn ngữ lập
trình cụ thể để mô tả dữ liệu và
diễn đạt các thao tác của thuật
toán
Học lập trình là:
- Học sử dụng cấu trúc dữ liệu
- Học thuật toán và cách thiết kế
thuật toán
- Học sử dụng ngôn ngữ lập trình
Hoạt động 5: Củng cố, dặn dò.
Củng cố:
Hướng dẫn, dặn dò:
- Mời đại diện nhóm trình bày kết quả thảo luận của nhóm về chương trình dịch
- Phát vấn về đối tượng chương trình nguồn và chương trình đích trong sơ đồ biên dịch
- Đặt câu hỏi gợi mở để học sinh phân biệt thông dịch với biên dịch, liên hệ thực tế
- Nhận xét, kết luận vấn đề
- Dùng đồ dùng dạy học: Sơ đồ khối mô tả hoạt động của chương trình dịch
- Giới thiệu hoạt động cụ thể của chương trình dịch qua quá trình thông dịch và biên dịch
- Phát vấn bằng các câu hỏi gợi
mở cho học sinh nhớ bài
- Yêu cầu các nhóm đặt câu hỏi cho các nhóm khác
- Mời đại diện nhóm trình bày kết quả thảo luận của nhóm về khái niệm lập trình
- Đặt câu hỏi gợi mở để học sinh biết học lập trình cần học trọng tâm vào vấn đề gì?
- Nhận xét, kết luận vấn đề
- Trả lời câu hỏi 1, 2, 3 trong SGK trang 13
Làm bài tập chương 1 (sách BT)
* Nhóm 3: đọc SGK, ghi nhận khái niệm và chia bảng phân biệt
Thông dịch Biên dịch
- Tuần tự từng lệnh
- Không lưu ch.trình đích
- Dịch toàn bộ ch.trình
- Lưu chương trình đích
- Cả lớp quan sát trên sơ đồ khối và trình bày quá trình dịch theo sơ đồ khối để hiểu thêm về cách làm việc chương trình dịch
- Phát hiện vấn đề: Chương trình dịch dừng quá trình dịch khi chương trình có lỗi Nếu là thông dịch thì chỉ dịch và thực hiện từ đầu chương trình đến khi phát hiện lỗi Biên dịch thì chỉ dịch khi chương trình không
có lỗi nào
- Ghi chép nội dung bài
* Nhóm 4: đọc SGK, ghi nhận khái niệm và phát hiện vấn đề
- Trả lời phát vấn:
+ Học cấu trúc dữ liệu để biết cách mô tả dữ liệu
+ Học thuật toán để thành thạo việc diễn tả thuật toán
- Đọc bài đọc thêm trong SGK trang 7 Chú ý tìm hiểu về ngôn ngữ lập trình Pascal và C
- Đọc trước bài 2, trả lời các câu hỏi vào vở bài tập
Hết
Trang 4Ngày soạn: 01/8/2010
NGÔN NGỮ LẬP TRÌNH
I Mục đích yêu cầu :
Kiến thức:
- Giúp cho học sinh biết, ngôn ngữ lập trình (NNLT) có 3 thành phần cơ bản là: bảng chữ cái, cú pháp
và ngữ nghĩa
- Giúp học sinh biết một số khái niệm: tên, tên chuẩn, tên dành riêng (từ khóa) Biết các qui định về tên, hằng, biến trong một ngôn ngữ lập trình cụ thể
Thái độ:
- Giúp học sinh nhận thức được quá trình phát triển của ngôn ngữ lập trình gắn liền với quá trình phát triển của tin học nhằm giải các bài toán thực tiễn ngày càng phức tạp Từ đó ham muốn được học một ngôn ngữ lập trình cụ thể để có thể tự giải các bài toán bằng máy tính
Kỹ năng:
- Giúp học sinh thực hiện được việc đặt đúng tên và nhận biết được tên sai qui định
II Phương pháp :
- Dạy-học phát hiện vấn đề và giải quyết vấn đề kết hợp dạy-học hợp tác trong nhóm nhỏ
III.Chuẩn bị :
Giáo viên:
- Giáo án điện tử, máy chiếu, phiếu học tập, Sách giáo khoa, sách giáo viên
Học sinh:
- Sách giáo khoa, vở học, vở bài tập, giấy nháp, bút, bảng phụ
IV Tiến trình bài dạy :
5’
15
’
Hoạt động 1: Ổn định lớp
Hoạt động 2: Bài mới.
1 Các thành phần cơ bản của
NNLT:
a Bảng chữ cái
- Là các ký tự dùng để viết chương trình
gồm: chữ cái, chữ số, các ký tự đặc
biệt
VD: A, B, …, Z; 0, 1,…9; *, +, (, ), /…
b Cú pháp
- Là bộ quy tắc để viết chương trình
VD: quy định 3.141592 (dùng dấu chấm
phân cách số thập phân)
c Ngữ nghĩa
- Xác định ý nghĩa thao tác cần phải
thực hiện, ứng cới tổ hợp ký tự dựa vào
ngữ cảnh của nó
VD: phép + có thể là cộng 2 số nguyên
hay cộng 2 số thực
* Máy tính chỉ phát hiện lỗi cú pháp,
- Ổn định lớp, kiểm tra sĩ số,
vệ sinh, đồng phục
- Kiểm tra bài cũ:
+ NNLT là gì? Có bao nhiêu lớp NNLT? Phân biệt thông dịch và biên dịch
- Chia nhóm theo tổ hoặc theo bàn học, phát phiếu học tập, nêu vấn đề và hướng dẫn
HS thảo luận
+ Tại sao trong lập trình lại cần bảng chữ cái?
+ Không thực hiện đúng cú pháp được không?
+ Ngữ nghĩa là gì?
- Minh họa bảng chữ cái bằng
Đồ dùng dạy học: Bảng mã ASCII
- Mời một đại diện nhóm trả lời câu hỏi
- Nhận xét và chốt lại phần trả lời của HS kết luận các vấn đề
- Diễn giảng về sự cần thiết của việc tuân thủ đúng cú
- Ổn định lớp, báo cáo sĩ số (lớp trưởng)
- Trả lời các câu hỏi kiểm tra bài cũ
- Nhận xét phần trả lời của bạn
- Tổ chức hoạt động nhóm, đọc SGK Trả lời các câu hỏi trong SGK, thực hiện yêu cầu của phiếu học tập
+ Bảng chữ cái dùng để ghép thành lệnh, biểu thức, giá trị… theo đúng cú pháp qui định của ngôn ngữ lập trình tạo nên chương trình có nghĩa và chạy được trên máy sau khi dịch
+ Cú pháp là những qui ước, qui định của ngôn ngữ lập trình nhằm giúp cho chương trình dịch có cơ sở dịch thành
mã máy
+ Hiểu ngữ nghĩa để xây dựng chương trình mô tả
Trang 5’
5’
không có khả năng phát hiện lỗi ngữ
nghĩa
Hoạt động 3: Bài mới.
2 Một số khái niệm:
a Tên:
Mọi đối tượng trong chương trình
đều phải được đặt tên theo quy tắc mà
NNLT quy định và phụ thuộc vào
chương trình dịch cụ thể
Những quy định về tên trong
Pascal:
- Không quá 127 ký tự
- Chỉ bắt đầu bằng chữ cái
- Không nhận khoảng trắng và các ký tự
đặc biệt
VD: Tên đúng: ABC, Anh_em, PTB2,
_45
Tên sai: 123, Anh&em, 10_A, so tien
Tên dành riêng (từ khóa)
Do NNLT quy định, được dùng với ý
nghĩa riêng xác định, người lập trình
không được dùng với ý nghĩa khác
Tên chuẩn
Do NNLT quy định, được dùng với ý
nghĩa nhất định nào đó, người lập trình
có thể khai báo và dùng với ý nghĩa
khác, mục đích khác
Tên do người lập trình đặt
Do người lập trình đặt ra với ý nghĩa
riêng, xác định bằng cách khai báo
trước khi sử dụng (không được trùng
với tên dành riêng)
b Hằng và biến:
Hằng
Là đại lượng có giá trị không thay đổi
trong quá trình thực hiện chương trình
VD:
Hằng số học: 1, -5, +18
3.141592, -22.36, 0.5 -2.236E01, 1.0E-6 Hằng logic: TRUE, FALSE
Hằng xâu: ‘Pascal’, ‘Tin hoc’, ‘11A’, ‘123’
Biến
Là đại lượng được đặt tên, dùng để
lưu trữ giá trị và có giá trị có thể thay
đổi trong quá trình thực hiện chương
trình
c Chú thích:
Trong Pascal những nội dung đặt giữa
cặp ngoặc {…} hay cặp (*…*), trong C+
+ những nội dung đặt giữa cặp /*…*/ là
lời chú thích Chương trình dịch không
dịch ra mã máy những dòng này
pháp và hiểu ngữ nghĩa
- Yêu cầu học sinh hoạt động nhóm tìm hiểu về: Tên, quy định cách đặt tên, các loại tên dùng trong việc lập trình, thế nào là hằng và biến, cách biểu diễn hằng (theo phiếu học tập)
* Tổ chức trò chơi: Phân biệt các tên đúng và sai quy định
Tên nên đ t sao cho g i lên ặc điểm và khái niệm ợi lên
ý ngh a s d ng ĩa sử dụng ử dụng ụng.
Phân biệt Tên đúng/sai
Nghiem_PT, Kiem tra x TRUE, Baitap5, Đúng Siso_lop11A, DTNT, (x) 12_con_giap, Tinh_tong_x
- Hướng dẫn học sinh xem và phân biệt tên dành riêng, tên chuẩn và tên người dùng đặt thông qua các ví dụ trong sách giáo khoa trang 12 và phụ lục trang 128, 129
- Yêu cầu đại diện từng nhóm nêu khái niệm GV chốt lại nội dung trọng tâm
- Đặt câu hỏi gợi mở:
+ Trong toán học, biến thường xuất hiện trong dạng biểu thúc nào?
+ Giá trị như thế nào trong môn Toán, môn Lý được gọi
là hằng số
- Diễn giảng cho HS cách biểu diễn hằng số nguyên, hằng số thực dấu phẩy động, hằng số thực dấu phẩy tĩnh, hằng xâu
- Nói rõ: phần biến HS sẽ học vào bài khác cụ thể hơn
- Giới thiệu tác dụng của lời chú thích trong chương trình, cách đưa dòng chú thích vào chương trình và lý do chương trình dịch bỏ qua, không dịch phần chú thích
- Phát vấn về các thành phần
đúng thuật toán Bảo đảm tính đúng đắn, tính dừng của thuật toán
- Tiếp tục tổ chức hoạt động nhóm, đọc SGK, thực hiện yêu cầu của phiếu học tập, ghi kết quả vào bảng phụ để trình bày
* Nhóm 1: Nêu khái niệm tên trong lập trình và quy định cách đặt tên Cho ví dụ
* Nhóm 2: Nêu các yếu tố phân biệt tên dành riêng, tên chuẩn và tên do người LT đặt Cho ví dụ
* Nhóm 3: Nêu các yếu tố phân biệt hằng và biến, cho ví
dụ biểu diễn từng loại hằng khác với SGK
- Tham gia trò chơi phân biệt tên dúng
Tên đúng Tên sai
Nghiem_PT TRUE Baitap5 Đúng Siso_lop11A Kiem tra x DTNT 12_con_giap Tinh_tong_x (x)
- Các nhóm phát biểu bổ sung cho các nhóm khác
- Trả lời phát vấn phát hiện vấn đề: trong tin học có dùng nhiều khái niệm chuẩn của các môn khoa học tự nhiên Việc nhận biết và phân biệt hằng và biến tương tự như toán
+ Hằng là giá trị không đổi, biến là nơi chứa giá trị có thể thay đổi, biến được đặt tên để gọi
- Ghi chép nội dung, hướng dẫn trọng tâm
- Tự liên hệ thực tế những lời chú thích trong SGK, báo chí
có tác dụng làm rõ nghĩa của cụm từ, của câu Trong lập trình chú thích chỉ có ích cho người đọc v.bản chương trình
Trang 6Hoạt động 4 Củng cố, dặn dò.
Củng cố:
Hướng dẫn, dặn dò:
của NNLT, các khái niệm
- Xem bài đọc thêm, phần tóm tắt lý thuyết, làm bài tập Chg1
- Trả lời phát vấn:
- Thực hiện theo hướng dẫn
Ngày soạn: 07/8/2010
I Mục đích yêu cầu :
Kiến thức:
- Giúp cho học sinh củng cố vững chắc các khái niệm đã học trong 2 bài trước về ngôn ngữ lập trình
Thái độ:
- Giúp học sinh nhận thức được quá trình phát triển của ngôn ngữ lập trình gắn liền với quá trình phát triển của tin học nhằm giải các bài toán thực tiễn ngày càng phức tạp Từ đó ham muốn được học một ngôn ngữ lập trình cụ thể để có thể tự giải các bài toán bằng máy tính
Kỹ năng:
- Phân biệt các lớp NNLT, phân biệt thông dịch, biên dịch Biết cách đặt tên đúng, phân biệt các loại tên trong NNLT, phân biệt khái niệm hằng và biến, biểu diễn được hằng số, hằng logic, hằng xâu
II Phương pháp :
- Dạy-học hợp tác trong nhóm nhỏ kết hợp trò chơi vui để học, phát hiện và giải quyết vấn đề
III.Chuẩn bị :
Giáo viên:
- Giáo án điện tử, máy chiếu, phiếu học tập, sách giáo khoa, sách giáo viên, sách bài tập
- Đồ dùng dạy học: Sơ đồ khối biểu diễn quá trình thông dịch và quá trình biên dịch
Học sinh:
- Sách giáo khoa, sách bài tập, vở học, vở bài tập, giấy nháp, bút, bảng phụ
IV Tiến trình bài dạy :
Trang 715
’
20
’
5’
Hoạt động 1: Ổn định lớp, kiểm tra
bài cũ
Hoạt động 2: Bài mới.
* Trả lời các câu hỏi trong SGK:
1 Ưu điểm của chương trình viết
bằng NNLT bậc cao:
- Gần với NN tự nhiên, thích hợp cho
người lập trình vì dễ hiểu, dễ hiệu
chỉnh, dễ nâng cấp
- Cho phép làm việc với nhiều kiểu
dữ liệu với cách tổ chức đa dạng,
thuận tiện cho việc mô tả thuật
toán
- Không bị phụ thuộc vào phần cứng
máy tính
2 Tác dụng của chương trình dịch:
- Là chương trình đặc biệt, chuyển
đổi chương trình viết bằng NNLT bậc
cao sang ngôn ngữ máy
3 Phân biệt trình biên dịch và trình
thông dịch:
- Biên dịch: duyệt, kiểm tra, phát
hiện lỗi, xác định chương trình
nguồn có dịch được không, dịch
chương trình nguồn ra mã máy và
lưu chương trình đích sau khi dịch
- Thông dịch: lần lượt duyệt, kiểm
tra, phát hiện lỗi và dịch từng câu
lệnh Nếu phát hiện lỗi thì báo lỗi và
dừng ngay việc dịch
Hoạt động 3: Bài mới.
* Hướng dẫn làm bài tập trong
sách bài tập:
Với các câu trắc nghiệm
- Ghi đầy đủ nội dung câu hỏi
- Ghi đầy đủ đáp án trả lời
Với các câu hỏi
- Ghi đầy đủ nội dung câu hỏi
- Ghi những ý kiến của cá nhân trả
lời câu hỏi
Với các bài tập
- Ghi đầy đủ nội dung câu hỏi
- Ghi cách giải, kết quả thực hiện
Hoạt động 4: Củng cố, dặn dò.
Củng cố:
- Ổn định lớp, kiểm tra sĩ số, vệ sinh, đồng phục
- Kiểm tra bài cũ:
+ Nêu tên các thành phần cơ bản của NNLT Phân biệt theo khái niệm hằng và biến?
+ Trình bày quy định về đặt tên trong Pascal? Nêu khái niệm các loại tên trong NNLT? Cho ví dụ
- Chia lớp thành 4 nhóm, mỗi nhóm tự xem SGK và trả lời câu hỏi trong SGK theo quy định của
GV
Nhóm 1 câu 1
Nhóm 2 câu 2 Nhóm 3 câu 3 Nhóm 4 câu 4,5
- Đặt một số câu hỏi gợi nhớ kiến thức cũ
+ Chương trình dịch từ Hợp ngữ sang mã máy được gọi là gì?
+ Ngôn ngữ máy và hợp ngữ không thích hợp với đa số người lập trình là vì lý do gì?
+ Quá trình làm việc của người thông dịch và người biên dịch có khác nhau không?
- Mời một đại diện nhóm trả lời câu hỏi
- Nhận xét và kết luận các nội dung trả lời câu hỏi
- Mời HS trình bày kết quả bài tập lên bảng hoặc đứng tại chỗ trả lời
- Phát vấn gợi ý để học sinh khác bổ sung hoặc hiểu thêm các vấn đề
- Sửa bài tập
- Nhận xét, củng cố toàn bộ nội dung trong chương
- Các thành phần của NNLT và các quy định về tên, biểu diễn
- Ổn định lớp, báo cáo sĩ số (lớp trưởng)
- 2 HS lên bảng trả lời các câu hỏi kiểm tra bài cũ
- Nhận xét và bổ sung nội dung kiểm tra bài cũ của bạn đã thực hiện
- Chủ động trong hoạt động nhóm, tổ trưởng điều hành việc góp ý của cả nhóm, thư ký ghi chép, tổng hợp nội dung và HS đại diện trả lời phát biểu
+ Phân tích ưu điểm của NNLT bậc cao để chứng minh nó thích hợp với số đông người lập trình
+ Phân tích tác dụng của chương trình dịch để hiểu quá trình lập trình luôn phải tuân thủ những quy định của NNLT sao cho chương trình dịch có thể chuyển chương trình thành
mã máy
+ Phân biệt thông dịch và biên dịch để sau này, trong lập trình thực tế có thể chọn loại hình dịch chương trình thích hợp + Biết và hiểu sâu về các quy định cơ bản của lập trình về tên, biểu diễn hằng, khai báo biến…
- Trả lời câu hỏi lên bảng phụ Ghi chép nội dung trọng tâm
- Đọc phần tóm tắt lý thuyết, kết hợp với giáo viên trong việc giải các bài tập
+ hiểu thêm về NNLT, Chương trình dịch
+ Phân biệt tên dành riêng, tên chuẩn và tên do người lập trình đặt
+ Biết phân biệt tên đặt đúng, tên đặt sai
+ Phân biệt các loại hằng qua biểu diễn hằng, biết hằng biểu diễn đúng, hằng biểu diễn sai
- Ghi chép nội dung bài
- Ôn lại toàn bộ kiến thức đã
Trang 8Hết