My Journey with AI

17 Dec 2024

I. Introduction Artificial Intelligence has become an integral part of modern education, offering innovative tools and methodologies to enhance learning. In the field of Software Engineering, AI aids in problem-solving, code generation, and debugging, which are crucial for mastering the discipline. During my semester in ICS 314, I engaged with AI tools such as ChatGPT, Claude, and Co-Pilot to facilitate my understanding and application of software engineering. This essay reflects my personal experiences using AI throughout the elements of the class, analyzing its impact on my learning journey.

II. Personal Experience with AI

  1. Experience WODs E18 was the introduction to experiencing functional programming. This is where I started to learn how to use AI as a navigation tool within my work. I used ChatGPT and Claude to gain a better understanding of the requirements and help me break down the exercises into smaller more manageable sections. I asked AI questions to check my understanding and methods such as “Is my implementation of .filter() following functional programming?”. The responses I received worked as a guide in my work, providing clear answers and explanations which helped me better understand functional programming concepts. AI in this usage was moderately helpful and was an efficient way to check my understandings. I used ChatGPT to better understand the requirements of E18 by asking, “How do I implement a function using underscore.js to filter data?” The response provided clear examples and explanations, which helped me get started, although it required modifications to align with the specific WOD requirements. AI was moderately helpful, saving time but not fully meeting the task’s nuances.
  2. In-class Practice WODs During practice WODs, I tried to avoid AI and aimed to use that space more as an exam-like space. That way I was able to make sure I was not relying too heavily on AI support and had a full understanding of concepts. I believe that it helped me to still be able to expand on my problem solving skills and be able to work on the collaboration aspect of software engineering. Although my method was to avoid AI in this case, towards the end of many practice sessions we would use AI as a corrections support because on those class days we often did not review at the end.
  3. In-class WODs Similar to practice WODs, during the in-class WODs, I refrained from using AI to practice working under timed conditions without external assistance, working on my problem solving skills before outside resources.
  4. Essays For the UI Frameworks essay, I did use AI. I used it as an overview of the essay topics and format of my work. I also used it to help me expand on my thoughts and brainstorm. The support that I received from AI provided me with a solid foundation, was able to enhance my research efficiency, but maybe was not as time efficient because I did have to cross-reference resources for accuracy.
  5. Final Project In the final project, I used Claude, an AI introduced to me by one of my teammates. Claude was the most helpful in helping me understand my database, the working tree and help me to review work from my teammates. One of the biggest challenges I faced during the final project was how to set up and structure a PostgreSQL database for user profiles and activity. I was able to use Claude to gain a better understanding of PostgreSQL and implementation into my work. The support of Claude gave me a starting point but as for the collaboration, team discussions were still necessary to finalize implementations.
  6. Learning a Concept / Tutorial AI was instrumental in understanding TypeScript for me. I often used ChatGPT, in cases such as, “Explain TypeScript’s type inference” and received a detailed explanation that clarified my questions. The tool was highly effective in being able to break down complex concepts into manageable pieces.
  7. Answering a Question in Class or in Discord I don’t believe the use of AI was necessary in my Discord use. I used discord for collaboration with my class and team mates where AI was not necessary. Discord use was critical in my final project with my team so it is possible that concepts or ideas discovered on AI was brought up during our Discord discussions.
  8. Asking or Answering a Smart Question In class, I definitely used AI to help me formulate my answers. Oftentimes I was unsure of exact concepts or ideas so I would use AI to help me formulate my thoughts and answer before discussing it. AI in this case provided a quick resource for my collaboration.
  9. Coding Example I asked ChatGPT to “provide an example of … “ with an attachment of the assignment requirement sections. Mainly to gain a better understanding of the functionality within the sections of my work. I know that at the end of exercise I would often go home and submit my work to AI for review. The responses were not always reliable however it was a valuable way to understand how work can be done in many different ways.
  10. Explaining Code I know that in being able to explain my code to a teammate I have used AI to help me break down my work. Oftentimes when working with a file or idea, especially for longer periods of time, ideas and implementations can get confusing and harder to understand. I have definitely used AI to help me break down my work and explain specific ideas such as “help me better understand my work”.
  11. Writing Code For writing code in React for the final project, I asked ChatGPT, “Help generate a template for a React component with TypeScript to create a ride share form.” This significantly reduced development time by providing a clean template. However while doing this I felt that oftentimes I did then lose track of my formatting and had to restart from the basics. In this case, writing code with AI was not as efficient as I hoped it would be but maybe that for my learning better.
  12. Documenting Code ChatGPT assisted me in drafting comments by asking, “How do I write comments for a TypeScript function?” The suggestions improved the clarity and professionalism of my documentation.
  13. Quality Assurance I used AI to debug ESLint errors by pasting the error message and asking, “How do I fix this ESLint error?” The advice was precise and effective, saving me time in troubleshooting. During my semester I had trouble using ESLint in the beginning so AI was a great resource for me to make sure I was able to use ESLint effectively.
  14. Other Uses in ICS 314 Not Listed AI was used as a resource throughout this class for sure. I know I explored using AI for brainstorming project ideas by asking, “Suggest innovative app ideas for students,” which sparked creativity during the ideation phase. I think that AI is a great resource and guide for brainstorming.

III. Impact on Learning and Understanding AI has profoundly influenced my learning by providing immediate feedback, clarifying complex concepts, and accelerating development tasks. However, it occasionally hindered deeper comprehension when I over-relied on it for solutions. I think that it took a lot of control to be able to not turn to AI at first error.

IV. Practical Applications Outside ICS 314, I used AI to integrate Google Maps API into a Node.js project. AI’s guidance on configuring the API and handling location data streamlined the implementation process, showcasing its utility in real-world scenarios.

V. Challenges and Opportunities Challenges included AI-generated inaccuracies and the risk of dependency, throughout my use of AI, I have run into many inaccuracies and errors. I think that it’s a good reminder that although AI is a powerful resource, it shouldn’t always be the first or last. Opportunities lie in leveraging AI for advanced debugging, personalized learning, and collaborative development.

VI. Comparative Analysis Traditional teaching emphasizes foundational understanding, while AI accelerates practical application. I believe that combining both approaches optimizes engagement, retention, and skill acquisition. ##VII. Future Considerations AI’s role in education will expand with advancements in natural language processing and adaptive learning technologies. However, ensuring ethical use and mitigating over-reliance will be critical for its success.

VIII. Conclusion Reflecting on my experiences of AI throughout this past semester and in class, AI has been a powerful tool, enhancing efficiency and comprehension. To optimize its integration, future courses should balance AI-driven and traditional methodologies, one thing that helped me the most is refraining from AI during my in-class WODS, that way I was able to focus on my independent problem-solving skills which are very important to my future as a software engineer.