26.1 C
Kwang Binh
spot_img
Thứ Tư, Tháng 6 25, 2025

Ứng dụng trí tuệ nhân tạo trong lập trình

Must read


Nghiên cứu này tìm hiểu và đánh giá ứng dụng của mô hình Trí tuệ nhân tạo tạo sinh (generative AI), cụ thể là Gemini của Google trong lập trình như: đề xuất mã, viết mã, hoàn thiện mã, đánh giá mã, sửa lỗi, tái cấu trúc và cải thiện việc tuân thủ quy tắc lập trình.

ThS. Nguyễn Thanh Trường

Trường Đại học Tài chính – Marketing

Tóm tắt

Trong thời đại kỷ nguyên số, trí tuệ nhân tạo ngày càng đóng vai trò quan trọng. Bên cạnh việc hỗ trợ đắc lực cho việc học tập, nghiên cứu, giải trí và trò chuyện trong cuộc sống hàng ngày, trí tuệ nhân tạo còn hỗ trợ rất nhiều cho người dùng trong việc lập trình – một công việc đòi hỏi sự tư duy của người dùng. Trí tuệ nhân tạo không chỉ hỗ trợ ngôn ngữ Python mà còn có thể làm việc với nhiều ngôn ngữ lập trình và ngôn ngữ tự nhiên khác nhau như: C/C++, Java, JavaScript, Ruby, Go, PHP… Nghiên cứu này tìm hiểu và đánh giá ứng dụng của mô hình trí tuệ nhân tạo tạo sinh (generative AI), cụ thể là Gemini của Google trong lập trình như: đề xuất mã, viết mã, hoàn thiện mã, đánh giá mã, sửa lỗi, tái cấu trúc và cải thiện việc tuân thủ quy tắc lập trình.

Từ khóa: Trí tuệ nhân tạo, trí tuệ nhân tạo tạo sinh, lập trình

Summary

In the digital era, Artificial Intelligence is playing an increasingly important role. Beyond its strong support for learning, research, entertainment, and daily conversations, artificial intelligence also greatly assists users in programming – an activity that demands users’ cognitive and analytical skills. Artificial intelligence not only supports Python but also a wide range of other programming and natural languages, such as C/C++, Java, JavaScript, Ruby, Go, and PHP. This study explores and evaluates the application of generative artificial intelligence models, specifically Google’s Gemini, in programming tasks such as code suggestion, code writing, code completion, code evaluation, debugging, refactoring, and improving adherence to coding standards.

Keywords: Artificial intelligence, generative artificial intelligence, programming

ĐẶT VẤN ĐỀ

Trí tuệ nhân tạo (AI) là một lĩnh vực của khoa học máy tính, tập trung vào việc tạo ra các hệ thống máy tính có khả năng mô phỏng các hoạt động trí tuệ của con người, như: học tập, suy luận, giải quyết vấn đề và ra quyết định. Trong lập trình, AI được sử dụng để phát triển các ứng dụng và hệ thống có khả năng tự động hóa các tác vụ, phân tích dữ liệu, đưa ra dự đoán và tương tác với người dùng một cách thông minh.

Trong thế giới công nghệ hiện đại, AI đang nổi lên như một lĩnh vực đầy tiềm năng và mang tính cách mạng. AI không chỉ là một khái niệm trừu tượng, mà còn là một công cụ mạnh mẽ, đang được ứng dụng rộng rãi trong nhiều lĩnh vực, đặc biệt là trong lập trình. Các công nghệ AI không chỉ giúp cải thiện hiệu quả làm việc, mà còn tối ưu hóa các quy trình phát triển phần mềm. Ngoài ra, AI còn giúp người dùng tiết kiệm thời gian và công sức trong việc tìm kiếm thông tin, xử lý lỗi và tạo ra mã nguồn, giúp các nhà phát triển tập trung vào việc tạo ra các sản phẩm chất lượng cao hơn. Vì vậy, việc khám phá các ứng dụng chính của AI trong lập trình, chỉ ra những lợi ích cũng như thách thức kèm theo, nhằm cung cấp cái nhìn sâu sắc về cách AI đang thay đổi cách chúng ta viết mã và phát triển phần mềm, là điều cần thiết, mang ý nghĩa thực tiễn.

