1. Trang chủ
  2. » Luận Văn - Báo Cáo

skkn cấp tỉnh tạo hứng thú và kỹ năng học lập trình cho học sinh bằng cách lồng ghép cả hai loại ngôn ngữ lập trình python và c để giải quyết một số nội dung trong bài xâu kí tự tin học 10

17 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Trang 1

1 MỞ ĐẦU

1.1 Lý do chọn đề tài.

Hiện nay tin học nói chung hay phần ngôn ngữ lập trình bậc cao nói riênglà một môn học có nội dung khá cần thiết đối với học sinh THPT Khi học sinhđi học đại học, chuyên nghiệp, học sinh phải học đến kiến thức lập trình bằngngôn ngữ bậc cao Nếu như học sinh không được làm quen ở THPT thì khi đihọc đại học hay chuyên nghiệp điều đó là một trở ngại lớn đối với học sinh

Những năm gần đây học sinh rất thích học chương trình tin học lập trình,nhưng vì chương trình lập trình là một phần học khó và trừu tượng, ngôn ngữlập trình thì thay đổi liên tục Trước đây học sinh THPT học ngôn ngữ Pascal,năm 2021-2022 học C++, năm học 2022-2023 thay đổi Python Sự thay đổi liêntục chương trình giáo dục THPT của môn tin học đã gây ra rất nhiều khó khăncho giáo viên và học sinh, học sinh lại chưa có kỹ năng lập trình Bên cạnh đódo cơ sở vật chất phục vụ cho môn Tin học, để có thể đáp ứng cho học sinhđược thực hành sau khi học lý thuyết của các nội dung học không có Vì vậy đểhọc sinh có thể dễ dàng tiếp nhận kiến thức và không chán nãn thì cần tạo chohọc sinh kỹ năng giải quyết được một số vấn đề yêu cầu đơn giản, trong quátrình dạy học tôi đã thực hiện biện pháp lồng ghép hai nội dung trong quá trìnhgiải quyết một vấn đề nào đó, để học sinh có thể nắm chắc bản chất của vấn đềvà cách thực hiện vấn đề đó Để từ đó học sinh có thể sử dụng bất cứ một loạingôn ngữ lập trình nào như: Python, C++,… để giải vấn đề nào đó mà khôngphải lo lắng, ngoài ra tôi đã vận dụng rất nhiều biện pháp để có thể đáp ứng nhucầu học tập và tiếp thu kiến thức của học sinh.

Khi yêu cầu học sinh giải một bài toán bằng ngôn ngữ lập trình nào đó tôiyêu cầu học sinh phải nắm được bản chất và cú pháp lệnh của ngôn ngữ đó.

“Xâu kí tự” là phần học thích hợp nhất đễ tạo hứng thú, rèn luyện kỹ năng học

lập trình cho học sinh, tạo cho sinh có những kỹ năng cơ bản, vì học sinh có thểlấy những ví dụ đơn giản, gần gủi trong học tập Ngoài ra tôi còn lấy thêm mộtsố ví dụ đơn giản hơn so với trong sách giáo khoa để học sinh nắm được cáchthức sử dụng bất cứ loại ngôn ngữ lập trình nào đó để giải quyết bài toán, đặctrưng là 2 loại ngôn ngữ Python và C++ trong chương trình học THPT mới Bàixâu kí tự là nội dung tôi tâm đắc nhất để có thể truyền tải cho học sinh kiến thứccần thiết và tạo được hứng thú học tập tốt nhất, giúp học sinh bước đầu không

còn “sợ” hai từ “lập trình” Vì vậy tôi đã chọn nội dung đề tài của tôi là: “Tạohứng thú và kỹ năng học lập trình cho học sinh bằng cách lồng ghép cả hailoại ngôn ngữ lập trình Python và C++ để giải quyết một số nội dung trongbài Xâu kí tự - Tin học 10”.

