AI in Software Engingeering

11 May 2025


I. Introduction

AI has become a powerful tool in education, especially in fields like Software Engineering. In ICS 314: Software Engineering, I utilized AI tools ChatGPT and Co-Pilot to assist with coding, problem-solving, and learning new concepts. These AI tools made learning easier, but also challenged me to think critically about their results.

II. Personal Experience with AI:

Experience WODs: For the Experience WODs, I mainly used AI tools like Co-Pilot when I needed help understanding something or when I couldn’t remember the correct syntax. For example, in WOD E18, I used it to help me recall the syntax for array methods in TypeScript. It was useful for getting past small obstacles but didn’t replace my own efforts in solving the problems.

In-class Practice WODs: For the in-class practice WODs, I rarely used AI because I thought it was the best time to practice on my own. I wanted to test my understanding and figure out what I didn’t fully grasp, so I could focus on those areas to prepare for the real in-class WODs. It helped me see where I needed to improve without relying on outside help.

In-class WODs:For some of the harder in-class WODs, I tried to solve the problems on my own first. But if I got stuck or if time was running out, I used AI to help me finish. It was especially helpful when I was almost done but needed a quick solution to a small problem or needed help with a specific part I wasn’t sure about. While I did most of the work on my own, AI helped me stay on track and make sure I finished on time.

Essays: For essays, beyond grammar I didn’t rely on AI tools. I felt it was better to rely on my own understanding and research to explain concepts in my own words. Though I did use AI to correct my grammar to ensure understandability for readers.

Final project: For the final project, I used AI tools to help debug and understand the code that my groupmates wrote. Instead of constantly asking what their code meant or having to sift through many lines of code and files to find errors, I used AI for quick help. For example, I used ESLint to check for code issues and Co-Pilot to help me figure out how to fix problems, especially when using the console. This made the process faster and more efficient, allowing me to focus on the bigger picture of the project.

Learning a concept / tutorial: AI tools like ChatGPT were helpful when learning new concepts or tutorials, especially when I came across something I didn’t fully understand. I could ask AI to “explain it to me more simply,” and it would break down complex ideas in a way that was easy to grasp. For example, when I was learning functional programming in TypeScript or working with databases, AI made the concepts clearer and helped me understand things I was struggling with.

Answering a question in class or in Discord: I didn’t use any AI to answer a question in class or on Discord because I assumed if they were able to find the answer by asking AI they wouldn’t have asked the question.

Asking or answering a smart-question: I didn’t use any AI to answer a question in class or on Discord, same as above, I ask AI before asking other students/professors.

Coding example: e.g. “give an example of using Underscore .pluck” I frequently used AI to generate coding examples for functions like Underscore’s .pluck(). The examples were usually accurate and helped reinforce my understanding of how to apply these methods in different scenarios.

Explaining code: I didn’t use AI to explain full code, but I did use it for specific lines or elements I was unfamiliar with. For example, I would prompt ChatGPT with “what does line do?” to get a quick explanation. Using AI to understand small code snippets helped me figure out what the full code was trying to do, making it easier to grasp the overall logic.

Writing code: For writing code, I often turned to AI for help, particularly during in-class WODs. If I encountered an error I couldn’t quickly fix or had trouble mimicking the layout of the website we needed to recreate, I’d ask ChatGPT to assist with rewriting the code. However, I learned that the responses from AI aren’t always perfect. Sometimes it helped point me in the right direction, but other times, it led me down a path that didn’t solve the problem. There were moments when I spent too much time following different suggestions, only to realize none of the changes actually addressed the original issue. It’s okay to acknowledge when I don’t have all the answers, but that’s harder to do when you’re working with an AI that’s supposed to have the answers.

Documenting code: I didn’t use AI for documenting code. I felt it was essential to write detailed comments myself to fully understand the logic behind my code.

Quality assurance: AI tools like Co-Pilot were helpful for fixing simple coding errors, such as ESLint issues or syntax bugs. For instance, when dealing with indentation errors, I used GitHub Copilot to save time. ESLint would highlight where the errors occurred, and typically, the fix was straightforward. However, after deleting an element, sometimes an entire block of code would become misaligned. Instead of manually adjusting each line, Copilot made it easier by automatically correcting the indentation for whole code blocks, speeding up the process. Despite this, I still took the time to review the code thoroughly to learn from my mistakes and improve my debugging skills.

Other uses in ICS 314 not listed: I also used AI to help me redownload and reinstall everything I needed for the class after I had to get a new laptop a week before the end of the course. It was a stressful situation, but AI guided me through the process of setting up my environment, ensuring I didn’t miss any necessary tools or software. This helped me get back on track quickly without having to figure it all out by myself.

III. Impact on Learning and Understanding

AI tools like ChatGPT and Co-Pilot have really helped me in ICS 314 by making difficult concepts easier to understand. When I struggled with something, AI helped explain it in a way that was easier to grasp, especially when I was learning things like functional programming or databases. While AI was useful in helping me learn faster, it also made me think more critically. Sometimes, the suggestions from AI weren’t perfect, so I had to fix them myself. This helped me better understand the material because I had to make adjustments and learn from my mistakes.

IV. Practical Applications

AI isn’t just useful in the classroom, it has also helped me in real world situations. For example, when I had to set up a new laptop with all the software for the class, AI helped guide me through the process. It saved me time and made sure I didn’t miss anything important. I also used AI in group projects to help debug code and fix issues more quickly. This showed me how useful AI can be not just for learning but also for getting things done in real-world coding.

V. Challenges and Opportunities

Even though AI helped me a lot, there were times when it caused problems too. I sometimes relied too much on AI when I was running out of time, which made me lose track of what I was actually learning. AI is helpful, but it doesn’t always give the perfect answer, and sometimes I had to spend extra time fixing the AI’s suggestions. I realized that it’s important to balance using AI with solving problems on my own, so I can learn more effectively. Moving forward, I’ll try to use AI as a tool to help me, but not let it do all the work for me.

VI. Comparative Analysis

AI-based learning is different from traditional methods. When we learn without AI, we have to think deeply and solve problems on our own, which helps us understand the material better. However, using AI helps speed up the process by providing quick answers or suggestions. AI can be a great tool for learning faster, but it might make us skip over important thinking and problem-solving skills. I think the best way to learn is by using both AI and traditional methods, so we get the benefits of both quick solutions and deeper understanding.

VII. Future Considerations

In the future, AI will likely become even more helpful in education. It could become more personalized, adapting to each student’s needs and helping them learn at their own pace. AI could provide custom lessons or problems that match what each student is learning. But as AI improves, it’s still important for students to focus on understanding the basics and solving problems on their own. AI should help us learn, but not replace the process of thinking critically and solving problems by ourselves.

VIII. Conclusion

In conclusion, AI has been a useful tool in ICS 314, helping me understand difficult concepts and finish coding tasks more quickly. While AI helped me learn more efficiently, it also made me think more critically about my work and forced me to fix mistakes on my own. In the future, I think AI will play an even bigger role in education and coding, but it’s important that we use it as a tool and continue to focus on developing our problem solving skills.

Note that this essay was written with the help of Grammarly.