PHƯƠNG PHÁP NGHIÊN CỨU

Nghiên cứu sử dụng phương pháp phân tích và tổng hợp, bao gồm: việc thu thập dữ liệu, phân tích các yêu cầu và xác định các thách thức có thể gặp phải. Sau khi phân tích và tổng hợp được cách sử dụng AI (nghiên cứu dùng Gemini của Google để minh họa) hỗ trợ trong lập trình, thì tiến hành thực hiện các ví dụ minh họa thực tế để rút ra được ưu và nhược điểm khi sử dụng AI trong lập trình.

KẾT QUẢ NGHIÊN CỨU

AI có nhiều ứng dụng trong lập trình. Cụ thể:

Tạo sinh code

AI có thể giúp lập trình viên hoàn thành phần mã của đoạn code thông qua việc đề xuất hoặc cung cấp câu trả lời cho các câu hỏi liên quan đến việc áp dụng các khái niệm lập trình vào code mới. Điều này có ý nghĩa quan trọng khi lập trình viên muốn nhanh chóng áp dụng kiến thức mới vào code của mình. AI sẽ giúp người dùng giải quyết những câu hỏi liên quan đến lập trình một cách hiệu quả và nhanh chóng. Đối với việc cải thiện code, ở các ví dụ nói chung trong nghiên cứu này, người dùng chỉ cần nhập đoạn code cho là cần cải thiện vào ô chat, AI sẽ tự động đưa ra câu trả lời. Tuy nhiên, nếu muốn, người dùng có thể đưa ra một số yêu cầu theo ngôn ngữ tự nhiên để AI có thể tập trung vào nhu cầu của người dùng hơn. Tham khảo ví dụ sau:

Ask Gemini: Viết chương trình Java tìm thứ dạng combobox trong Frame.

Gemini trả lời: Chào bạn, bạn muốn tôi viết chương trình Java để tìm thứ trong tuần dựa trên ngày, tháng và năm được nhập vào, có xét năm nhuận và hiển thị kết quả dạng combobox trong Frame, đúng không?

Để làm được điều này, chúng ta có thể kết hợp kiến thức từ bài trước và sử dụng thêm một số thành phần mới:

Lớp JFrame: Để tạo Frame chứa các thành phần giao diện.

Lớp JPanel: Để nhóm các thành phần giao diện vào một khối.

Đây là chương trình Java bạn cần:

Ứng dụng trí tuệ nhân tạo trong lập trình
Ứng dụng trí tuệ nhân tạo trong lập trình

Kết quả khi chạy cụ thể ở Hình 1.

Hình 1: Ví dụ tìm thứ trong tuần mặc định

Ứng dụng trí tuệ nhân tạo trong lập trình

Kết quả: Ban đầu ngày có giá trị 31 ngày, nhưng khi chọn tháng, thì xảy ra tình trạng trên (mất giá trị ngày),

Hỏi Gemini để cải thiện:

Ask Gemini: Viết chương trình Java tìm thứ extends javax.swing.JFrame chọn theo thứ tự năm, tháng ngày.

Kết quả khi chạy ở Hình 2.

Hình 2: Ví dụ tìm thứ trong tuần theo yêu cầu riêng

Ứng dụng trí tuệ nhân tạo trong lập trình

Chương trình trên chạy được, nhưng chưa tốt, đến 1 thời điểm khi chọn năm, tháng, rồi chọn ngày, thì lại không tác dụng như Hình 2.

Phát hiện và sửa lỗi

Quy trình phát hiện và sửa lỗi (debugging) là một phần không thể thiếu trong quá trình lập trình. Dưới đây là những phương pháp và kỹ thuật giúp người dùng phát hiện và sửa lỗi hiệu quả:

Các loại lỗi thường gặp

