

Artificial Intelligence (AI) has significantly transformed the landscape of education, offering innovative solutions for problem-solving, learning, and project development. In fields where software engineering plays a pivotal role, AI has emerged as an invaluable tool for automating code, boosting productivity, debugging software, and assisting users with complex concepts.
At the University of Hawaii at Manoa, ICS 314 is the first curriculum course that openly incorporates AI tools, allowing students to explore their potential in software engineering tasks. Throughout this course, I learned to utilize two primary AI applications: ChatGPT and GitHub Copilot. These tools proved invaluable for generating code templates, identifying issues, brainstorming solutions, and troubleshooting errors efficiently. Without access to these applications, completing assignments and project tasks within the given deadlines would have been significantly more challenging.
However, the integration of AI into academic life presents its own set of challenges, particularly when it comes to exercising self-discipline and using these tools as learning aids rather than shortcuts. Striking a balance between leveraging AI for assistance and maintaining the independence required to fully grasp concepts is essential.
This essay reflects on my personal experiences using AI in ICS 314, analyzing its impact on my learning, understanding, and practical applications within the field of software engineering.

During the Experience WODs, I explored GitHub Copilot to improve my proficiency with Visual Studio Code. Initially, I struggled to understand how to use it effectively in a timely manner. Due to this, I relied more on ChatGPT until I became more familiarized. One specific instance where ChatGPT proved invaluable was during E40: Experience Island Snow in React. I had trouble transitioning from Bootstrap 5 to React, despite following the provided instructional videos. I would request assistance to help me break down and identify any small but crucial mistakes. Issues such as missing characters, misplaced brackets, or absent semicolons, were hard to detect on my own. Sometimes, ChatGPT provided generic answers, but by asking follow-up questions, I was able to find the proper solution myself.
To reinforce problem-solving skills, I limited the assistance of AI during in-class practice WODs,. These sessions were meant to prepare for the more challenging in-class WODs, so I prioritized independent coding. I would occasionally rely on ChatGPT to find quick examples or solutions, only once it ended. This was to build confidence in completing in-class WODs.
One instance involved checking my program files for potential errors, even when Visual Studio Code did not report any linting issues. Occasionally, my code would run without lint errors but still not display as intended. I would ask ChatGPT questions like, “Why isn’t my CSS rendering properly?” or “Why is the JSX not displaying correctly?” This helped me to find subtle issues that may have been overlooked.
I aimed to rely on AI as little as possible during in-class WODs. These exercises were designed to assess my ability under time constraints. Although the pressure sometimes pushed me to use AI to meet deadlines, I focused on improving my skills through manual problem-solving. This led to only reserving AI for when it was absolutely necessary.
However, during the Baby-Bieber and Ko Hana Rum WODs, I felt there was no other option but to use ChatGPT. The Baby-Bieber WOD challenged me with numerous lint errors, and I didn’t fully understand how to fix them. This led to my first and only incomplete WOD. Later, in the Ko Hana Rum WOD, I struggled with specific visual placements and recreating the provided images. I asked ChatGPT, “How do I align elements to match the example layout?” Despite AI assistance, some issues remained, highlighting the importance of manual problem-solving.
When finalizing my essays for my GitHub personal portfolio repository, I used ChatGPT to convert text to Markdown format. I also requested grammar and spelling checks to ensure quality. Occasionally, ChatGPT generated overly complex Markdown formatting, which I had to simplify manually. Additionally, I faced challenges with formatting, such as preventing text from wrapping around images when resizing the window. I asked ChatGPT, “How do I stop text from wrapping around images in Markdown?” This helped me find solutions, making the essays more visually appealing and consistent.
The final project posed various challenges, including communication issues between team members and technical problems related to Vercel, GitHub, and Supabase. Even after thoroughly reviewing code updates before deployment, unexpected errors frequently arose. I would copy error logs and pasted them into ChatGPT along with relevant code blocks. I would ask, “What does this Vercel deployment error mean?” or “Why does my Supabase query fail?”. ChatGPT’s responses often provided quick fixes, significantly reducing troubleshooting time.
We also faced challenges with merging branches, playwright testing, environment variables, GitHub Secrets, and handling .env files. Without ChatGPT’s guidance, we would not have met the milestone deadlines. However, not all teammates were familiar with ChatGPT, leading to uneven workload distribution. I suggested asking more specific questions, like “How do I configure Vercel with Supabase’s environment variables?”. Beginners tend to ask generic questions, leading to undesirable replies.
During tutorials such as E38: React Quick Start Tutorial and E38A: React Foundations Tutorial, I sometimes misunderstood the instructions. This caused me to get stuck at specific steps. In these situations, I used ChatGPT to clarify the instructions and identify where I had made mistakes. I asked questions like, “What does this error mean when using React components?” or “Could you give examples of this explanation for me?” The AI often helped me pinpoint errors and better understand the concepts being taught.
One notable instance of using ChatGPT for a coding example occurred during E29: FreeCodeCamp HTML and CSS. The assignment involved passing a series of interconnected tasks. When I encountered a confusing error, I asked ChatGPT, “How do I fix this HTML alignment issue?” The AI provided a code block, which helped me move past the problem and complete the assignment through finding out how to utilize the example on my own.
When struggling to find improvements in my own code, I compared it with a classmate’s files. After identifying differences, I used ChatGPT to analyze why their code worked better. For instance, I asked, “Why does my loop not return the expected array while my classmate’s does?” This comparison helped me recognize gaps in my understanding and led to more effective coding practices.
While I never relied on AI to write entire programs, I used ChatGPT to generate configuration files, like .env setups and JSON templates. For instance, I asked, “Generate a JSON template with these given environment variables from Supabase.” This was primarily done throughout the final project due to the team’s novice experience with GitHub, Vercel, and Supabase configurations. ChatGPT provided alternative approaches, which I then modified to fit my project’s context.
One of the biggest challenges I’ve faced was dealing with ESLint errors. Whenever I used Visual Studio Code’s “Fix with Copilot” option to resolve these issues, it often introduced new errors rather than fixing the problem itself. To better understand these linter errors, I asked ChatGPT, “What does this ESLint error mean: ‘Unexpected block statement surrounding arrow body’?” This approach saved me time and improved my understanding of how to address coding issues independently.
I enhanced the documentation of my GitHub Repositories by adding links in the README.md file to the assignment instructions. To streamline this process, I used ChatGPT to generate a template that would automatically create a clickable title link in Markdown whenever I added a new URL. I asked, “How do I create a clickable title link in Markdown?” This automation greatly improved the consistency and accessibility of my project documentation.