Tin học, nhất là tin học lập trình bằng ngôn ngữ bậc cao rất cần thiết chohọc sinh, nếu học sinh không học được, không nắm được kiến thức cơ bản ở cấpTHPT thì sẽ gây khó khăn cho học sinh khi đi học đại học, chuyên nghiệp Vìvậy việc cần phải tạo cho học sinh hứng thú học lập trình, học sinh nắm đượckiến thức, điều đó thật sự cần thiết và tôi đã cố gắng áp dụng tất cả những kinhnghiệm mình có để thực hiện truyền đạt kiến thức cho học sinh ở phần ngôn ngữlập trình bậc cao - Tin học 10, đặc biết tôi đã áp dụng phần nội dung trong bài

Trang 2

“Xâu kí tự” để đánh giá việc tiếp thu kiến thức của học sinh, vì phần này dễ tạohứng thú, dễ vận dụng nhất.

1.2 Mục đích nghiên cứu.

Chương trình tin học lập trình là chương trình khá khó đối với học sinhTHPT Mục tiêu của chương trình tin học lập trình là nhằm trang bị cho họcsinh một số khái niện cơ bản về lập trình và ngôn ngữ lập trình bậc cao

Thông qua việc hướng dẫn cho học sinh vận dụng một số nội dung trongbài xâu kí tự để giải quyết một số bài toán đơn giản, và từ đó tạo cho học sinhhứng thú học lập trình, rèn luyện cho học sinh những kỹ năng cơ bản Học sinhcó thể tự giải quyết các bài toán thực tế, những bài toán từ dễ đến khó, và có thểhiểu bản chất của bài toán từ đó có thể áp dụng bất cứ loại ngôn ngữ lập trìnhbậc cao nào để giải quyết bài toán mà không quá lo lắng như: C++, Python

Hiểu thế nào là kiểu kí tự, cách sử dụng biến xâu, câu lệnh làm việc với xâutrong chương trình đơn giản Vận dụng một số câu lệnh làm việc với xâu kì tựvào giải quyết một số bài toán đơn giản.

Các kiến thức trên góp phần phát triển khả năng tư duy khi giải quyết cácvấn đề trong khoa học cũng như trong cuộc sống.

Học sinh có thể giải được một số bài toán đơn giản trên máy tính bằngcách vận dụng được các kiến thức về thuật toán, cấu trúc dữ liệu, ngôn ngữ lậptrình cụ thể Rèn luyện được cho học sinh kỹ năng kết hợp giữa lý thuyết vàthực hành.

Bài xâu kí tự là nội dung phù hợp nhất cho học sinh làm quen để giảiquyết các bài toán đơn giản sau khi học cấu trúc chương trình

Trong quá trình giảng dạy cho học sinh hay nói đúng hơn là trước khi giảimột bài toán bằng ngôn ngữ lập trình thì cần phải yêu cầu học sinh xác địnhchính xác yêu cầu của bài toán, xác định đúng Input, output Như vậy sẽ pháthiện lỗi nhanh và không làm cho học sinh cảm thấy chán nãn, học sinh có thểchạy được một số chương trình đơn giản phù hợp với mọi đối tượng học sinh.

Dựa trên kiến thức đã học và một số ví dụ đơn giản để học sinh biết cáchxác định Input, Output trước khi giải quyết bài toán Từ đó tôi nhận thấy họcsinh hứng thú hơn trong khi học lập trình và phát hiện ra lỗi của chương trình tốthơn, các bước thực hiện rõ ràng.

1.3 Đối tượng nghiên cứu.

Phần ngôn ngữ lập trình là một phần học có thể nói là khó với đội tượnghọc sinh tại trường THPT Lam Kinh Các kiến thức trong phần học này gópphần phát triển khả năng tư duy khi giải quyết các vấn đề trong khoa học cũngnhư trong cuộc sống, hình thành một số kĩ năng trong việc giải quyết bài toánbằng ngôn ngữ lập trình; cách dùng biến xâu, khởi tạo các giá trị biến xâu, cáchsửa lỗi trong quá trình thực hành…Vì vậy tôi thấy rằng cần giúp học sinh tạocho mình một số kỹ năng học tin học nhất là tin học lập trình ở chương trình tin10 mà học sinh không có cảm giác sợ học hay chán nãn với sự khô khan của nóvà tôi đã bước đầu sử dụng kết hợp một số giải pháp trong quá trình dạy bài xâu