Lỗi cú pháp (Syntax errors): Đây là những lỗi do vi phạm quy tắc ngôn ngữ lập trình, như: thiếu dấu chấm phẩy, sai chính tả, hoặc sử dụng sai cú pháp; Trình biên dịch (compiler) hoặc trình thông dịch (interpreter) thường phát hiện ra lỗi này và đưa ra thông báo lỗi.

Lỗi logic (Logic errors): Đây là những lỗi xảy ra khi chương trình chạy sai logic, dẫn đến kết quả không mong muốn. Lỗi logic thường khó phát hiện hơn lỗi cú pháp, vì chương trình vẫn chạy được nhưng kết quả sai.

Lỗi thời gian chạy (Runtime errors): Đây là những lỗi xảy ra trong quá trình chạy chương trình, như: truy cập vào vùng nhớ không hợp lệ, chia cho 0, hoặc lỗi kết nối mạng.

Các phương pháp phát hiện lỗi

Đọc kỹ thông báo lỗi: Thông báo lỗi thường cung cấp thông tin chi tiết về vị trí và nguyên nhân gây ra lỗi; Hãy đọc kỹ và phân tích thông báo lỗi để tìm ra hướng giải quyết.

Sử dụng trình gỡ lỗi (Debugger): Trình gỡ lỗi là công cụ cho phép chạy chương trình từng bước, theo dõi giá trị của biến và kiểm tra luồng thực thi của chương trình. Đây là công cụ rất hữu ích để phát hiện lỗi logic.

In thông tin (Print debugging): Chèn các câu lệnh in thông tin vào chương trình để theo dõi giá trị của biến và luồng thực thi. Phương pháp này đơn giản nhưng hiệu quả để phát hiện lỗi logic.

Kiểm thử đơn vị (Unit testing): Viết các đoạn mã kiểm thử để kiểm tra từng chức năng của chương trình. Kiểm thử đơn vị giúp phát hiện lỗi sớm và đảm bảo chất lượng của mã.

Kiểm tra mã (Code review): Nhờ người khác đọc và kiểm tra mã của bạn để tìm ra lỗi; Kiểm tra mã giúp phát hiện lỗi mà bạn có thể bỏ sót.

Các bước sửa lỗi

Xác định nguyên nhân gây ra lỗi: Phân tích thông báo lỗi, sử dụng trình gỡ lỗi, hoặc in thông tin để tìm ra nguyên nhân gây ra lỗi.

Sửa mã: Sửa mã theo nguyên nhân đã xác định.

Kiểm tra lại: Chạy lại chương trình và kiểm tra xem lỗi đã được sửa chưa; Kiểm tra kỹ lưỡng để đảm bảo không có lỗi mới phát sinh.

Ghi lại quá trình sửa lỗi: Ghi lại quá trình sửa lỗi để sau này có thể tham khảo hoặc chia sẻ với người khác.

Như vậy, đối với lỗi logic, thì người dùng thường khó phát hiện hơn lỗi cú pháp, vì chương trình vẫn chạy được nhưng kết quả sai.

Các công cụ AI có thể phân tích mã nguồn hiện có và cung cấp các gợi ý cho lập trình viên. Chẳng hạn, khi người dùng viết một hàm hay một đoạn mã, AI có thể đề xuất các biến hoặc phương thức phù hợp, từ đó nâng cao hiệu quả và độ chính xác của quá trình lập trình.

AI có khả năng phát hiện lỗi code và đề xuất cách sửa chữa thông qua phân tích mã. Những công cụ như: SonarQube tích hợp AI giúp nhận diện các nguy cơ tiềm ẩn trong mã và đưa ra các giải pháp khắc phục, từ đó cải thiện chất lượng sản phẩm.

Cụ thể, chúng tôi gặp lỗi khi chạy chương trình sau:

Hình 3: Ví dụ tìm thứ trong tuần đã viết nhưng chưa tốt

Ứng dụng trí tuệ nhân tạo trong lập trình

