Trong vài năm gần đây, trí tuệ nhân tạo sinh mã đã làm thay đổi căn bản cách sinh viên tiếp cận việc học lập trình. Nếu trước đây một bài tập lập trình buộc người học phải tự đọc đề, phân tích yêu cầu, thiết kế thuật toán, viết mã, chạy thử, đọc lỗi và sửa lỗi, thì hiện nay rất nhiều bước trong quá trình đó có thể được AI thực hiện chỉ sau một vài câu lệnh. Sự thay đổi này tạo ra một cơ hội lớn cho giáo dục, nhưng đồng thời cũng đặt ra một rủi ro nghiêm trọng đối với chất lượng đào tạo lập trình.
Vấn đề không nằm ở việc sinh viên có sử dụng AI hay không. Trong thực tế, AI đã trở thành một phần tự nhiên của môi trường học tập và làm việc trong ngành công nghệ thông tin. Vấn đề quan trọng hơn là sinh viên đang sử dụng AI ở mức nào, vào thời điểm nào, với mục đích gì và liệu các em có thật sự hiểu phần kiến thức mà mình đang làm hay không. Nếu AI được sử dụng đúng cách, nó có thể đóng vai trò như một trợ giảng cá nhân, giúp sinh viên được gợi ý, được phản hồi và được hỗ trợ khi gặp khó khăn. Ngược lại, nếu AI được sử dụng bừa bãi, nó có thể biến quá trình học lập trình thành quá trình sao chép lời giải.
Học lập trình không chỉ là học để tạo ra một chương trình chạy được. Bản chất của học lập trình là hình thành tư duy giải quyết vấn đề. Sinh viên cần học cách chuyển một yêu cầu thực tế thành bài toán tính toán, học cách chia nhỏ vấn đề, lựa chọn cấu trúc dữ liệu, xây dựng thuật toán, kiểm soát luồng thực thi, phát hiện lỗi và kiểm chứng kết quả. Những năng lực này chỉ được hình thành khi người học trực tiếp tham gia vào quá trình tư duy. Nếu AI làm thay toàn bộ quá trình đó, sinh viên có thể có sản phẩm hoàn chỉnh, nhưng không có năng lực tương ứng ở bên trong.
Một trong những hệ quả dễ thấy nhất của việc lạm dụng AI trong học lập trình là ảo giác năng lực (illusion of competence). Sinh viên nhìn thấy đoạn mã do AI tạo ra chạy đúng và cho rằng mình đã hiểu bài. Tuy nhiên, khi được yêu cầu giải thích từng dòng mã, dự đoán kết quả khi thay đổi dữ liệu đầu vào hoặc sửa một lỗi phát sinh, nhiều sinh viên không thể thực hiện được. Khi đó, bài làm đúng không còn là bằng chứng chắc chắn cho năng lực thật của người học.
Hệ quả thứ hai là sự suy giảm năng lực lần vết thực thi (execution tracing). Đây là năng lực rất quan trọng trong lập trình, cho phép người học tự hình dung chương trình chạy như thế nào, biến thay đổi ra sao, điều kiện rẽ nhánh được xử lý theo hướng nào và vòng lặp kết thúc khi nào. Nếu sinh viên luôn hỏi AI mỗi khi gặp lỗi, các em sẽ không còn phải tự lần theo chương trình để hiểu nguyên nhân. Dần dần, người học mất đi khả năng đọc mã một cách chủ động và chỉ còn phụ thuộc vào lời giải thích từ bên ngoài.
Hệ quả thứ ba là sự yếu đi của năng lực gỡ lỗi (debugging). Trong đào tạo lập trình, gỡ lỗi không chỉ là một thao tác kỹ thuật. Đây là một hoạt động nhận thức quan trọng, buộc sinh viên phải so sánh giữa điều mình nghĩ chương trình sẽ làm và điều máy tính thật sự thực hiện. Chính sự khác biệt này giúp sinh viên điều chỉnh mô hình tư duy của mình. Nếu AI luôn chỉ ra lỗi và sửa lỗi ngay lập tức, người học sẽ bỏ qua một trong những cơ chế học tập quan trọng nhất của lập trình.
Hệ quả thứ tư là sự đứt gãy trong chuỗi kiến thức nền tảng. Lập trình là một hệ thống tri thức có tính kế thừa. Sinh viên cần hiểu biến, kiểu dữ liệu, điều kiện, vòng lặp, hàm, mảng, đối tượng, xử lý lỗi, cấu trúc chương trình và nhiều khái niệm khác trước khi có thể xây dựng ứng dụng phức tạp. Khi AI tạo ra ngay một lời giải ở mức cao, sinh viên có thể sử dụng được sản phẩm nhưng không hiểu nền móng bên dưới. Điều này tạo ra một lớp người học có khả năng tạo ra kết quả ngắn hạn, nhưng thiếu năng lực bảo trì, mở rộng và chịu trách nhiệm với mã nguồn của mình.
Hệ quả thứ năm là sự khủng hoảng của đánh giá truyền thống. Trước đây, giảng viên có thể dựa khá nhiều vào bài nộp cuối cùng để đánh giá năng lực sinh viên. Một chương trình chạy đúng thường phản ánh tương đối rõ quá trình tư duy và công sức của người học. Nhưng trong bối cảnh AI, một bài nộp đúng có thể đến từ nhiều nguồn khác nhau. Nó có thể do sinh viên tự viết, do AI sinh ra, hoặc do sinh viên chỉnh sửa rất ít từ kết quả AI. Vì vậy, nếu chỉ chấm sản phẩm cuối cùng, giảng viên rất khó phân biệt giữa hiểu thật và hoàn thành nhờ AI.
F VSCode được đề xuất để giải quyết chính khoảng trống này. Đây là một môi trường lập trình tích hợp (integrated development environment) được thiết kế cho bối cảnh dạy và học lập trình có sự tham gia của AI. Điểm cốt lõi của F VSCode không phải là cấm sinh viên sử dụng AI, mà là tổ chức việc sử dụng AI theo một cơ chế có kiểm soát. Công cụ này giúp AI trở thành một thành phần hỗ trợ học tập, nhưng không cho phép AI thay thế hoàn toàn quá trình tư duy của người học.
Triết lý trung tâm của F VSCode là sinh viên chỉ nên nhận được mức hỗ trợ AI tương ứng với mức hiểu biết mà các em đã chứng minh được. Nói cách khác, AI không mặc định trả lời mọi yêu cầu ở mức đầy đủ. Trước khi cung cấp hỗ trợ sâu, hệ thống cần xác định xem sinh viên đã hiểu bài đến đâu. Nếu sinh viên chưa đạt mức yêu cầu, AI sẽ không đưa ra lời giải hoàn chỉnh, mà chỉ gợi ý, đặt câu hỏi, yêu cầu giải thích hoặc hướng sinh viên quay lại các khái niệm nền tảng.
Cách làm này giúp chuyển AI từ vai trò người làm bài thay sang vai trò trợ giảng có điều kiện. Khi sinh viên gặp khó khăn, AI vẫn có thể hỗ trợ, nhưng hỗ trợ đó được điều tiết để bảo vệ quá trình học. Sinh viên có thể được nhắc lại đề bài, được hỏi về đầu vào và đầu ra, được yêu cầu giải thích thuật toán, được hướng dẫn đọc lỗi hoặc được gợi ý kiểm tra một phần mã. Tuy nhiên, sinh viên không thể bỏ qua toàn bộ quá trình suy nghĩ để nhận ngay đáp án hoàn chỉnh.
Một điểm quan trọng của F VSCode là cơ chế phân cấp sử dụng AI theo 6 mức. Sáu mức này cho phép hệ thống kiểm soát độ sâu của sự hỗ trợ từ AI. Ở mức thấp, AI chỉ hỗ trợ nhận diện yêu cầu, giải thích khái niệm hoặc gợi ý hướng suy nghĩ. Ở mức trung bình, AI có thể hỗ trợ phân tích bài toán, kiểm tra logic và hướng dẫn gỡ lỗi. Ở mức cao, AI có thể tham gia vào việc tối ưu mã, cải thiện thiết kế, thảo luận phương án và hỗ trợ phát triển lời giải hoàn chỉnh hơn. Tuy nhiên, quyền truy cập vào các mức hỗ trợ cao hơn phải phụ thuộc vào việc sinh viên chứng minh được năng lực hiểu bài tương ứng.
Cơ chế này rất quan trọng vì không phải mọi sinh viên đều nên được AI hỗ trợ ở cùng một mức. Một sinh viên mới học lập trình không nên nhận ngay một kiến trúc lời giải hoàn chỉnh, vì điều đó có thể làm mất cơ hội hình thành tư duy nền tảng. Ngược lại, một sinh viên đã hiểu rõ bài toán và có thể giải thích được mã của mình có thể sử dụng AI để kiểm tra, cải tiến hoặc thảo luận phương án nâng cao. Như vậy, cùng là sử dụng AI, nhưng giá trị sư phạm hoàn toàn khác nhau.
Để xác định mức hỗ trợ phù hợp, F VSCode có thể yêu cầu sinh viên vượt qua các cổng giải thích (explanation gates). Khi sinh viên yêu cầu AI giúp đỡ, hệ thống có thể đặt câu hỏi kiểm tra trước. Sinh viên có thể được yêu cầu mô tả ý tưởng giải, giải thích vai trò của một biến, dự đoán kết quả của một đoạn mã, xác định nguyên nhân lỗi hoặc trình bày cách kiểm thử. Nếu câu trả lời cho thấy sinh viên đã có nền tảng cần thiết, AI sẽ mở rộng mức hỗ trợ. Nếu câu trả lời còn yếu, AI sẽ phản hồi bằng các gợi ý ở mức thấp hơn.
Điều này tạo ra một cơ chế học tập có kiểm soát. Sinh viên vẫn được hỗ trợ khi gặp khó, nhưng không thể sử dụng AI để bỏ qua hoàn toàn tư duy cá nhân. AI không chỉ là công cụ trả lời, mà còn là công cụ đánh giá mức độ hiểu bài. Mỗi lần sinh viên tương tác với AI trở thành một cơ hội để hệ thống đo lường, phân loại và phản hồi về năng lực nhận thức của người học.
Bên cạnh chức năng điều tiết AI, F VSCode còn cung cấp khả năng theo dõi toàn bộ quá trình làm bài của sinh viên. Hệ thống có thể ghi nhận các thao tác trong môi trường lập trình như gõ mã, chèn mã, xóa mã, thay đổi tệp, chạy chương trình, gặp lỗi, sửa lỗi, gửi yêu cầu tới AI, nhận phản hồi từ AI và chỉnh sửa sau khi nhận phản hồi. Những dữ liệu này giúp giảng viên nhìn thấy quá trình tạo ra bài làm, thay vì chỉ nhìn vào kết quả cuối cùng.
Đây là một thay đổi rất quan trọng trong đánh giá lập trình. Hai sinh viên có thể nộp hai bài chạy đúng như nhau, nhưng quá trình tạo ra bài làm có thể hoàn toàn khác nhau. Một sinh viên có thể viết từng phần, chạy thử nhiều lần, đọc lỗi, sửa lỗi và cải thiện dần lời giải. Một sinh viên khác có thể dán một khối mã lớn từ AI và nộp gần như ngay lập tức. Nếu chỉ chấm sản phẩm cuối cùng, hai trường hợp này có thể bị đánh giá giống nhau. Nhưng nếu quan sát quá trình, giảng viên sẽ thấy sự khác biệt rõ ràng về năng lực học tập.
Nhờ dữ liệu quá trình, giảng viên có thể phát hiện sớm các dấu hiệu phụ thuộc quá mức vào AI. Ví dụ, sinh viên thường xuyên yêu cầu AI sinh lời giải đầy đủ, ít chỉnh sửa sau khi nhận mã, không giải thích được phần mình nộp hoặc có các bước nhảy mã quá lớn trong thời gian rất ngắn. Những dấu hiệu này không nhất thiết để kết luận gian lận, nhưng là tín hiệu cho thấy cần có can thiệp sư phạm. Giảng viên có thể trao đổi trực tiếp với sinh viên, yêu cầu giải thích lại, giao bài luyện tập phù hợp hơn hoặc điều chỉnh mức AI được phép sử dụng.
F VSCode cũng giúp giảng viên hiểu rõ hơn khó khăn chung của cả lớp. Nếu nhiều sinh viên đều mắc lỗi ở cùng một khái niệm, gửi yêu cầu AI ở cùng một bước hoặc không vượt qua được cùng một dạng câu hỏi giải thích, giảng viên có cơ sở để điều chỉnh bài giảng. Như vậy, hệ thống không chỉ giám sát cá nhân, mà còn cung cấp dữ liệu phục vụ cải tiến dạy học.
Ý nghĩa lớn nhất của F VSCode nằm ở việc tái thiết lập mối quan hệ giữa AI và giáo dục lập trình. Công cụ này không xem AI là kẻ thù của học tập, nhưng cũng không xem AI là lời giải tự do cho mọi vấn đề. AI được đặt vào một cấu trúc sư phạm, trong đó quyền được hỗ trợ phải đi cùng trách nhiệm chứng minh hiểu biết. Sinh viên được học cách làm việc với AI, nhưng vẫn phải phát triển năng lực lập trình cốt lõi.
Trong đào tạo đại học, đây là hướng tiếp cận cần thiết. Sinh viên công nghệ thông tin sau khi ra trường chắc chắn sẽ làm việc trong môi trường có AI. Vì vậy, nhà trường không thể chỉ dạy sinh viên tránh AI. Điều quan trọng hơn là dạy sinh viên sử dụng AI một cách có kỷ luật, có năng lực kiểm chứng và có trách nhiệm chuyên môn. Một kỹ sư phần mềm không được đánh giá chỉ bằng khả năng tạo ra mã nguồn, mà còn bằng khả năng hiểu, sửa, bảo trì, đánh giá rủi ro và chịu trách nhiệm với hệ thống mình xây dựng.
F VSCode góp phần giải quyết đồng thời ba bài toán. Thứ nhất, công cụ giúp sinh viên sử dụng AI mà không đánh mất quá trình học nền tảng. Thứ hai, công cụ giúp AI đánh giá mức độ hiểu bài trước khi đưa ra hỗ trợ phù hợp. Thứ ba, công cụ giúp giảng viên quan sát được toàn bộ tiến trình làm bài để đánh giá chính xác hơn năng lực thật của sinh viên.
Trong bối cảnh AI đang làm mờ ranh giới giữa năng lực cá nhân và năng lực được hỗ trợ bởi máy, giáo dục lập trình cần một cách tiếp cận mới. Câu hỏi không còn đơn giản là sinh viên có làm ra bài đúng hay không. Câu hỏi đúng hơn phải là sinh viên đã hiểu gì, đã tự làm được gì, đã dùng AI ở mức nào và có thể tiếp tục làm việc khi không có AI hay không.
F VSCode được xây dựng để trả lời những câu hỏi đó. Công cụ này hướng tới một môi trường học lập trình minh bạch hơn, công bằng hơn và phù hợp hơn với thời đại AI. Thay vì để AI phá vỡ quá trình học, F VSCode đưa AI trở thành một phần được kiểm soát trong quá trình học. Thay vì chỉ đánh giá sản phẩm cuối cùng, F VSCode giúp đánh giá cả hành trình tư duy của sinh viên. Và thay vì tạo ra những người học phụ thuộc vào AI, F VSCode hướng tới việc đào tạo những sinh viên biết sử dụng AI nhưng vẫn giữ được năng lực lập trình thật sự của mình.
