Ten Ways to Integrate ChatGPT into Software Engineering Education

Dr.Q writes AI-infused insights
4 min readMay 23, 2023

Generative AI tools captivated the world and have the potential to revolutionize education in general and software engineering, computer science and related fields (SE/CS/IT) in particular. Tools such as ChatGPT and the things that are following along (Bing Chat, Bard, etc.) with state-of-the-art language models and their APIs can help SE/CS/IT professors and professionals to be more productive and creative.

Photo by ThisisEngineering RAEng on Unsplash

ChatGPT for a Take-Home Test

In Winter 2023 I taught a graduate course (ENGR 5710 Network Computing) to 26 students, and not only did I encourage the students to use ChatGPT as an educational tool BUT I made it a requirement to use ChatGPT on the midterm test. Here is how I did that: the questions were not straightforward, some involved some calculations, and others may have multiple answers. Students were required to feed each question to ChatGPT, validate the answer generated, and write the answer in their own words. At the end of the test, students were asked to submit a copy of their ChatGPT sessions. I did not realize how much work I have assigned to myself until I started grading — not only reading each student’ answers but also their ChatGPT sessions! More on this in another article.

Generative AI in SE/CS/IT Courses

This article offers ten ways to integrate generative AI tools such as ChatGPT into SE/CS/IT courses. ChatGPT is used as the primary example, but it can be replaced with Bing Chat, Bard, or a similar tool.

It is essential that students learn to review and validate generated responses to ensure relevance and effectiveness.

1. Use ChatGPT as a coding partner. Here are some possible use cases: (a) identify errors in code; (b) explain functionality of code written by someone else; (c) suggest simplified or less complex code to solve the same problem; (d) generate comments and code documentation; (e) find out which libraries provide specific functions; (f) translate code from one programming language to another. Some or all of this can be done during lectures, tutorials, labs, as well as on students’ own time. Did I mention that ChatGPT does not mind if you ask it 15 questions about the same line of code!

2. Use ChatGPT to act as a client for a project. Develop scenarios or case studies where students must communicate with ChatGPT as their client or end-user to practice their communication and problem-solving skills. This can help students develop effective communication skills and learn how to identify and solve problems that real users may encounter.

3. Use ChatGPT to generate test cases that meet specific requirements or constraints for desired test scenarios. This can help students with suggestions for input values, corner cases, and expected outputs to explore different paths to uncover potential issues.

4. Brainstorming. Use ChatGPT to generate and vet ideas for projects, and generate discussion prompts or debate topics to promote engagement, creative and critical thinking in class discussions. This can help students refine their ideas based on industry trends, and expose students to a variety of perspectives and viewpoints.

5. Integrate generative AI APIs (such as OpenAI APIs, Hugging Face, and others) into your course. This can help students to interact programmatically with ChatGPT and other generative AI tools, improve student coding skills, and learn how to integrate AI-powered APIs and applications into their SE/CS/IT projects.

6. Automate code reviews: Use ChatGPT to automate code reviews and provide students with feedback on coding best practices, code quality, potential bugs, and performance. This can save time and help ensure consistency in feedback for all students.

7. Assign research topics and have students use ChatGPT to assist them in finding relevant information and sources and then validate the generated responses. This can help students improve their research skills, and with their validation find the most accurate and up-to-date information for their projects.

8. Q&A sessions. Use ChatGPT to facilitate Q&A sessions with students. Students can ask ChatGPT questions related to the course material, and ChatGPT can provide answers in real-time and additional insights to help guide the discussion. Imagine taking 15 minutes of a weekly lecture to do this, which will help students clarify their doubts and better understand the course material and along the way learn how to effectively use ChatGPT or other generative AI tools.

9. Career guidance. Use ChatGPT to provide career guidance to students, or act as an interviewer for a specific job title. ChatGPT can provide information on different career paths in SE/CS/IT, as well as advice on how to develop the skills and knowledge needed to succeed in the industry.

10. The possibilities are endless. This is for you to think about and provide another way to use generative AI in your course.

Generative AI tools such as ChatGPT are becoming tools of the trade and we need to help students to use them effectively. These are just a few ideas to get you started. The key is to think creatively about how ChatGPT can enhance the learning experience for your students, and to integrate it in a way that aligns with your course learning outcomes.

To probe further

OpenAI APIs

Github Copilot: Your AI pair programmer

Jupyter AI Assistant and chrome extension

ChatGPT extension for VSCode

ChatGPT and software development

--

--

Dr.Q writes AI-infused insights

Qusay Mahmoud (aka Dr.Q) is a Professor of Software Engineering and Associate Dean of Experiential Learning and Engineering Outreach at Ontario Tech University