Artificial Intelligence (AI) has become a vital tool in education, particularly in the field of Software Engineering. Its capabilities allow students to enhance their learning experience by providing personalized support, rapid solutions to problems, and innovative approaches to tackling assignments. In ICS 314, AI tools such as ChatGPT, Bard, and GitHub Copilot have offered diverse functionalities, ranging from code assistance to conceptual explanations. This essay explores my personal experiences with AI tools in the course, analyzing their benefits, limitations, and overall impact on my learning journey.
I did not rely heavily on ChatGPT during Experience WODs. The lack of time pressure and the availability of demonstration videos made it manageable to complete these exercises without extensive AI assistance. For example, during the React Tic-Tac-Toe tutorial, I primarily used the demonstration videos to guide my work. If I encountered difficulties, I referred to the demonstrations for guidance rather than turning to AI tools.
For practice WODs, I focused on learning independently. However, I used ChatGPT to clarify concepts I found confusing. For example, when I struggled with how to use map() and filter() methods in JavaScript, I asked ChatGPT to explain their usage in simpler terms. ChatGPT’s explanations, such as when I asked about JavaScript methods like Array.map() or Array.filter(), were helpful in reinforcing my understanding. This approach helped me break down the concepts and solidified my knowledge.
Initially, I used ChatGPT as a crutch during in-class WODs, especially when I was unsure of how to proceed under time pressure. For example, when working on a task that involved integrating Bootstrap with React, I initially asked ChatGPT for suggestions on how to structure the layout. Over time, I shifted to using it as a supplementary tool to verify my solutions or understand errors. For instance, when I was working on the Aloha Beer React Bootstrap project and encountered a layout issue, I consulted ChatGPT to see if there were any common solutions, which helped me pinpoint where my code had gone wrong. This evolution improved my confidence and reduced dependency on AI.
For essay assignments, I used ChatGPT to enhance the word count, refine professionalism, and generate structured ideas. For example, I asked ChatGPT to help structure my thoughts when reflecting on my use of AI in ICS 314. It suggested including sections on how I used AI tools in various assignments, from WODs to the final project. This guidance made my writing clearer and more comprehensive. Additionally, I sought advice from ChatGPT when I wanted to articulate ideas in a more formal tone, which helped me refine my academic writing.
In the final project, I utilized AI tools for inspiration. For design elements, I initially tried using ChatGPT for layout suggestions but found it less effective than visual platforms like Pinterest. However, ChatGPT was helpful when I needed coding snippets or debugging assistance. For instance, when implementing the custom navbar for the Aloha Beer Kaka’ako project, I consulted ChatGPT for tips on how to ensure proper responsiveness. The AI tool provided me with useful examples that helped streamline my development process.
AI played a significant role in learning new concepts. When I encountered errors, ChatGPT was invaluable in diagnosing the issue and suggesting potential fixes. For example, while working through the React components and Bootstrap integration in my final project, I used ChatGPT to troubleshoot errors related to component rendering. The AI helped me identify missing dependencies and resolve issues related to improper import statements. This saved time and deepened my understanding of concepts like React components and Bootstrap integration.
I did not frequently use AI for asking or answering questions in class or Discord. My focus was on engaging directly with peers and instructors for clarity and building connections. However, there were times when I used Discord for support, as I had a specific question on implementing an API call with React. I posted a question in the class Discord and received clarification from my peers, which was more helpful than AI since it was about in-person things.
I did not often use AI to formulate or answer smart questions, relying instead on other resources and my growing understanding of course material. However, I did sometimes ask AI to guide me in forming better questions when I was unsure about specific topics, like when I was learning more about React’s state management. This was a good way for me to refine my curiosity and gain more specific insights into areas I hadn’t fully explored yet.
For coding examples, ChatGPT was helpful in providing guidance on how to implement various functions. For instance, when I was working on the “Your Choice” project, I asked ChatGPT how to implement the Bootstrap grid system for layout. Based on my question, ChatGPT provided a helpful response on how to create responsive columns using Bootstrap’s grid system, which I used as the basis for my layout.
Ai was really useful when I needed a quick and simple explanation of complex algorithms. For instance, when I was working on the JavaScript part of my React projects and encountered a particularly tricky piece of code, ChatGPT helped me break down its components and understand its functionality. This allowed me to grasp difficult concepts more effectively. Something as simple as why wasn’t a particular section showing up or a footer sticking to the bottom of the page was explained in detail immediately. This helped me continue my work smoothly and quickly.
I used GitHub Copilot extensively for writing code. It streamlined the coding process by auto-generating boilerplate code and completing functions based on my initial inputs. This was particularly helpful for repetitive tasks like setting up React components. When I worked on the Island Snow project, Copilot helped speed up the process of creating components such as the nav bar and footer.
I rarely used AI for documentation, as I preferred writing comments and explanations manually to ensure accuracy and context-specific relevance. However, there were instances when I would ask ChatGPT to suggest documentation formats or help with best practices, especially for functions or components that were more complex.
AI was inconsistent in addressing ESLint errors. While it could identify some issues, it often provided redundant or incorrect fixes. For instance, when I asked ChatGPT to fix some eslint errors in my code related to missing semicolons or unused variables, it sometimes gave advice that didn’t fully align with my course’s style guide. Additionally, formatting suggestions sometimes conflicted with course standards, making it less reliable for quality assurance.
In general, AI tools helped speed up problem-solving and provided structure for tackling assignments, but their utility varied depending on the context. When I was working on troubleshooting issues related to React components, AI saved time and prevented unnecessary frustration. However, its assistance was not always perfect, and I often had to ask for suggestions through further research or by talking with my classmates.
AI has significantly enhanced my learning experience by accelerating comprehension and enabling me to complete tasks more efficiently. Its ability to identify errors and suggest solutions has improved my debugging skills and deepened my understanding of software engineering concepts. For instance, ChatGPT helped me solve a React error related to component state management in a matter of minutes, which would have otherwise taken me much longer to figure out on my own. However, relying on AI required balancing its use with independent learning to avoid over-dependence.
Outside ICS 314, AI has proven useful in real-world projects and collaborative efforts. For example, I have used ChatGPT to brainstorm ideas for personal projects and GitHub Copilot to streamline coding tasks. In a personal project related to cybersecurity, I used AI tools to help with brainstorming potential solutions and researching various encryption methods. These applications have demonstrated AI’s potential to address software engineering challenges effectively, especially in rapid prototyping and debugging.
One significant challenge in using AI is its inconsistency. At times, it would regenerate the same incorrect code or fail to provide meaningful assistance. Additionally, formatting errors introduced by AI required extra effort to correct. For instance, when I was working on the “Aloha Beer Kaka’ako” project, ChatGPT gave me a few suggestions on how to implement a sticky footer, but some of the code snippets were outdated and didn’t work with my current version of React. Despite these limitations, AI offers opportunities to enhance software engineering education by integrating more accurate and domain-specific tools.
Compared to traditional teaching methods, AI-enhanced approaches offer increased engagement and faster problem-solving. While traditional methods foster critical thinking and deeper understanding, AI tools provide immediate support, making them invaluable for practical skill development. For example, when I encountered difficulties with integrating React components with Bootstrap, the instant feedback from AI was far more efficient than waiting for help from my instructor or peers. A balanced combination of both approaches is ideal for maximizing learning outcomes.
AI’s role in software engineering education is likely to expand as tools become more sophisticated and accessible. Future advancements could address current limitations, such as inconsistency and lack of context awareness. For instance, AI could be developed to better understand the nuances of various coding languages and frameworks, providing more precise suggestions for specific use cases. Integrating AI with traditional methods could create a more dynamic and effective learning environment.
Reflecting on my use of AI in ICS 314, I have gained valuable insights into its potential and limitations. While AI has enhanced my learning experience and streamlined various tasks, it also highlighted the importance of independent problem-solving. To optimize the integration of AI in future courses, educators should focus on leveraging its strengths while encouraging students to develop critical thinking and self-reliance.