

MỤC LỤC

Chương 1. TỔNG QUAN
1.1. Lý do chọn sáng kiến kinh nghiệm
Tin học đang phát triển ngày ngày càng nhanh và trở thành nhân tố vô
cùng cần thiết trong mọi lĩnh vực. Trong đó tin học được sử dụng phổ biến
và đặc biệt quan trọng trong giáo dục. Tin học được đưa vào chương trình
tin học nhà trường cũng như hỗ trợ giảng dạy. Cùng với đó, Trong những
năm học gần đây Bộ GD&ĐT đang tiến hành đổi mới phương pháp dạy
học và một trong những phương pháp đó là phát triển khả năng tư duy,
sáng tạo của học sinh; lấy học sinh làm trung tâm; tránh tình trạng thầy đọc
trò chép một cách thụ động; hướng học sinh đến việc tự làm chủ kiến thức
của mình, tự tìm tòi khám phá kiến thức cho bản thân mình.
Theo phương pháp trên thì ngoài việc cung cấp kiến thức cho học sinh
người thầy còn phải biết phát huy khả năng tư duy cho học sinh. Trong quá
trình dạy học tôi nhận thấy một điểm hạn chế của học sinh là khi các em
tiếp xúc với ngôn ngữ lập trình pascal thì hầu hết các em đều thấy nó khó,
khó nhớ, khó áp dụng. Chính vì lí do đó mà khi học nội dung này các em
chỉ học cho xong, học đối phó với thầy cô, các em cố tìm những đoạn mã
lệnh rồi gõ theo và chạy chương trình cho có kết quả mà cũng không cần
biết những đoạn mã lệnh đó làm việc như thế nào. Đôi với những học sinh
khá hơn thì khi các em có tìm ra lời giải cho một bài toán thì các em đã vội
hài lòng với kết quả mình đạt được mà không tìm hiểu thêm liệu có cách
giải nào hay hơn không? Có thể cải tiến chương trình cho hiệu quả, ngắn
học hơn không?
Từ những thắc mắc đó, và sau một thời gian giảng dạy nội dung lập
trình pascal cho đối tượng là học sinh lớp 8 tôi đã rất băn khoăn. Phải làm
gì để học sinh của tôi có thể thay đổi cách nhìn nhận với môn học và cách
học với môn lập trình này. Sau một thời gian suy nghĩ tôi cho rằng muốn
thay đổi được các em thì trước tiên người thầy phải thay đổi, thay đổi cách
tiếp cận nội dung, thay đổi phương pháp. Phải làm thế nào để các em có
thể yêu thích môn học này, có yêu thích hứng thú thì các em mới có thể
tập trung học tập nghiêm túc được, các em sẽ không còn học đối phó nữa.
Khi các em yêu thích thì hãy hướng các em đi từ việc đơn gian tới phức
tạp, nhìn nhận vấn đề hay giải các bài toán bằng nhiều cách để từ đó các
em lĩnh hội được đầy đủ và chủ động kiến thức môn học. Từ những lí do