Trang 3

cho học sinh sự yêu thích, hứng thú khi được học tin học lập trình, không bỡngỡ trước bất cứ ngôn ngữ lập trình nào, nhất là Python và C++ Vì vậy đề tài

của tôi là: “Tạo hứng thú và kỹ năng học lập trình cho học sinh bằng cáchlồng ghép cả hai loại ngôn ngữ lập trình Python và C++ để giải quyết một sốnội dung trong bài Xâu kí tự - Tin học 10”.

Tôi đã thực hiện kết hợp dạy lồng ghép kiến thức “Thuật toán” và “xâu kítự” trong bài dạy, bên cạnh đó tôi lấy thêm nhiều ví dụ phù hợp với đối tượnghọc sinh của từng lớp Ngoài ra tôi đã thực hiện lồng ghép dạy lý thuyết và thựchành luôn trong tiết dạy để có thể phù hợp tình trạng thiếu cơ sở vật chất hiệnnay của nhà trường, tôi đã áp dụng cho lớp cơ bản A, cơ bản C… và thật sự thấycó hiệu quả tốt Học sinh hào hứng, chủ động hơn trong giờ học Nhằm phát huyđược tính chủ động, sáng tạo của học sinh Đáp ứng được yêu cầu đánh giá giờdạy theo 12 tiêu chí công văn 572 của Sở GD&ĐT Thanh Hóa Xây dựng nhữngkỹ năng cần thiết cho học sinh như:

Kỹ năng quản lý cảm xúc Kỹ năng làm việc đội nhóm Kỹ năng quản lý thời gian Kỹ năng giao tiếp và ứng xử Kỹ năng giải quyết vấn đề Kỹ năng tự nhận thức.Kỹ năng lập trình.

1.4 Phương pháp nghiên cứu.

Tìm hiểu đối tượng học sinh của từng lớp, thuyết trình kết hợp thực hànhthao tác, hướng dẫn học sinh theo hướng học sinh chủ động, tạo cho học sinh cónhiều hứng thú trong giờ học Có thể kết hợp cả các biện pháp khuyến khíchnhư: Khích lệ, cho điểm cao để học sinh hứng thú và hăng say phát biểu bài hơn.Cho những ví dụ thực tế phù hợp với các nhóm đối tượng học sinh (Giỏi, khá,trung bình, yếu), ứng dụng phương pháp dạy học theo NCBH trong các tiết dạy.Có thể kết hợp nhiều biện pháp để hướng dẫn cho học sinh giải quyết các thuậttoán từ dễ đến khó, không tạo cho học sinh áp lực dẫn đến chán nãn trong quátrình học phần này.

Tôi đã sử dụng một số phương pháp nghiên cứu chẳng hạn như:

Phương pháp nghiên cứu xây dựng cơ sở lý thuyết Tôi vận dụng ghépphần thuật toán và cùng kết hợp với phần lý thuyết xâu kí tự.

Phương pháp dạy học theo nhóm, thực hành theo nhóm.Phương pháp điều tra khảo sát thực tế, thu thập thông tin.

Phương pháp thống kê, xử lý số liệu Học sinh phải tự cho một bài toántrong thực tế, và giải quyết bài toán đó

2.NỘI DUNG SÁNG KIẾN KINH NGHIỆM2.1 Cơ sở lí luận của sáng kiến kinh nghiệm.

Hầu hết học sinh khối 10, vì các em mới bắt đầu tiếp cận với chương trìnhTHPT, áp lực học hành của nhiều môn học, phương pháp học tập cũng có khácsơ với THCS, lượng kiến thức nhiều, môn tin học, nhất là phần lập trình lại khá

Trang 4

mới với các em, vì nó liên quan đến rất nhiều môn học như: Toán, lý, anh Mônhọc này yêu cầu cao về tư duy, logic Sau khi học sinh học những nội dung củaphần lập trình như cấu trúc chương trình, kiểu dữ liệu, câu lệnh rẽ nhánh, câulệnh lặp, học sinh vẫn rất mơ hồ và chưa thật sự hứng thú với tin học lập