Artificial Intelligence (AI) has significantly impacted my learning experience, especially in how I approach complex problem-solving tasks. Before AI tools like ChatGPT, I typically relied on resources such as Google, Chegg, or StackExchange to find answers to software engineering challenges. Now, I mainly use ChatGPT for its ability to provide quick problem-solving and detailed explanations. This has been highly beneficial, as AI allows me to move past obstacles that would have otherwise taken hours to resolve. However, the effectiveness of AI is largely dependent on the user’s discipline. While it serves as a valuable tool for enhancing, understanding, and organizing work, it can also lead to complacency if used without strict engagement. Those who rely solely on AI without persistently trying to understand the material risk undermining their learning process.
Personally, I strive to use AI as a supplement rather than a substitute for my efforts. I try to avoid letting AI complete tasks entirely, as I believe it is essential to engage it directly. While AI can sometimes provide inaccurate information, I make it a habit to double-check its output and incorporate its insights instead of blindly following them. This way, AI has benefited my understanding of software engineering by helping me progress through challenges while still maintaining a hands-on approach to learning. The key is to balance utilizing AI for efficiency with personal involvement in the problem-solving process.

Outside of ICS 314, AI has become an invaluable tool in various professional and real-world projects that require efficient problem-solving and automation. In software development, AI tools like GitHub Copilot and ChatGPT are used to generate boilerplate code, create configuration files, and automate repetitive tasks, significantly reducing development time. Developers utilize AI to create API integration templates and troubleshoot complex code issues, while AI-driven testing frameworks improve quality assurance by generating test cases and detecting bugs. In the business sector, AI enhances data analysis and decision-making by processing large datasets, predicting trends, and generating insights. Marketing teams leverage AI for automated content creation, social media management, and personalized customer interactions through chatbots. Additionally, in finance, AI supports risk management and fraud detection by analyzing transaction patterns and identifying anomalies. These applications demonstrate how AI enhances productivity and streamlines workflows across various industries, allowing professionals to focus on more strategic and creative tasks.