Chúng tôi viết theo kiễu cũ là khi thay đổi giá trị trên ComboboxThang, thì ComboNgay sẽ có các giá trị 28 hoặc 29 ngày tùy năm có phải là nhuận hay không? Còn lại phải là 30 hoặc 31 ngày tùy tháng. Nhưng kết quả khi chạy: Lần đầu chọn tháng 02/2025, chỉ hiện tối đa 29, còn lại 28 ngày, nhưng khi chọn các tháng khác cũng chỉ 28 hoặc 29 ngày dù kiểm tra Code kỹ, nhưng chưa tìm ra cách xử lý.

Ứng dụng trí tuệ nhân tạo trong lập trình

Ask Gemini: Tìm lỗi khi chọn tháng của đoạn mã sau:

Ứng dụng trí tuệ nhân tạo trong lập trình
Ứng dụng trí tuệ nhân tạo trong lập trình
Ứng dụng trí tuệ nhân tạo trong lập trình

Gemini trả lời: Lỗi chính trong đoạn mã của bạn nằm ở cách bạn xử lý sự kiện cboThangActionPerformedcboThangItemStateChanged, cũng như cách bạn thêm dữ liệu vào cboNgay. Bạn đang sử dụng cả hai sự kiện này và logic cập nhật ngày của bạn bị đặt trong cboThangActionPerformed. Sự kiện ItemStateChanged được gọi trước ActionPerformed, dẫn đến việc logic của bạn bị ghi đè không mong muốn.

Đây là code đã sửa và giải thích chi tiết các lỗi và cách khắc phục:

Ứng dụng trí tuệ nhân tạo trong lập trình
Ứng dụng trí tuệ nhân tạo trong lập trình
Ứng dụng trí tuệ nhân tạo trong lập trình

Với những thay đổi này, chương trình của bạn sẽ hoạt động chính xác. Ngày trong cboNgay sẽ tự động cập nhật mỗi khi bạn chọn một tháng hoặc năm mới. Hãy nhớ rằng việc xử lý sự kiện trong Swing cần cẩn thận để tránh các xung đột và lỗi không mong muốn.

Hình 4: Ví dụ đã sửa thành công

Ứng dụng trí tuệ nhân tạo trong lập trình

Kết quả trên cho thấy, AI hỗ trợ lập trình viên gỡ lỗi nhanh hơn, cải thiện tốc độ và hiệu năng thi công. Đồng thời, nó còn giúp tiết kiệm thời gian khi học ngôn ngữ mới và tìm hiểu tài liệu. Người dùng không phải tìm với Google Search, đọc tài liệu từ cộng đồng và tự tổng hợp, giờ AI đã tự động tổng hợp và giải thích cho người dùng được rõ. Ngoài ra, AI còn tìm kiếm hoặc xây dựng mã nguồn/thuật toán phù hợp với nội dung đưa vào; hỗ trợ giải thích và tìm kiếm thêm tài liệu cho các đoạn mã nguồn cần thông tin; kiểm tra và sửa lỗi của mã nguồn bằng cách đưa ra các gợi ý; hay hỗ trợ đưa ra nội dung gợi ý về tài liệu liên quan của dự án bằng ngôn ngữ tự nhiên.

Tuy nhiên, AI dễ khiến lập trình viên phụ thuộc vào công cụ mà không tích cực tư duy, làm giảm kỹ năng giải quyết vấn đè và gỡ lỗi – một kỹ năng thiết yếu của lập trình viên.

Vì vậy, để giảm thiểu ảnh hưởng tiêu cực, người làm lập trình có thể sử dụng AI để tìm giải pháp, rồi sau khi tìm được giải pháp thì nên dành thời gian đọc hiểu mã và sử dụng AI theo hướng là công cụ hỗ trợ học tập, làm việc để phát triển kỹ năng lập trình.

Nếu có những giải pháp thay đổi từ chính người dùng, thì AI thực sự sẽ rất hiệu quả. Các sinh viên, lập trình viên trong quá trình sử dụng AI sẽ trở nên thông minh hơn, giỏi hơn nhờ học hỏi được từ AI. Trong lĩnh vực giáo dục, AI đóng vai trò như là một công cụ hỗ trợ trong giảng dạy và học tập rất hiệu quả:

