Chương 1: Tổng quan về vấn đề nghiên cứu Chương này trình bày tổng quan về những vấn đề cơ bản trong dạy và học Pascal ở trường THPT, giới thiệu phương pháp và một số hướng tiếp cận xây dựng phần mềm hỗ trợ dạy và học ngôn ngữ lập trình Pascal cho học sinh THPT. Chương 2: Hướng tiếp cận và ứng dụng trong dạy và học Pascal Chương này tôi tập trung nghiên cứu một số hướng tiếp cận và mô hình học tập đã và đang được triển khai thành công trong giáo dục như: mô hình Code Hunt với chiến thuật trò chơi hóa, hệ thống dạy học khép kín, mô hình phân loại trí năng của Bloom, và mô hình đánh giá năng lực của Dreyfus. Từ những nghiên cứu đó tôi đưa ra những đề xuất về thiết kế nội dung học tập Pascal đồng thời đưa ra phương pháp đánh giá, đo lường kết quả của người học. Chương 3: Xây dựng hệ thống giải quyết bài toán Trong chương này tôi đưa ra hai nhiệm vụ của bài toán là thiết kế giảng dạy và đánh giá chương trình của người học.
Từ đó tôi đưa ra bài toán và xây dựng chức năng của phần mềm hỗ trợ dạy và học ngôn ngữ lập trình Pascal. Chương 4: Cài đặt thử nghiệm và kết quả đạt được Chương này hướng dẫn việc cài đặt và triển khai phần mềm, đồng thời đánh giá việc thực hiện đề tài trong lý thuyết cũng như trong thực tiễn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3 Chƣơng 1. TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU 1. Vấn đề dạy và học ngôn ngữ lập trình Pascal trong trƣờng THPT Đầu những năm 1970, giáo sư Niclaus Wirth đã công bố sự ra đời của Ngôn ngữ lập trình Pacsal.
Trong quá trình hình thành và phát triển, Pascal đã phát huy được nhiều ưu điểm của mình và tỏ ra hơn hẳn nhiều ngôn ngữ cấp cao khác [1]. Pascal đã trở thành một ngôn ngữ mạnh được ứng dụng rộng rãi trong những năm 80 cả trong lĩnh vực giảng dạy và lập trình chuyên nghiệp. Pascal là ngôn ngữ lập trình bậc cao có các đặc điểm [1]: Là một ngôn ngữ có định kiểu mạnh mẽ: Mọi biến và hằng của kiểu dữ liệu nào chỉ được gán các giá trị của đúng kiểu dữ liệu đó, không được tự do đem gán cho các giá trị của kiểu dữ liệu khác. Việc định kiểu một cách chặt chẽ như vậy khiến cho người lập trình luôn luôn phải có các biểu thức tương thích với nhau về kiểu dữ liệu, vì thế rèn luyện cho người học tư duy logic chặt chẽ.
Là một ngôn ngữ thể hiện tư duy lập trình có cấu trúc được thể hiện trên 3 mặt: Cấu trúc về mặt dữ liệu: từ dữ liệu đơn giản hoặc có cấu trúc đơn giản người lập trình có thể xây dựng các dữ liệu có cấu trúc phức tạp hơn. Cấu trúc về mặt lệnh: từ các lệnh chuẩn đã có, người lập trình có thể nhóm chúng lại với nhau và đặt giữa hai từ khóa Begin và End khiến chúng trở thành một ngôn ngữ phức tạp hơn gọi là lệnh hợp thành hay lệnh ghép. Cấu trúc về mặt chương trình: một chương trình có thể chia thành các chương trình con tổ chức theo hình cây phân cấp. Mỗi chương trình con nhằm giải quyết một nhiệm vụ xác định cụ thể.
Điều này giúp cho người lập trình có thể giải quyết từng phần một, từng khối một và có thể cho nhiều người tham gia lập trình, mỗi người phụ trách một vài khối. Là ngôn ngữ lập trình rất gần với ngôn ngữ tự nhiên (tiếng Anh) nên mã Pascal trở nên rất sáng sủa, dễ hiểu và dễ sửa chữa. Ngày nay, Pascal ít được sử dụng trong lập trình chuyên nghiệp nhưng là ngôn ngữ sử dụng nhiều trong giảng dạy đặc biệt dành cho những người lần đầu tiên tiếp xúc với lập trình và đây cũng là ngôn ngữ chính thức của kỳ thi Olympic Tin học quốc tế [2]. Hiểu được những lợi ích ngôn ngữ lập trình Pascal mang lại, Bộ Giáo dục và Đào tạo đã quyết định đưa Pascal vào học phần Tin học Đại cương thuộc các khối ngành Khoa học Tự nhiên, đặc biệt là ngành Công nghệ Thông tin, đồng thời là một môn học trong khối 11 ở các trường THPT trên toàn quốc.
Môn học này đã phát huy được LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4 những ưu điểm vốn có của nó. Tuy nhiên qua quá trình triển khai, nó cũng nhận được nhiều phản hồi của người học như: Phần lớn nội dung bài tập trong chương trình Tin học lớp 11 liên quan đến tính toán hoặc thuần về toán học, không gắn liền với thực tiễn, học sinh thường không hiểu lập trình để làm gì ngoài việc tính toán với các con số. Học sinh sẽ rất khó hình dung được các ứng dụng mà lập trình có thể làm được trong thực tế nếu chỉ căn cứ vào lý thuyết thuần túy từ sách giáo khoa. Học sinh luôn đặt ra câu hỏi lập trình Pascal có ứng dụng như thế nào trong thực tế.
Học sinh khó kiểm tra bài làm của mình sau khi lập trình là đúng hay là sai. Có thể trên lý thuyết là đúng nhưng thực tế sẽ có những trường hợp thiếu chính xác trong từng ngữ cảnh cụ thể. Học sinh thường tìm hiểu những ngôn ngữ lập trình đang được quan tâm hiện nay như Java, C++, Python,. Theo TIOBE Index, trang chuyên thống kê nhu cầu tuyển dụng lập trình viên dựa trên kết quả tìm kiếm của 25 công cụ tìm kiểm nổi tiếng thế giới như Google, Bing, Yahoo, Wikipedia, Amazon, YouTube và Baidu để thống kê, so sánh và đưa ra xu hướng phát triển thì kết quả công bố tính đến tháng 11 năm 2015 ( hình 1.1), Pascal được xếp thứ 17 về độ phổ biến.
Nếu tính theo kết quả đó thì việc lựa chọn Pascal đưa vào giảng dạy sẽ khó thuyết phục học sinh học tập, nghiên cứu và đam mê lâu dài. Biểu đồ xếp hạng độ phổ biến các ngôn ngữ lập trình tháng 11/2015. Để giải quyết phần nào những vướng mắc mà học sinh gặp phải, tôi tập trung nghiên cứu vào việc: “Xây dựng phần mềm hỗ trợ dạy và học ngôn ngữ lập trình Pascal cho học sinh Trung học phổ thông” nhằm tạo sự tương tác giữa người học với môn học, và phát huy tính tích cực, chủ động trong học tập của người học với môn học ngôn ngữ lập trình pascal. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.
Phát biểu bài toán Phần mềm được nghiên cứu là một trang web thay cho trình soạn thảo của Pascal như Turbo Pascal, Free Pascal. Trang web hỗ trợ người học về cách sử dụng ngôn ngữ lập trình Pascal và thực hành các dạng bài tập, đồng thời cho phép người học biên dịch và kiểm thử các dạng bài tập Pascal ngay trên giao diện của trang web, nếu chương trình của người học đạt yêu cầu hệ thống đưa ra, người học sẽ nhận được lời chúc mừng khích lệ, được cộng điểm và được tiếp tục làm bài có cấp độ thách đố cao hơn. Mỗi dạng bài tập người học có thể xem lại, chỉnh sửa lại nhiều lần nhưng hệ thống chỉ tính điểm cho lần đầu tiên mà người học làm đạt yêu cầu. Trang web nhận đầu vào là mã Pascal qua quá trình phân tích mã Pascal, sinh các ca kiểm thử, chương trình sẽ trả về kết quả đúng hoặc sai.
Nếu kết quả là đúng, hệ thống sẽ mở khóa cho phép người học làm bài tập kế tiếp. Nếu kết quả là sai, người học cần chỉnh sửa lại mã Pascal, việc này được lặp đi lặp lại cho đến khi ra kết quả đúng. Quy trình xử lý Xây dựng Hệ thống gồm những bước cơ bản sau: Xây dựng trình soạn thảo pascal trên trang web. Thiết kế kiểm thử mã pascal của người dùng đã nhập để đưa ra những phản hồi thích hợp.
Xây dựng tài liệu hỗ trợ học tập ngôn ngữ lập trình Pascal từ nguồn tài nguyên mở. Những khó khăn thách thức Pascal là ngôn ngữ lập trình có cấu trúc thuộc dạng mệnh lệnh hiện nay chỉ được sử dụng chủ yếu trong giảng dạy. Bắt đầu từ năm 2000, Pascal đã không còn được hỗ trợ phát triển, chính vì thế Pascal gần như không còn được ứng dụng trong ngành công nghiệp phần mềm. Pascal gặp hạn chế về thư viện hỗ trợ kiểm thử chương trình (so với C/C++.
Những nghiên cứu và giải pháp kiểm thử cho Pascal hầu như không tiếp cận được, vì thế việc nghiên cứu giải pháp kiểm thử chương trình Pascal của người học được tôi tiến hành theo hướng thủ công với mỗi dạng bài toán sẽ có những hình thức kiểm thử khác nhau. LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Hƣớng tiếp cận Thực tế cho thấy bối cảnh giáo dục hiện nay đã thay đổi. Việc dạy và học không chỉ dừng lại ở việc phát triển tư duy, nhận thức mà còn bao gồm cả phát triển cảm xúc, thái độ và kỹ năng.
Vì vậy, để xây dựng phần mềm, tôi đã nghiên cứu những mô hình giáo dục trực tuyến1 có khả năng cung cấp các chương trình và nội dung học tập thích ứng cá nhân hóa, tiếp đến tôi nghiên cứu những nguồn học liệu mở 2 cho các hoạt động sư phạm và những dạng game tương tác, giả lập chất lượng cao3 trợ giúp việc thực hành của học sinh. Từ những nghiên cứu này, tôi đã tiếp cận mô hình học tập của codehunt. Code Hunt là một trò chơi trực tuyến giúp người chơi học cách viết mã lệnh Java và C#. Chiến thuật trò chơi hóa của Code Hunt đã rất thành công trong việc thu hút sự chú tâm của người học.
Cách tiếp cận này giúp những người học lần đầu tiếp xúc với lập trình có thể thoải mái vui đùa với những khối lệnh lập trình đơn giản, còn những người thành thạo hơn có thể đưa ra các chiến lược giải quyết vấn đề. Toàn bộ công cụ học tập tương tác hiện diện trên trang web dưới dạng các bài tập, cùng với các trợ giúp bằng văn bản hoặc video ngắn giúp cho học sinh bị cuốn hút vào các hoạt động học tập chủ động một cách tự nhiên từ đó dẫn dắt người học đến với các khái niệm và kĩ năng cơ bản của lập trình và thuật toán. Kết luận chƣơng Trong chương này, tôi đã tìm hiểu những vấn đề trong dạy và học ngôn ngữ lập trình Pascal. Từ những vấn đề cấp thiết đặt ra, tôi đề xuất giải pháp và hướng tiếp cận để nghiên cứu xây dựng trang web hỗ trợ dạy và học Pascal.
Nội dung tiếp theo tôi đi vào nghiên cứu một số lý thuyết và mô hình học tập đã và đang được triển khai thành công trong giáo dục.com/, https://code.org/ , https://www.com/, http://www.com/, https://www.com/, https://www.