Despite its numerous benefits, integrating AI into professional settings also presents challenges, particularly concerning accuracy, dependency, and ethical use. One major issue is the potential for over-reliance on AI, which can hinder critical thinking and problem-solving skills if users become too dependent on automated solutions. Additionally, AI-generated content can sometimes lack context or accuracy, leading to errors if not critically assessed. Ethical concerns also arise from AI’s handling of sensitive data, as privacy violations and data security issues can occur without proper safeguards. Another challenge is ensuring that AI outputs are transparent and free from biases, especially in decision-making processes. To address these challenges, it is essential to develop digital literacy and critical evaluation skills, enabling users to verify AI outputs and maintain responsible use. By treating AI as a complementary tool rather than a complete solution, professionals can maximize its benefits while minimizing risks.

Comparing traditional teaching methods with AI-based approaches in software engineering education reveals both advantages and challenges. Traditional methods primarily focus on hands-on practice and manual problem-solving, leading to a deeper conceptual understanding. These skills are essential for building a strong foundation in real-world applications. However, traditional methods can be time-consuming and may not consistently provide immediate feedback. In contrast, AI-enhanced approaches, such as ChatGPT and GitHub Copilot, offer quick solutions, code generation, and real-time debugging, significantly speeding up the learning process. While AI is effective in improving efficiency and providing diverse perspectives on problem-solving, it can also lead to over-reliance if not used cautiously. Balancing these methods is crucial, as leveraging AI for support and insight while actively engaging in manual coding practices ensures a more holistic learning experience. This combination helps students develop both technical proficiency and problem-solving independence.

Looking ahead, the role of AI in software engineering education is likely to expand as more advanced tools become available. As AI continues to evolve, it will be crucial to integrate these technologies thoughtfully into the curriculum, balancing the convenience of AI-generated solutions with the need to develop core problem-solving skills. Educators and students alike should focus on using AI as a complementary tool rather than a replacement for foundational learning. Future improvements should focus on teaching students to critically evaluate AI outputs and fostering digital literacy for responsible usage. Additionally, incorporating ethics and data privacy considerations into AI-related coursework will help future software engineers make informed, responsible decisions. By fostering a balanced approach, students will be better prepared to leverage AI effectively while maintaining a solid grasp of fundamental concepts.

Reflecting on my journey with AI in ICS 314, I have realized that while AI tools like ChatGPT and GitHub Copilot significantly enhance productivity and problem-solving, they also pose challenges that require a mindful approach. By using AI as a supportive aid rather than a crutch, I have been able to deepen my understanding of software engineering concepts while improving my coding efficiency. The key lies in maintaining a balanced approach, leveraging AI to overcome obstacles while still engaging actively with the learning process. As AI continues to shape the landscape of software engineering education, developing digital literacy and responsible usage will be crucial for future success. Through thoughtful integration and critical engagement, AI can continue to be a powerful tool for both professional development and academic growth. As AI continues to evolve, staying adaptable and responsible in its application will be key to leveraging its full potential in software engineering education and beyond.

This essay was assisted with AI to correct grammar, spelling, and clarity. While the ideas and content are my own, AI tools were applied for organizing thoughts and ensuring readability.