SKKN Một số kỹ thuật lập trình nâng cao giúp đạt hiệu quả cao trong bồi dưỡng học sinh giỏi các cấp

Giá:
100.000 đ
Môn: Tin học
Lớp: 12
Bộ sách:
Lượt xem: 487
Lượt tải: 6
Số trang: 109
Tác giả: Phạm Thị Bảo Ngọc
Trình độ chuyên môn: Cử nhân đại học
Đơn vị công tác: THPT Nguyễn Xuân Ôn
Năm viết: 2020-2021
Số trang: 109
Tác giả: Phạm Thị Bảo Ngọc
Trình độ chuyên môn: Cử nhân đại học
Đơn vị công tác: THPT Nguyễn Xuân Ôn
Năm viết: 2020-2021

Sáng kiến kinh nghiệm “Một số kỹ thuật lập trình nâng cao giúp đạt hiệu quả cao trong bồi dưỡng học sinh giỏi các cấp”triển khai gồm các biện pháp nổi bật sau:

2.3. Các kỹ thuật lập trình nâng cao

2.3.1. Kỹ thuật mảng đánh dấu

2.3.2. Kỹ thuật mảng đếm

2.3.3. Kỹ thuật quay lui

2.3.4. Kỹ thuật quy hoạch động

2.4. Đánh giá các kỹ thuật

Mô tả sản phẩm

  • MỞ ĐẦU 

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

Chúng ta biết rằng để có kết quả cao trong kì thi tuyển chọn học sinh giỏi môn Tin học nói chung thì phải có vốn kiến thức tốt về thuật toán để giải được các bài toán từ mức độ cơ bản đến nâng cao, sau đó học sinh lựa chọn NNLT để lập trình dựa vào thuật toán đã tìm được và giải bài toán theo yêu cầu. 

Điều này lại chỉ được hình thành sau khi người học được tiếp xúc với một hệ thống các bài toán đi từ cơ bản đến nâng cao được tổ chức cẩn thận, chặt chẽ. Hệ thống này giúp xây dựng được các thói quen tư duy cơ bản và nâng cao cũng như các kỹ thuật cơ bản và kỹ thuật nâng cao trong lập trình.  

Với các kỹ thuật cơ bản như cờ hiệu, lính canh, ghi nhớ, duy trì mảng sắp xếp, đệ quy, chia đệ trị mà tôi đã trình bày trong SKKN năm trước đã giúp các quý thầy cô và các em học sinh có được kiến thức và tư duy cơ bản cũng như có cái nhìn tổng quan về ưu điểm và hạn chế của các kĩ thuật. Tuy nhiên, khi tham gia kì thi HSG các cấp có nhiều bài toán nâng cao đòi hỏi phải sử dụng đến các kỹ thuật nâng cao hơn mà các kỹ thuật cơ bản không cho được thuật toán tối ưu.  

Với mong muốn giúp các em giải các bài toán nâng cao trong Tin học theo hướng tối ưu nhất, qua quá trình bồi dưỡng học sinh giỏi, tôi đã phát hiện, đúc rút ra được một số kỹ thuật lập trình nâng cao, rất quan trọng giúp đạt hiệu quả cao trong kì thi HSG các cấp như cấp trường, cấp huyện, cấp tỉnh, cấp Quốc gia. 

Mặt khác, theo tôi thấy hiện tại chưa có tài liệu nào viết về các kỹ thuật lập trình nâng cao và ứng dụng của chúng một cách đầy đủ để làm tài liệu tham khảo mới cho giáo viên và học sinh. 

Ngoài ra, theo công văn mới của Sở về thi HSG cấp tỉnh sẽ không dùng NNLT Pascal nữa nên tôi viết chương trình bằng NNLT C++ để làm tài liệu tham khảo mới cho giáo viên và học sinh. 

Từ những lý do trên, tôi quyết định trình bày sáng kiến kinh nghiệm: 

