Chương 1. TONG QUAN VE ĐÈ TÀI 1. Giới thiệu Môn Tin học ở bậc trung học phổ thông mới được đưa vào giảng dạy trong những năm gần đây, mục đích trang bị cho học sinh hệ thống kiến thức cơ bản về ngôn ngữ lập trình, thuật toán, kỹ năng lập trình.trên cơ sở đó hình thành kiến thức, tư duy lập trình cho học sinh. Từ những kién thức cơ bản học sinh có thé áp dung dé giải một số bài toán, xây dựng một số ứng dụng trong thực tế, thúc day tỉnh thần tự học, tự nghiên cứu, khơi dậy niềm đam mê học lập trình của học sinh.
Học sinh học chắc kiến thức cơ bản về ngôn ngữ lập trình, kỹ thuật lập trình, tư duy thuật toán, giúp các em tự tin hơn trong việc lựa chọn nghề nghiệp sau khi tốt nghiệp trung học phé thông. Ngày nay ngành Công nghệ thông tin đã và đang là một ngành nghề được yêu thích và được lựa chọn học nhiều nhất, cũng là ngành tạo ra nguồn nhân lực chất lượng cao cho “Quốc gia khởi nghiệp”. Các dự án công nghệ thông tin trong nước, ngày cang đi sâu vào thực tế đời sóng, đáp ứng nhu cầu của thực tiễn. Các bậc phụ huynh ngày càng quan tâm nhiều hơn đến việc chọn ngành, chọn nghề của con cái.
Vì vậy việc giảng dạy tốt bộ môn Tin học sẽ là thước đo để đánh giá chất lượng đào tạo ở bậc trung học phô thông. Hiện nay có rất nhiều ứng dụng được xậy dựng, nhằm mục đích hỗ trợ học sinh học tập môn Tin học nói chung và kỹ thuật lập trình nói riêng tuy nhiên các ứng, dụng này, phần lớn dừng lại ở mức giới thiệu ngôn ngữ lập trình, đưa ra một số ví dụ về thuật toán trong lập trình, nhưng những kiến thức này chưa được sắp xếp một cách phù hợp theo chương trình sách giáo khoa ở bậc phô thông hiện hành, chưa khoa học, gây kho khăn cho học sinh khi tiếp cận kiến thức. Một số ứng dụng có nôi dung kiến thức quá chuyên sâu, quá rộng so với đối tượng học sinh ở bậc trung học phổ thông. Bên cạnh đó cũng có các ứng dụng có nội dung kiến thức phù hợp với học sinh nhưng lại thu phí sử dụng hoặc thu tiền theo khóa học.
Một số ứng dụng miễn phí nhưng bằng ngôn ngữ tiếng Anh vì vậy học sinh rat khó khăn trong việc tìm hiểu kiến thức, vì không phải học sinh nảo cũng thành thạo ngoại ngữ. Động cơ nghiên cứu Hiện nay ứng dụng công nghệ thông tin vào trong dạy học trở nên phô biến, đặc biệt trong đại dịch Covid-19 việc học tập online qua các ứng dung đã phát huy hiệu quả và tính ưu việt của nó. Hàng loạt ứng dụng hỗ trợ học tập miễn phí và thu phí đã ra đời nhằm đáp ứng nhu cầu cấp thiết của thực tế. Tuy vay, phan lớn các ứng dụng hỗ trợ học tập hiện nay, tập trung vào các môn chính như: Toán, Hóa, Vật lí, tiếng Anh.
các phần mềm dành cho các môn như môn Tin học chưa nhiều, chưa phổ biến. Các ứng dụng hỗ trợ học NNLT C++ hiện có, chỉ dừng lại ở mức giới thiệu kiến thức tống quát, chưa phân loại tri thức theo các mức độ nhận thức, hoặc trình bay quá chuyên sâu về kiến thức ngôn ngữ C++, phan lớn các ứng dụng học lập trình C++ đều có thu phí theo khóa học. Vì vậy học sinh khó có điều kiện dé tiếp cận với các ứng dụng này. Bên cạnh đó môn Tin học ở bậc trung hoc phổ thông không phải là một môn học chính như các môn Toán, Hóa, Vậ lí, tiếng Anh,.
thêm vào đó, giáo trình giảng day đã quá cũ, quá lỗi thời so với sự phát triển của công nghệ, chính những lí do đó làm cho học sinh chưa có hứng thú với môn học “vừa khô” lại “vừa khó” như môn Tin học. Thực tế hiện này hầu như chưa có phần mềm hỗ trợ học NNLT C++ nào được xây dựng đầy đủ các chức năng như: bài học, tra cứu, giải bài tập, phù hợp với kiến thức của học sinh trung học phổ thông. Và cũng chưa có một ứng dụng nào có demo, minh họa để chỉ ra cho học sinh biết sự thay đổi giá trị của các biến tại mỗi thời điểm thực thi trong chương trình hay cách hoạt động của các vòng lặp, vì không phải học sinh nào cũng có thé hiểu được sự thay đổi co bản đó. Chưa nói tới các kỹ năng trình bày các câu lệnh, mô tả thuật toán, cho tới cách triển khai viết một chương trình bằng NNLT C+.
Thông qua các chức năng đó các em có thé vận dụng dé viết các chương. chương trình ngay cả khi không có giáo viên hướng dẫn. Từ thực tiễn giảng dạy ở trường phổ thông, chúng tôi nhận thấy rằng, cần phải xây dựng một ứng dụng hỗ trợ học NNLT C++ sát với chương trình của sách giáo khoa phổ thông hiện hành, nhằm giúp học sinh tiếp cận kiến thức về NNLT C++ một cách dễ dang. Từ kho học liệu này học sinh có thể tự học, tự rèn luyện các kỹ năng về viết chương trình bằng NNLT C++.
Bên cạnh đó hệ thống còn có chức năng 5 tra cứu các kiến thức cơ bản về NNLT C++, giúp học sinh tìm kiếm kiến thức khi cần. Hệ thống cũng xây dựng các dạng bài tập kèm theo chương trình tham khảo viết bằng NNLT C++. Qua các bài tập đó học sinh có thé nắm bắt được các thao tác, “kỹ thuật lập trình” cơ bản nhất. Từ đó vận dung để làm các bài tập tương tự hoặc những bài có tính phức tạp hơn dựa vào sự nhạy bén của các em trong trong việc tiếp cận với những bài giải mẫu của hệ thống.
Thông qua các bài tập mẫu, hệ thống cũng sẽ chỉ ra sự thay đồi giá trị của các biến trong chương trình, hay cách hoạt động của các vòng lặp, nhằm giúp học sinh có thể ghi nhớ kiến thức lâu hơn cũng như hiểu được như thé nào là biến, hằng trong lập trình, hiểu được cách thức hoạt động của các vòng lặp trong chương trình. Tổng quan về một số ứng dụng tiêu biểu Hiện nay có rất nhiều trang website được xây dựng dé day NNLT C++. Người học có thể chủ động đăng ký học vào những thời điểm thích hợp nhất, nhìn chung kiến thức của các trang website này phù hợp với tat cả các đối tượng.io [17], là trang website được phát triển bởi đội ngủ lập trình viên của công ty FPT Software. Trang website cung cấp tất cả kiến thức về NNLT C++ từ cơ bản đến nâng cao, với hình thức hướng dẫn qua các video, bằng hai thứ tiếng Việt — Anh.
Tuy nhiên nhược điểm của ứng dụng này đó là, kiến thức vẫn còn chung chung, chưa được phân loại, chưa được sắp xếp phù hợp với đối tượng. Người học phải đăng ký và được cấp user mới được vào học, phải đóng học phí thì mới có thể luyện tập cũng như học các bài nâng cao.com? Howkteam [18], đây là một trang website học lập trình hoàn toàn miễn phí dành cho tất cả các đối tượng. Đối với trang website này không chỉ tập trung vào NNLT C++ mà còn các ngôn ngữ lập trình khác như Python, Java. Ưu điểm của trang website này là hoàn toàn miễn phí và bằng ngôn ngữ tiếng việt.
Nhược điểm của nó là, các kiến thức trình bảy dưới dạng một ebook, tri thức chưa được sắp xếp phù hợp. Chưa co chức năng tra cứu tìm kiếm, chưa có chức 1 https:/codelearn.io/learning/cpp ? https://www.vn/course/khoa-hoc-lap-trinh-c 6 năng giải một số bài tập. Kiến thức quá chuyên sâu và hàn lâm chưa phù hợp với học sinh trung học phổ thông. Techmaster3 TechMaster [19], là một trang day lập trình hoàn toàn bằng ngôn ngữ tiếng Việt.
Ở trang này không chỉ dạy về C++ mà còn day các ngôn ngữ lập trình khác. Nhược điểm của ứng dụng này đó là thu phí theo khóa học. Học viên phải đóng phí mới được vào học. Bài học thông được hướng dẫn dưới dạng các video.
Chưa có chức năng giải các bài tập, cũng như chức năng tìm kiếm tri thức. Kiến thức về NNLT C++ vẫn con han lâm, chuyên sâu.com* Đây là một trang website diễn đạt khá tốt và có hướng dẫn tỉ mĩ từng thao tác khi viết chương trình bằng NNLT C++. LearnCpp [20], là một trang webisite hoàn toàn miễn phí dành cho tat cả các đói, kiến thức 6 đây cũng phù hợp với những đối tượng mới bắt đầu học lập trình. Kiến thức được sắp xếp và phân loại rất khoa học, các bài học cũng không quá dài.
Cuối mỗi bài học còn có các câu hỏi, bai tập dé cũng có kiến thức. Tuy nhiên đây là một trang website viết hoàn toàn bằng tiếng Anh. Đây có thể là một rào cản lớn đối với người học chưa thành thạo ngoại ngữ.com [21], là một trang web cung cấp kiến thức về NNLT C++ hoàn toàn miễn phí. Giao diện của trang cũng khá đơn giản, nội dung kiến thức được phân nhóm rõ ràng, có khá nhiều bài tập tham khảo cho người học thực hành.
Tuy nhiên CPlusPlus.com phần lớn cung cấp và giải thích các hàm thư viện trong C++ là chủ yếu. Trang web viết hoàn toàn bằng tiếng Anh nên chắc chắn sẽ gây ra rất nhiều khó khăn cho người học nếu chưa thông thạo về ngoại ngữ. Đây cũng không phải là trang dành cho nhưng người mới bắt đầu học C++, vì kiên thức ở trang này chuyên sâu và nâng cao.vn/khoa-hoc/truc-tuyen + https://www.com/cpp-tutorial/introduction-to-cplusplus/ 5 http://www.com/doc/tutorial/ 1.com® Đây là trang hoàn toàn miễn phí cho người muốn học NNLT C++. Trang web CProgramming.com [22], cung cấp cac bài học một cách chỉ tiết, bên cạnh đó còn có sự so sánh giữa hai ngôn ngữ lập trình C và C++ giúp người học ghi nhớ sâu các kiến thức.
Ở trang web này cũng cung cấp cho người học các thuật toán dé giải quyết các bài toán được nêu ra ở phan thảo luận, cũng có kiến thức. Han chế của trang web này, đầu tiên có thé dé cập tới đó là hoàn toàn bằng ngôn ngữ tiếng Anh. Các bài học trình bày tương đối dài, lồng vào trong đó một số tri thức khá chuyên sâu. Phần lớn kiến thức trong trang web này cung cấp cho những đối tượng đã biết về ngôn ngữ lập trình C/C++.
Mục tiêu Mục tiêu chính của đề tài là xây dựng một ứng dụng học NNLT C++, sát với kiến thức sách giáo khoa Tin học ở bậc trung học phổ thông hiện hành theo khung chương trình giảng dạy bộ môn Tin học của Bộ Giáo Dục và Đào tạo.