Hỗ trợ trong việc giải đáp câu hỏi: AI có khả năng trả lời các câu hỏi về lập trình từ cú pháp đến thuật toán. Người dạy có thể sử dụng AI để giải đáp các câu hỏi từ sinh viên một cách nhanh chóng và chính xác, giúp sinh viên hiểu rõ hơn về các khái niệm lập trình phức tạp.

Hướng dẫn thực hành gỡ rối: AI có thể cung cấp hướng dẫn và gợi ý trong quá trình thực hành lập trình. Người dạy có thể sử dụng AI để cung cấp gợi ý về cú pháp, logic hoặc sửa lỗi cú pháp cho sinh viên trong quá trình viết mã.

Tạo bài tập và đánh giá: AI có thể được sử dụng để tạo ra các bài tập lập trình và đánh giá kết quả. Người dạy có thể yêu cầu AI tạo ra bài tập lập trình đa dạng và phức tạp, từ đó giúp sinh viên rèn kỹ năng lập trình và kiểm tra hiểu biết của họ.

Hỗ trợ trong việc nghiên cứu và tự học: AI có thể trở thành nguồn tư duy sáng tạo và truyền cảm hứng cho người học lập trình. Người học có thể sử dụng AI để tìm hiểu về các khái niệm lập trình mới, khám phá các dự án và ý tưởng mới, hoặc thậm chí tạo ra mã nguồn tự động.

Hỗ trợ về kiến thức lập trình phổ biến: AI có thể cung cấp thông tin về các ngôn ngữ lập trình, framework, thư viện và công nghệ mới nhất. Người học có thể tìm kiếm thông tin, ví dụ và hướng dẫn từ AI để nắm bắt và áp dụng các công nghệ tiên tiến vào dự án của mình.

KẾT LUẬN

AI đang thay đổi cách chúng ta lập trình và phát triển ứng dụng. Nó mang lại nhiều lợi ích, từ tăng năng suất, nâng cao chất lượng code đến phát triển các ứng dụng thông minh và cá nhân hóa trải nghiệm người dùng. Mặc dù còn nhiều thách thức, tiềm năng của AI trong lập trình là rất lớn. Việc nắm bắt và ứng dụng AI sẽ giúp các lập trình viên trở nên cạnh tranh hơn và đóng góp vào sự phát triển của ngành công nghệ thông tin. AI mang lại những lợi ích to lớn cho các lập trình viên. Khi công nghệ này tiếp tục phát triển, chắc chắn rằng vai trò của nó trong lĩnh vực lập trình sẽ ngày càng trở nên quan trọng hơn.

Việc áp dụng AI không chỉ giúp tiết kiệm thời gian và nâng cao hiệu suất mà còn tạo cơ hội cho lập trình viên sáng tạo nhiều hơn trong công việc của họ. Các lập trình viên cần lưu ý rằng, phải sử dụng tư duy của riêng mình khi đánh giá code do AI tạo ra và thực hiện các điều chỉnh nếu cần thiết. Về phía người dùng, phải ý thức rằng, AI chỉ là một công cụ hỗ trợ và không thể thay thế vai trò của lập trình viên. Tuy nhiên, sử dụng AI như một công cụ hỗ trợ dạy và học lập trình có thể tăng cường hiệu quả của quá trình giảng dạy và nâng cao khả năng hiểu và áp dụng kiến thức lập trình của người học./.

TÀI LIỆU THAM KHẢO

1. https://gemini.google.com/app.

2. https://copilot.microsoft.com/chats/v57QM62PNqXhZapq65b7E.

3. https://sider.ai/.

Ngày nhận bài: 10/6/2025; Ngày hoàn thiện biên tập: 22/6/2025; Ngày duyệt đăng: 24/6/2025



https%3A%2F%2Fkinhtevadubao.vn%2Fung-dung-tri-tue-nhan-tao-trong-lap-trinh-31657-31657.html

- Advertisement -spot_img

More articles

- Advertisement -spot_img

Latest article