“Một số kỹ thuật lập trình nâng cao giúp đạt hiệu quả cao trong bồi dưỡng học sinh giỏi các cấp”. 

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

Mục đích chính của sáng kiến là giới thiệu đến giáo viên và học sinh một số kỹ thuật lập trình nâng cao dành cho đối tượng HSG các cấp khối THPT. 

  • Giúp các em học giỏi môn Tin Học đạt kết quả cao. 
  • Tạo ra nguồn tài liệu tham khảo về thuật toán hỗ trợ cho học sinh, giáo viên dạy Tin học bậc THPT. 
  • Sử dụng NNLT C++ là ngôn ngữ có ưu thế mạnh trong thực hiện chương trình nhanh, phù hợp với thi HSG các cấp. 

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

  • Giáo viên và học sinh tham gia bồi dưỡng HSG Tin học. 
  • Tổng hợp lại một số kỹ thuật nâng cao giúp học sinh phát triển tư duy lập trình thông qua hệ thống các bài tập được phân loại kỹ lưỡng. 1.4. Phương pháp nghiên cứu 
  • Phương pháp điều tra, nghiên cứu tài liệu. 
  • Phương pháp phân tích, tổng hợp. 
  • Phương pháp khảo sát thực tiễn. 
  • Phương pháp tổng kết kinh nghiệm. 

1.5. Phạm vi nghiên cứu 

Phạm vi nghiên cứu: Một số kỹ thuật nâng cao để tăng tốc chương trình giúp đạt hiệu quả cao trong bồi dưỡng HSG các cấp môn Tin học. 

  • NỘI DUNG NGHIÊN CỨU 

2.1. Cơ sở lý luận 

  2.1.1. Khái niệm về kỹ thuật lập trình 

  Kỹ thuật lập trình là kỹ thuật thực thi một giải pháp phần mềm (cấu trúc dữ liệu + giải thuật) dựa trên nền tảng một phương pháp luận (methodology) và một hoặc nhiều ngôn ngữ lập trình phù hợp với yêu cầu đặc thù của ứng dụng. 

  2.1.2. Vai trò của kỹ thuật lập trình 

 Trẻ em là thế hệ của tương lai, trẻ em cũng cần học các kỹ năng giúp cho trẻ có thể làm được những điều mới chứ không hoàn toàn đi theo những gì đã được dạy trong quá khứ. Theo nhiều chuyên gia, lập trình là một trong những kỹ năng quan trọng trẻ nên được trang bị từ sớm để giúp trẻ phát triển tư duy tính toán và các kỹ năng tư duy phản biện, kỹ năng trình bày, kỹ năng quản lý thời gian, làm việc nhóm…. và quan trọng hơn hết là được thỏa sức sáng tạo “thế giới trong mơ” của mình một cách sinh động trên máy tính. Tư duy tính toán (Computational Thinking) là cách tư duy sao cho không những giải quyết được vấn đề mà còn có thể đưa vào máy tính cách giải quyết vấn đề. Nhờ đó, vấn đề sẽ được máy tính xử lý một cách chính xác, nhanh chóng và có thể tự động hoàn toàn. Tư duy tính toán là nền tảng của Trí tuệ nhân tạo, Học máy và nhiều công nghệ khác của tương lai. Khi được phát triển kỹ năng này từ sớm, trẻ sẽ biết cách tiếp cận giải quyết vấn đề từng bước một cách logic và dần biết được cách giải quyết các vấn đề lớn, phức tạp.  

2.2. Thực trạng 

Trên thực tế đã có một số tài liệu đề cập đến những kỹ thuật để tăng tốc chương trình, tuy nhiên chưa đi sâu vào phân tích cách tư duy, cách lựa chọn và cài đặt chương trình tối ưu, đặc biệt việc tổng hợp lại các kỹ thuật từ cơ bản đến nâng cao giúp học sinh có thể so sánh các cách giải, các kết quả, độ phức tạp còn rất ít, hệ thống bài tập cũng không nhiều. 

