CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc BÁO CÁO - Tên giải giải pháp: Mô thuật toán ngôn ngữ lập trình - Yếu tố sáng tạo sáng kiến: Sáng kiến, kinh nghiệm hoàn toàn mới, áp dụng lần đơn vị Viết C++, cho phép sinh viên quan sát trình thực thuật toán theo bước, có âm hình ảnh động minh họa - Hiệu phạm vi áp dụng sáng kiến: Giải pháp giúp sinh viên giáo viên dễ dàng hiểu thuật toán thông qua hình ảnh động, kích thích tính tự học, sáng tạo say mê lập trình sinh viên Chất lượng môn học nâng lên rõ rệt năm học KH1 năm học 20152016 Cụ thể 100% sinh viên có kết điểm học phần đạt Có thể áp dụng cho tất chương trình đào tạo có giảng dạy môn lập trình (từ tỉnh trở lên) Trang GIẢI PHÁP KỸ THUẬT MÔ PHỎNG CÁC THUẬT TOÁN TRONG NGÔN NGỮ LẬP TRÌNH NỘI DUNG Phần dẫn nhập Những khó khăn Những giải pháp khắc phục khó khăn Kết thực Kết luận I- PHẦN DẪN NHẬP Hiện chương trình giảng dạy ngành kỹ thuật, đặt biệt ngành Công nghệ thông tin có nhiều môn lập trình đưa vào giảng dạy Tuy nhiên việc truyền tải thuật toán cho sinh viên gặp nhiều khó khăn Dẫn đến chất lượng tiết học, kết học tập nhiều hạn chế Vậy thuật toán nguyên nhân khiến cho sinh viên khó tiếp thu trình học tập? Khái niệm thuật toán: Thuật toán dãy hữu hạn thao tác xếp theo trình tự xác định cho sau thực thao tác ấy, từ Input toán ta nhận Output cần tìm Cũng xem thuật toán công cụ để giải toán cụ thể Phát biểu toán định tổng quát mối quan hệ Input/Output cần thiết Thuật toán mô tả thủ tục tính toán cụ thể để đạt mối quan hệ Input/Output Các nguyên nhân: + Hầu hết sinh viên lần đầu tiếp xúc với ngôn ngữ lập trình + Các thuật toán khó hình dung, việc hiểu cài đặt tốt thuật toán đòi hỏi thời gian công sức + Việc tổ chức liệu cho phức tạp, thời gian giảng dạy lớp có hạn + Đây môn đòi tính kiên trì, có tư duy, tham khảo nhiều nguồn tài liệu, nhiều kênh học tập khác trình học tập + Cách dạy đơn điệu, sinh viên nhìn tưởng tượng bước thực thuật toán + Chất lượng đầu vào sinh viên năm gần nhiều hạn chế Xuất phát từ nguyên nhân nêu giáo viện trực tiếp đứng lớp giảng dạy Tôi đặt câu hỏi làm cách để giúp học sinh giáo viên dễ dàng học ngôn ngữ lập trình, kích thích tính tự học, say mê sáng tạo say mê lập trình sinh viên Để thực điều đó, công việc người giáo viên phải không ngừng đổi nội dung lẫn phương pháp, phải theo chủ trương ứng dụng CNTT vào công tác giảng dạy Trang Để thực điều đó, trình giảng dạy nghiên cứu để viết chương trình “Mô thuật toán ngôn ngữ lập trình” cho môn học lập trình Trong có môn Cấu trúc liệu giải thuật Một số chương trình giới thiệu đề tài sáng kiền này, chương trình mô thuật toán cấu trúc liệu dạng (chương 4: Cấu trúc cây) Nhằm mục đích giúp sinh viên dễ dàng nắm bắt tư tưởng bước hoạt động cụ thể thuật toán, làm cho giảng thuật toán trở nên dễ hiểu, dễ tiếp thu II- NHỮNG KHÓ KHĂN: Chương trình mô thuật toán ngôn ngữ lập trình nhiều tác giả thực từ lâu với nhiều ngôn ngữ lập trình khác Visual C++, Visual Studio, C#, java…v v Ta cần vào Google gõ vào nội dung cần tìm chương trình mô thuật toán đó, kết hiểu thị nhiều kết cần tìm (miễn phí trả phí) Tuy nhiên điều quan trọng thuật toán đem vào giảng dạy cho cấp học, đối tượng trình độ khác Vì vậy, giáo viên người trực tiếp đứng lớp người am hiểu đối tượng mà giảng dạy, từ tự thiết kế giảng cho riêng để áp dụng vào giảng dạy cho hiệu Để viết chương trình mô phải cần nhiều yếu tố Một yếu tố là: + Mô theo thuật toán + Cho phép thực theo bước + Mô thuật toán phải có tính động + Có thể thực thi với liệu đầu vào + Có phân cấp người học Ngoài yếu tố trên, điều quan trọng phải xây dựng quy trình trình để mô thuật toán bao gồm bước + Nghiên cứu phân tích liệu + Mô liệu kết đầu + Chia thuật toán theo bước nhỏ mô bước + Ngôn ngữ để mô thuật toán III- GIẢI PHÁP KHẮC PHỤC KHÓ KHĂN: Trong phạm vi sáng kiến mang tính chất chuyên ngành, không sâu giải thích thuật toán (bao gồm câu lệnh khô khan, khó hiểu) Tôi nêu đưa cách làm để câu lệnh trở sinh động, dễ hiểu Giúp cho việc dạy học ngôn ngữ lập trình trở nên sinh động, nhẹ nhàng húng thú cho sinh viên Trang Vì thuật toán mô áp dụng Nên giới thiệu sơ lược cấu trúc câu (trên phương diện tương tự thư mục lưu trữ liệu máy tính) Định nghĩa cây: Cây tập hợp T phần tử (gọi nút cây) có nút đặc biệt gọi gốc, nút lại chia thành tập rời T1, T2 , , Tn theo quan hệ phân cấp Ti Mỗi nút cấp i quản lý số nút cấp i+1 Quan hệ người ta gọi quan hệ cha-con Tất liệu lưu trữ máy tính nhằm mục đích dùng để khai thác xử lý Trong trình khai thác xử lý người ta thiết kế thuật toán để thực điều Dữ liệu lưu trữ dạng không nằm ngoại lệ, sau vài thuật toán thông dụng áp dụng cấu trúc (để dễ hiểu thuật toán áp dụng cho lưu trữ số nguyên) Các thuật toán áp dụng cây: a Thuật toán tạo cây: Trang b Thuật toán tìm phần tử cây: c Thuật toán thêm phần tử vào cây: Trang d Thuật toán xóa (hủy) phần tử cây: Mô thuật toán cây: Tất các thuật toán mô ngôn ngữ C++ thỏa mãn yếu tố nêu phần II là: • Mô theo thuật toán • Cho phép thực theo bước • Mô thuật toán phải có tính động • Có thể thực thi với liệu đầu vào • Có phân cấp người học Dưới vài hình ảnh minh họa trình mô thuật toán Việc thực trình tự đầy đủ bước mô cụ thể chương trình Trang a Kết thực thuật toán tạo cây: b Tương tự cho kết thực thuật toán tìm phần tử cây: Trang c Tương tự cho thuật toán thêm phần tử vào cây: d Tương tự cho thuật toán xóa (hủy) phần tử cây: Trên chương trình mô cho số thuật toán chương môn Cấu trúc liệu giải thuật Một môn học tương đối khó mà tất Trang sinh viên học ngành Công nghệ thông tin bắt buộc phải trải qua, môn học làm tiền đề cho môn lập trình khác Tât chương khác môn mô chương trình động giúp cho sinh viên tiếp thu dễ hơn, giảng sinh động hơn, thay số, câu lệnh khô khan khó hiểu IV- KẾT QUẢ THỰC HIỆN: Sau áp dụng cách làm cho cấu trúc tìm kiếm nhị phân cấu trúc liệu khác môn học Kết đạt học sinh có hứng thú môn học từ kết môn học nâng lên cách rõ rệt kỳ thi học kỳ I năm học 2015-2016 Cụ thể sau: Trang V KẾT LUẬN Để thực việc này, đòi hỏi phải tốn nhiều thời gian, công sức Nhưng đổi lại kết học tập sinh viên, niềm động viên, an ủi, động lực cho để không ngừng đổi phương pháp, nội dung suốt trình giảng dạy Qua đây, mong nhận nhiều ý kiến đóng góp từ đồng nghiệp, từ hội đồng khoa học giúp cho công việc giảng dạy thân nói riêng nhà trường nói chung ngày cải tiến đạt hiệu cao Xin chân thành cảm ơn! Trang 10 ... Để thực điều đó, trình giảng dạy nghiên cứu để viết chương trình Mô thuật toán ngôn ngữ lập trình cho môn học lập trình Trong có môn Cấu trúc liệu giải thuật Một số chương trình giới thiệu... Các thuật toán áp dụng cây: a Thuật toán tạo cây: Trang b Thuật toán tìm phần tử cây: c Thuật toán thêm phần tử vào cây: Trang d Thuật toán xóa (hủy) phần tử cây: Mô thuật toán cây: Tất các thuật. .. trọng phải xây dựng quy trình trình để mô thuật toán bao gồm bước + Nghiên cứu phân tích liệu + Mô liệu kết đầu + Chia thuật toán theo bước nhỏ mô bước + Ngôn ngữ để mô thuật toán III- GIẢI PHÁP