trình Vì vậy tôi đã trăn trở rất nhiều “Làm thế nào để học sinh hứng thú họctập phần tin học lập trình?” và tôi đã quyết định vận dụng những kinh nghiệmcủa mình trong dạy học phần xâu kí tự Nó là một phần học dễ tạo hứng thú cho

học sinh nhất vì học sinh có thể lấy những ví dụ và có thể chạy bài và hiểu tácdụng của từng câu lệnh hơn

Phần ngôn ngữ lập trình bậc cao lớp 10 nó có liên quan kiến thức đến cảtoán, lý, tiếng anh và yêu cầu cao của môn học về tư duy, logic Vì thế để cácem có hứng thú học phần tin học lập trình là cả một vấn đề Tôi đã áp dụng mộtsố kinh nghiệm vào quá trình giảng dạy tại lớp, và đầu tiên đó là phần xâu kí tựvì phần này có thể dễ dàng khơi gợi lòng ham thích học lập trình của học sinh,rèn luyện một số phẩm chất cần thiết của người lập trình như: cẩn thận, chu đáo,sáng tạo, không thỏa mãn với kết quả đạt được…

Học sinh có thể hiểu được xâu kí tự là gì? “là dãy kí tự trong bộ mãUnicode [1,3] Thành phần của xâu gồm: “các phần tử trong xâu” [3], cách xác

định độ dài xâu “ số lượng phần tử của xâu” [3].

Theo tôi muốn cho giờ học đạt kết quả tốt, học sinh nắm bài tốt và có thểvận dụng nó trong quá trình lập trình giải bài toán trên máy tính bằng chươngtrình thì cần phải có tiết dạy tốt Vậy theo bạn thế nào là tiết dạy tốt? Theo tôitiết dạy tốt là học sinh phải hăng hái học tập, hăng say phát biểu bài, giải quyếttốt những vấn đề mà giáo viên đặt ra Để làm được điều này tôi đã áp dụng mộtsố biện pháp trong tiết dạy nội dung bài kiểu xâu tại các lớp như sau:

Yêu cầu học sinh nắm được ý nghĩa của kiểu xâu: xâu có thể coi như là

một mảng một chiều, mỗi kí tự là một phần tử [3] Nếu xâu có độ dài bằng 0 thìxâu đó là xâu rỗng.[3]

Cách truy cập từng kí tự của xâu thông qua chỉ số, chỉ số bắt đầu từ 0 [1,3]Áp dụng thực hiện làm một số ví dụ thực tế của giáo viên giao và lấy ví dụtrong sách giáo khoa.

2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm

Mục tiêu của chương trình tin học 10 là nhằm trang bị cho học sinh một sốkhái niện cơ bản về lập trình và ngôn ngữ lập trình bậc cao đặc trưng là Python,C++ Học sinh có thể giải được một số bài toán đơn giản trên máy tính bằngcách vận dụng được các kiến thức về thuật toán, cấu trúc dữ liệu, ngôn ngữ lậptrình cụ thể ví du như Python, C++

Bài kiểu xâu là một nội dung phù hợp nhất cho học sinh làm quen để giảiquyết các bài toán đơn giản sau khi học cấu trúc chương trình

Kết hợp phần thuật toán – Tin 10 chương trình cũ, trong quá trình giảngdạy cho học sinh hay nói đúng hơn là trước khi giải một bài toán bằng ngôn ngữlập trình thì cần phải yêu cầu học sinh xây dựng thuật toán, cần xác định đượcinput và output Như vậy sẽ phát hiện lỗi nhanh và không làm cho học sinh cảm

Trang 5

thấy chán nãn, học sinh có thể chạy được một số chương trình đơn giản phù hợpvới mọi đối tượng học sinh.