Trong quá trình ôn luyện đội tuyển, học sinh được dạy một số kỹ thuật cơ bản như kĩ thuật cờ hiệu, lính canh, ghi nhớ, duy trì mảng sắp xếp, đệ quy,… để giải các bài toán ở mức độ cơ bản và mức độ khá. Nhưng nếu chỉ dừng lại ở đó hay không biết kết hợp với những kỹ thuật nâng cao khác sẽ không đạt được sự tối ưu cao nhất và kết quả tốt nhất.  

Các kỹ thuật được giới thiệu trong sáng kiến đều là những kỹ thuật nâng cao đem lại một hiệu quả rất đáng kể trong việc giảm độ phức tạp thuật toán, tiến tới một thuật toán tối ưu nhất. 

Học sinh dần được làm quen với NNLT C++. 

2.3. Các kỹ thuật lập trình nâng cao 

2.3.1. Kỹ thuật mảng đánh dấu 

  • Là kỹ thuật sử dụng một mảng để đánh dấu trạng thái (true/fasle hoặc 0/1) cho tập số tự nhiên {0, 1, 2, … , n − 1}. 
  • Mục đích chính: đánh dấu trạng thái của các số trong một tập số tự nhiên. 

Sau đó, dựa vào trạng thái của phần tử có chỉ mục tương ứng để kiểm tra một tính chất nào đó. 

  • Xét một số bài toán cụ thể như sau: 

2.3.1.1. Bài toán 1 – Số nhỏ nhất 

Cho N số nguyên dương A = (a1 , a2, … , aN) (1 ≤ N ≤ 108 và 1 ≤ ai ≤ 106). Hãy tìm số nguyên dương nhỏ nhất không xuất hiện trong A.  

Input  

  • Dòng đầu tiên chứa số nguyên N 
  • Dòng thứ hai chứa N số tự nhiên 

   Output  

  • Số tự nhiên nhỏ nhất không xuất hiện trong A 

Ví dụ  

0/5 (0 Reviews)
0/5 (0 Reviews)

TÀI LIỆU LIÊN QUAN

SKKN Hệ thống bài tập rèn luyện kĩ năng sử dụng cấu trúc lặp trong dạy học lập trình cho học sinh trung học phổ thông
10.11
TIN HỌC
4.5/5

100.000 

10
TIN HỌC
4.5/5

100.000 

10
TIN HỌC
4.5/5

100.000 

10
Tin học
4.5/5

100.000 

Theo dõi
Thông báo của
guest
Phản hồi nội tuyến
Xem tất cả bình luận
Set your categories menu in Theme Settings -> Header -> Menu -> Mobile menu (categories)
Shopping cart

KẾT NỐI NGAY VỚI KIẾN EDU

Chúng tôi luôn sẵn sàng lắng nghe và đưa ra giải pháp phù hợp nhất cho vấn đề của bạn.

0886945229

Email

kienedu.com@gmail.com

Đây chỉ là bản XEM THỬ - khách hàng vui lòng chọn mua tài liệu và thanh toán để nhận bản đầy đủ

TẢI TÀI LIỆU

Bước 1: Chuyển phí tải tài liệu vào số tài khoản sau với nội dung: Mã tài liệu

Chủ TK: Ngô Thị Mai Lan

STK Agribank: 2904281013397 Copy
* (Nếu khách hàng sử dụng ngân hàng Agribank thì chuyển tiền vào STK Agribank để tránh bị lỗi treo giao dịch)
STK TPbank: 23665416789 Copy
tài khoản tpbank kienedu

Bước 2: Gửi ảnh chụp giao dịch vào Zalo kèm mã tài liệu để nhận tài liệu qua Zalo hoặc email

Nhắn tin tới Zalo Kiến Edu (nhấn vào đây để xác nhận và nhận tài liệu!)