trên tôi quyết định nghiên cứu và thực hiện sáng kiến “ RÈN LUYỆN TƯ DUY
THUẬT TOÁN TRONG HỌC LẬP TRÌNH PASCAL - TIN HỌC 8 TẠI TRƯỜNG PT
THỰC HÀNH CHẤT LƯỢNG CAO NGUYỄN TÁT THÀNH” nhằm giúp học sinh
lớp 8 khắc phục được những hạn chế nêu trên và tạo sự ham mê yêu thích
của học sinh với môn học lập trình này.
1.2. Cơ sở lý luận
1.2.1. Khái niệm thuật toán
Trong bài viết này tôi không đi sâu vào lí thuyết thuật toán, do vậy
không đề cập đến khái niệm hình thức chính xác của thuật toán. Chúng ta
hãy xem xét một số định nghĩa (không hình thức) ít nhiều khác nhau của
khái niệm thuật toán nhưng cùng nêu bản chất mô tả một cách thức mà
một nhiệm vụ hay một tiến trình được thực hiện như thế nào của thuật
toán. Xét một số định nghĩa về thuật toán sau:
Định nghĩa 1 (K.Rosen): Một thuật toán là một thủ tục xác định để
giải một bài toán, sử dụng một số hữu hạn bước. Mỗi bước có thể gồm
một hoặc một số thao tác/phép toán.
Định nghĩa 2 (G.Brookshear): Một thuật toán là một tập hợp có thứ tự
các bước không nhập nhằng, thực hiện được, xác định một tiến trình có
kết thúc.
Định nghĩa 3 (A.V. Aho, J.E.Hopcroft,J.D.Ullman): Thuật toán là một
dãy hữu hạn các câu lệnh, mỗi câu lệnh đều có một ý nghĩa rõ rằng và có
thể được thực hiện với một lượng công sức hữu hạn trong một thời gian
hữu hạn.
Qua một số định nghĩa nêu trên, có thể thấy các thuật toán có các
tính chất chung như sau:
Đầu vào: Một thuật toán có các giá trị đầu vào được lấy từ một tập
xác định.
Đầu ra: Từ một tập các giá trị đầu vào, thuật toán sản sinh ra các giá
trị đầu ra thuộc một tập xác định. Các gía trị đầu ra chứa lời giải của bài
toán.
Tính xác định: Các bước trong thuật toán phải được định nghĩa
chính xác.
Tính hữu hạn: Một thuật toán phải cho kết quả mong đợi sau một
số hữu hạn bước với mọi đầu vào thuộc tập các dữ liệu vào hợp lệ.

Tính hiệu quả: Phải có khả năng thực hiện mỗi bước của thuật toán
một cách đúng đắn và trong một thời gian chấp nhận được.
Tính tổng quát (Phổ dụng): Thuật toán phải được áp dụng cho mọi
bài toán có chung một dạng mà không phải chỉ cho riêng một tập các dữ
liệu vào đặc biệt.
1.2.2. Đánh giá thuật toán
Một bài toán có thể có nhiều thuật toán khác nhau để giải. Có các
câu hỏi nảy sinh một cách tự nhiên: “Thuật toán nào tốt hơn trong số các
thuật toán cùng giải quyết một bài toán đó?.” hoặc “Thuật toán nào là chấp
nhận được”. Những câu hỏi như vậy liên quan đến việc ước lượng tài
nguyên máy tính cần thiết để thực hiện một thuật toán. Các tài nguyên máy
tính được quan tâm là thời gian, dung lượng nhớ, phần cứng.
Đứng trước một bài toán cho máy tính thì thuật toán cần phải được
thiết kế hay xây dựng như thế nào để thực hiện nhiệm vụ. Việc xây dựng
một thuật toán là một công việc khó khăn không chỉ đối với học sinh mà đôi
khi ngay cả với giáo viên cũng khó xây dựng được một thuật toán tối ưu.
Công việc này đòi hỏi phải có sáng tạo, sự am hiểu lĩnh vực của bài toán
và không thể đưa ra một tập các quy tắc chung. Nói cách khác, không có
thuật toán nào cho việc thiết kế thuật toán. Do đó việc rèn luyện tư duy
thuật toán cho học sinh là hết sức cần thiết. Ở cấp học trung học cơ sở thì
việc các em tự thiết kế một thuật toán để giải quyết bài toán mới mẻ là khó
khăn, chúng ta chỉ có thể hướng dẫn các em làm quen với các bài toán
mẫu với thuật toán có sẵn để hình thành tư duy thuật toán, từ đó hình
thành thói quen lập trình giải quyết bài toán khi đã xây dựng được thuật
toán.
1.3. Phương pháp tiếp cận để tạo ra sáng kiến
- Nghiên cứu lý thuyết : Tìm hiểu các tài liệu, giáo trình liên quan tới nhiệm
vụ nghiên cứu.
- Nghiên cứu thực tiễn: Thông qua việc trực tiếp giảng dạy, trao đổi, phóng
vấn trực tiếp với học sinh qua từng bài dạy để nắm được mức độ nhận
thức của các em, biết được vấn đề khó khăn mà các em đang gặp phải từ
đó tìm cách giải quyết vấn đề.
1.4. Mục tiêu của sáng kiến kinh nghiệm