Trước khi tôi áp dụng một số giải pháp theo kinh nghiệm dạy học của mìnhtôi thấy học sinh không hứng thú với phần tin học lập trình, mỗi khi đến giờ Tinhọc, học sinh luôn trong tâm trạng mệt mõi, lù đù, không phản ứng khi cô giáohỏi, chất lượng học tập của học sinh rất kém, tỉ lệ trung bình và yếu nhiều, hầunhư học sinh không nắm được kiến thức cơ bản, Vì vậy tôi đã mạnh dạn ápdụng một số giải pháp dạy học, đặc biệt trong nội dung tài liệu này tôi chỉ đưa raminh chứng mà tôi áp dụng trong nội dung bài “Xâu kí tự”, để là một minhchứng cho chất lượng dạy học để nâng cao hiệu quả học tập và tôi nhận thấy kếtquả học tập tại các lớp tốt hơn nhiều, học sinh ham thích học tin học lập trìnhhơn, có tinh thần học tốt hơn, nhiều học sinh còn chờ đợi đến tiết Tin học.

Nội dung học phần ngôn ngữ lập trình bậc cao - Tin học 10 là phần học khákhó, vì vậy với nội dung trong sách giáo khoa học sinh rất khó hiểu, từ đó sẽ dẫnđến tình trạng ngại học Kinh nghiệm của tôi sau nhiều năm dạy tin học nhất làphần lập trình, dạy phần này cần tạo cho học sinh hứng thú học cần thiết Trongsách giáo khoa tin 10 trong phần xâu kí tự cho học sinh học một số ví dụ banđầu không phù hợp với học sinh Vì vậy tôi đưa ra một số ví dụ có yêu cầu thấphơn, đi vào giải quyết từng vấn đề nhỏ, từng câu lệnh Từ đó học sinh dễ dàngnắm bắt kiến thức Kết hợp cả các biện pháp khuyến khích như có những lời nóikhích lệ các em trước tập thể lớp, khuyến khích cho điểm cao để học sinh hứngthú và hăng say phát biểu bài hơn Từ đó có thể giải quyết các ví dụ trong sáchgiáo khoa.

2.3 Các giải pháp đã áp dụng để giải quyết vấn đề.

Theo tôi muốn cho giờ học đạt kết quả tốt, học sinh nắm bài tốt và có thểvận dụng nó trong quá trình lập trình giải bài toán trên máy tính bằng chươngtrình ngôn ngữ bậc cao như Python hay C++… thì cần phải có tiết dạy tốt Vậytheo bạn thế nào là tiết dạy tốt? Theo tôi tiết dạy tốt là học sinh phải hăng háihọc tập, hăng say phát biểu bài, giải quyết tốt những vấn đề mà giáo viên đặt ra.Để làm được điều này tôi đã áp dụng một số biện pháp trong tiết dạy nội dungbài kiểu xâu tại các lớp như sau:

Tôi đã thực hiện lồng ghép các phương pháp dạy học vào với nhau trongcác tiết dạy

Cho ví dụ phù hợp với nhóm đối tượng học sinh không nhất thiết phải ápdụng ví dụ trong sách giáo khoa.

Ứng dụng phương pháp dạy học theo nghiên cứu bài học, học sinh làm việctheo nhóm, thực hành theo nhóm.

Tôi đã thực hiện kết hợp dạy lồng ghép kiến thức “Thuật toán”, “Rẽnhánh”, “ lặp” và “Xâu” trong bài dạy, bên cạnh đó tôi lấy thêm nhiều ví dụ phùhợp với đối tượng học sinh của từng lớp.

Tôi nhắc lại kiến thức cho học sinh về lệnh rẽ nhánh, lặp, mảng Sau khi ônlại kiến thức đã học trên, tôi yêu cầu học sinh giải quyết một số bài toán đơngiản để học sinh có thể thực hiện xây dựng một chương trình đơn giản giải quyếtbài toán đơn giản bằng chương trình C++ hoặc Python.

Trang 6

Sau khi ôn lại kiến thức đã học tôi cho học sinh bắt đầu tìm hiểu kiếnthức một số lệnh làm việc với xâu kí tự.

A Nội dung lý thuyết

Nhiệm vụ 1: Xác định thành phần của xâu

