In the past few years, AI, especially generative AI, has become a huge topic within education and the technology industry. Students, educational institutions, and educators have begun to use generative AI to complete tasks for convenience and efficiency. In the context of software engineering, programmers have used AI to assist them with code and troubleshooting, as well as learn new concepts. This semester, in ICS 314 and in other classes or my everyday life, I’ve used ChatGPT, Copilot, and Claude to assist me with code, assignments, and miscellaneous tasks like meal planning.
I think that using AI in class has both helped and limited my learning within software engineering. When asking ChatGPT about certain concepts or how to fix my code, I can definitely say that I’ve learned more and have gotten better at coding and avoiding errors that I’ve fixed in the past with AI’s help. However, I also feel like I could have learned more if I refrained from using AI sometimes, especially on WODs, because I sometimes used it to get shortcuts to finish assignments rather than learn.
I’ve used AI to help with work-related projects while I completed an internship last summer and my group and I did find it to be very helpful as we were creating a web application for our company dedicated to career growth and learning. As always though, we did need a good amount of refining our prompts to ChatGPT and other AI platforms we did use as it doesn’t always give us the right solution on the first try.
An issue that I had with AI in class was when getting help for assignments that had many files, such as our final project. Copilot didn’t help a lot and I found it to be wrong a lot of the time when I used it via VSCode, and ChatGPT couldn’t help me fully because it didn’t have a background of what exactly I had going on in my project files. I think that AI could be adapted to work with projects like these with a lot of files, where it can take that data from the entire project and help you based on those rather than a single prompt or file.
Traditional teaching methods, like lectures and hands-on workshops, really get students involved through direct interaction with teachers and classmates. These methods allow for real-time discussions, team problem-solving, and instant feedback. Students can ask questions and get immediate answers, which makes for a lively learning environment. On the other hand, AI learning has more personalized learning by adapting to what each student needs. AI can give interactive simulations, coding exercises, and quick feedback, keeping students actively engaged. Knowledge acquired through traditional methods are more likely to be retained compared to AI because of the differences in time needed to learn and supplemental learning offered from traditional teachers. AI also doesn’t always give the hands-on sessions that you get with traditional teaching, making it more realistic for job opportunities. Using the best of both worlds, educators can create a more comprehensive and effective learning experience for students.
When we think about the future role of AI in software engineering education, there are some really exciting possibilities. AI could change how we learn and teach by making education more personalized and accessible. AI tutors that adapt in real-time to each student’s learning pace and style could have a lot more to offer for students because of how different learning is for everyone. This could significantly boost student engagement and knowledge retention. However, one major hurdle is making sure that AI tools are inclusive and unbiased. We need to develop AI systems that consider diverse learning backgrounds and avoid reinforcing existing biases. Additionally, there’s the challenge of integrating AI in education in a way that complements rather than replaces human teachers. Instructors have experience and emotional intelligence that AI can’t replicate.
Looking back at this semester, I see that AI has both helped and held me back in some ways in my software engineering course. Tools like ChatGPT, Copilot, and Claude were super handy for coding, assignments, and even daily stuff like meal planning. They gave quick fixes and made things easier, especially when it came to debugging and learning new concepts. But, I also realized that leaning too much on AI sometimes stopped me from fully understanding things. It’s all about finding the right balance between using AI for help and solving problems on my own. When I used AI for real-world projects during my internship, it was a game-changer. My team and I used it to build a web app, and it saved us a lot of time. But, I also hit some snags when working on big projects with lots of files. Copilot was often off the mark, and ChatGPT couldn’t get the full picture of my project, which was frustrating. This shows that AI still has a lot of room for improvement. Thinking about the future, AI could really shake up software engineering education by making learning more personalized and accessible. AI tutors that adapt to each student’s pace and style could make a big difference. However, we need to make sure these tools are inclusive and unbiased, considering everyone’s different backgrounds. And while AI is great, it shouldn’t replace human teachers who bring valuable experience and emotional intelligence to the table. To get the best results, I think a hybrid approach that combines traditional teaching with AI tools is the way to go. This mix can boost engagement, help us retain knowledge, and build practical skills. By continuously improving AI based on feedback, we can make the most of its potential while still benefiting from the human touch in education.