‘Hoc python khong kho’‘chuc cac em hoc tap tot!’

?Tại sao dãy kí tự trên lại đặt trong cặp ‘ ’? (đó là dãy kí tự của bảng mãUnicode) [3]

Nhiệm vụ 2: Tìm hiểu khái niệm kiểu xâu

Từ ví dụ trên yêu cầu học sinh đưa ra khái niệm: Xâu là dãy kí tự trongbảng mã Unicode Xâu có thể coi là danh sách các kí tự nhưng không thay đổitừng kí tự của xâu, chỉ số được đánh số từ 0 [1]

Xâu có thể xem như một mảng một chiều, mỗi phần tử là một kí tự [3]

Nhiệm vụ 3: Một số thao tác với xâu

*) Khai báo xâu

Cú pháp:

<tên biến xâu> = str() Cú pháp: 1. String <tên biến xâu>;

2. String <tên biến xâu>[độ dàixâu];

Ví dụ:

S=str()

Ví dụ: string S;

string S[10];

Nên cho học sinh biết tại sao lại có 2 dạng trên của C++? [3]

Ở dạng 1: không khai báo độ dài lớn nhất của xâu nhưng tự ngầm hiểu độdài của xâu được nhập vào không quá 255 kí tự được sử dụng đối với các xâuchưa xác định được độ dài Vi dụ như: Họ tên

Ở dạng 2: đối với những xâu đã xác định được độ dài Ví dụ như: Ngày/tháng/ năm (gồm 10 kí tự).

Trang 7

*) Cho ra xâu có nội dung vừa nhập.

Khi nhập xâu bằng lệnh cin thì chỉnhập được từ kí tự đầu tiên đến trướcdấu cách, nên chỉ đưa ra màn hình nộidung trước dấu cách.

Trang 8

*) Gán xâu

<tên biến xâu>=< “nội dung xâu” > <tên biến xâu>=< “nội dung xâu” >

*) Tính độ dài xâu

Thực hiện: Tính độ dài của xâu s.

Ví dụ: Cho xâu s có nội dung ‘Viet Nam’.

Tác dụng: Ghép nhiều xâu thành một xâu

Ví dụ: Nhập vào 2 xâu từ bàn phím Hãy thực hiện ghép 2 xâu thành một xâu cónghĩa.

Trang 9

Có thể thực hiện nhập xâu từ bàn phím hoặc thực hiện gán xâu [3]

Chú ý cho học sinh khi xây dựng lệnh thì cần xác định xâu nào gọi ratrước, xâu nào gọi ra sau Nếu xâu nào muốn xuất hiện trước thì gọi ratrước.

Ví dụ 2: Cho xâu ‘Ha Noi’ va xâu ‘Viet Nam’ Ghép hai xâu thành một xâu [3]

Từ hai ví dụ trên, học sinh có thể đưa ra nhận xét gì về thao tác ghép xâu?Có thể ghép xâu gián tiếp qua biến xâu hoặc trực tiếp bằng xâu kí tự Nếu ghéptrực tiếp bằng xâu kí tự thì không cần khai báo biến và không cần nhập xâu từ

Trang 10

bàn phím, nếu gián tiếp qua biến thì phải khai báo biến và nhập xâu từ bànphím.

*) So sánh xâu Theo quy tắc: [3]

 Hai xâu bằng nhau: Hai xâu giống nhau hoàn toàn

 Xâu s1>s2 nếu kí tự đầu tiên khác nhau giữa 2 xâu kể từ trái sang phảitrong xâu có mã ASCII lớn hơn (Độ dài 2 xâu bằng nhau)

 Xâu s1>s2 khi s2 là đoạn đầu của s1 (Độ dài 2 xâu khác nhau) [3]

*) Tìm vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2:

Thực hiện: Kiểm tra xem vị trí xuất hiện đầu tiên của xâu s2 trong xâu s1 từ vịtrí nào.

Ví dụ: cho xâu, s1= ‘Viet Nam’, s2= ‘nam’ Kiểm tra xem s2 trong s1 từ vị trínào.

Ngày đăng: 13/06/2024, 20:24

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w