Reflecting on My Use of AI

14 Dec 2024

Reflecting on My Use of AI in ICS 314

I. Introduction

Artificial Intelligence is playing an increasingly pivotal role in education, offering innovative methods to improve learning and problem-solving. In software engineering, AI tools such as ChatGPT and Claude are particularly beneficial for writing, debugging, and comprehending code. Throughout ICS 314, I utilized ChatGPT and Claude to tackle coding challenges, resolve errors, and enhance my grasp of essential concepts. These tools not only streamlined my workflow but also provided valuable insights and explanations, making complex topics more accessible and reinforcing my learning through immediate feedback and guidance.

II. Personal Experience with AI:

1. Experience WODS

When working on the experience WODs, I found that it was most effective to not rely on AI tools like ChatGPT initially. Instead, I tackled the problems independently, utilized the provided screencasts and resources, and only turned to AI when I was really stuck. This approach enhanced my learning, allowing me to better understand the material and develop my problem-solving skills more effectively.

2. In-class Practice WODs

Similar to the experience WODs, I aimed to limit my use of AI since these activities were focused more on learning than just completing tasks. When in-class practice WODs extended beyond class time, I worked on them at home, taking the opportunity to thoroughly learn and understand the material. This approach allowed me to delve deeper into the concepts, reinforcing my knowledge and skills. By independently tackling the problems and utilizing AI only when absolutely necessary, I was able to enhance my learning experience and gain a more comprehensive understanding of the coursework.

3. In-class WODs

When it came to in-class WODs, I did not limit my use of AI. Given that these WODs were designed as pass or fail and were timed, using AI provided a crucial safety net. It allowed me to debug my code efficiently and quickly, ensuring I could meet the time constraints. The assistance from AI tools helped me navigate through coding challenges more effectively, enabling me to focus on understanding the problem-solving process while still adhering to the strict deadlines. This strategic use of AI ensured that I could perform well under pressure and meet the requirements of the timed assessments.

4. Essays

I used AI for essays primarily to generate a structure or outline that I could then expand upon with my own ideas and experiences. This initial framework provided a solid foundation for my writing, ensuring that my essays were well-organized and coherent. Additionally, AI was extremely helpful in adding more examples and depth to my essays, enhancing the content and improving the overall flow. Utilizing suggestions generated by AI really helped me to enrich my arguments and provide more engaging and comprehensive discussions.

5. Final Project

The resources provided in this course related to databases were quite limited, making AI an invaluable tool for understanding and learning about databases. In my final project, Study Buddy, I frequently encountered many- to-many relationships, a topic not thoroughly covered in class. To address this gap, I sought resources outside of class and utilized AI. AI was instrumental in helping me grasp database relationships, serving as a guide in my learning process. As a result, I became quite knowledgeable about databases and their interrelationships. In addition, there were many issues that I encoutnered when deploying my project onto vercel. AI served as a very good guide to help me set up my environments helping me with any of the issues I encountered.

6. Learning a concept / tutorial

As previously mentioned, certain topics in the class lacked sufficient resources, making AI an invaluable tool for assistance. In many instances, I found myself needing to explore concepts beyond what was covered in the course materials. Whether it was understanding advanced database relationships, deployment processes, or specific coding techniques, I had to seek out additional information outside of class. AI played a crucial role in this process, acting as an efficient and accessible resource to help clarify these topics. By providing detailed explanations, step-by-step guidance, and even offering real-world examples, AI enabled me to grasp complex concepts quickly and deepen my understanding. With AI as a learning companion, I was able to expand my knowledge and stay on track, even when course resources were limited or when I needed to explore areas not fully addressed in class.

7. Answering a question in class or in Discord

During in-class discussions, AI was used to clarify complex topics and significantly improved the flow of discussions. When the discussion topics became more challenging, AI served as a valuable tool for explaining key concepts in a simpler manner. This allowed classmates to engage more effectively, ensuring everyone had a clearer understanding. AI helped facilitate the discussions by providing concise summaries, breaking down difficult ideas, and offering additional examples, which kept the conversation moving smoothly. Its support ensured that the discussions remained productive, allowing us to explore more complex ideas without confusion.

8. Asking or answering a smart-question

AI was very helpful when creating “smart questions,” especially when asking about topics I was unfamiliar with. To get valuable answers and assistance, it’s important to be as specific as possible about the issue, and using AI clarified concepts and helped to form a more precise question.

9. Coding Example

When working with coding examples, AI was valuable for providing clear, context-specific examples to demonstrate various coding techniques. Whether it was illustrating how to use a particular function or showing the best way to structure a solution, AI helped me quickly understand the application of different concepts, making the learning process more efficient and effective.

10. Explaining Code

When encountering more complex code snippets, AI was extremely helpful in explaining how the code works and what it does, which allowed me to understand how it arrived at a specific outcome. This not only improved my understanding of the code but also enabled me to effectively utilize more complex code by understanding how it functioned.

11. Writing Code

AI tools like CoPilot were incredibly helpful with tasks such as styling and UI design. For instance, when I struggled to align items or content properly, especially when it wouldn’t center, AI provided valuable assistance in configuring the UI to display exactly as I wanted.

12. Documenting Code

Copilot extremely useful when it came to documenting code. When coding, copilot was able to generate detailed comments explaining specific lines of code and how they function. By providing suggestions on how to document complex logic, AI ensured that my code was well-documented and easier for others and myself to follow in the future.

13. Quality Assurance:

When it came to debugging, AI was invaluable. It helped me fix numerous issues by generating lines of code that allowed me to trace and identify errors in the output. Additionally, AI was able to spot logic errors and provide suggestions for improving the code, resulting in more efficient and higher-quality solutions.

14. Other uses in ICS 314 not listed

I encountered challenges with various tools and commands essential for the work this semester, especially when navigating unfamiliar processes or configurations. ChatGPT proved to be a valuable resource in helping me understand these concepts. For example, in my final project where I wanted to allow users to upload images as profile pictures, I decided to use AWS S3 to store the images as links that postgres can hold allowing for a much more scalable project. AWS was not something that was discussed in class and AI was very helpful in helping me configure my S3 bucket and CORS to allow for users to be able to actually interact with the bucket through using the application. Whenever I faced errors or struggled with specific tasks, I would input the issue into ChatGPT, which would provide helpful explanations, suggest potential solutions, or guide me through troubleshooting steps. This assistance greatly enhanced my problem-solving abilities and allowed me to work through challenges more effectively.

III. Impact on Learning and Understanding:

My use of AI has always been focused on guiding my learning, rather than replacing it. AI played a crucial role in helping me quickly grasp difficult concepts, saving me the time and frustration of sifting through countless online resources that often offered conflicting solutions. Instead of adding to the confusion, AI provided clear, consistent explanations, which allowed me to understand the material more effectively. It also enabled me to explore topics in greater depth, deepening my knowledge and offering insights I might not have encountered otherwise. By offering step-by-step guidance, AI helped me follow through on complex tasks, breaking down intricate concepts into simpler, more digestible terms. This support enhanced my ability to learn and truly understand the material, rather than just memorizing it.

IV. Practical Applications:

During my time in ICS 314, I worked on HACC and encountered coding concepts that were either not taught in class or had yet to be covered. AI proved to be an invaluable resource in helping me navigate these unfamiliar topics. For instance, I had to work with concepts like useState and useEffect, which weren’t part of the course material at that point. AI helped me understand how these concepts functioned and provided explanations that made it easier to implement them effectively in my code. Additionally, AI assisted me with other coding concepts, such as working with local storage, further deepening my understanding of how to manage data and state in applications. Beyond just learning new concepts, AI was also instrumental in debugging my code. It helped identify errors, suggest fixes, and even provided guidance on creating more efficient and higher- quality implementations, which greatly improved my coding skills and the overall quality of my work.

V. Challenges and Opportunities

While using AI, I encountered several challenges that sometimes made the learning process a bit more complicated. One major issue was the complexity of some of the solutions AI provided. In certain situations, AI would suggest solutions that were more intricate than necessary, whereas simpler and more efficient implementations were available. This sometimes led to confusion, as I had to decide whether to follow the more complex suggestions or seek alternative methods. Additionally, there were limitations with AI, such as when it couldn’t fully understand the context of my problem or provided generic responses. In those cases, I often had to turn to other resources, like Stack Overflow, to find more tailored or specific answers to my questions.

Despite these challenges, AI also offers numerous opportunities to enhance the learning process. One key benefit is the ability to quickly access a vast amount of information and receive immediate feedback. AI can help clarify difficult concepts in real-time, explain topics from different angles, and suggest multiple approaches to solving a problem. It can also offer personalized guidance by adapting to the user’s learning style, which is particularly useful when trying to grasp new and unfamiliar topics. Furthermore, AI has the potential to streamline the debugging process, saving time and allowing learners to focus on improving their coding skills rather than getting bogged down by minor errors. While there are some limitations, the opportunities AI offers in terms of accelerated learning, troubleshooting, and broadening understanding are significant, and its use can greatly complement traditional resources.

VI. Comparative Analysis:

In software engineering education, both traditional teaching methods and AI-enhanced approaches have unique strengths. Traditional methods, such as lectures and discussions, foster structured interaction but can lack personalization, which may impact student engagement and retention. On the other hand, AI tools provide immediate feedback, personalized learning, and adaptive challenges, which enhance engagement and help students retain information more effectively.

While traditional methods rely on in-class exercises to develop practical skills, AI enhances this by offering on-demand coding assistance, debugging help, and personalized challenges. AI allows students to practice and learn at their own pace, leading to more efficient skill development. Ultimately, while traditional teaching methods provide structure, AI-enhanced approaches offer a more tailored, flexible learning experience that can improve both engagement and practical skill development.

VII. Future Considerations:

The future role of AI in software engineering education looks promising, with advancements in personalized learning, real-time feedback, and adaptive coding challenges. AI could help students master complex concepts faster and develop practical skills more efficiently. However, challenges like ensuring the accuracy of AI suggestions and maintaining a balance between AI assistance and independent problem-solving remain. Areas for improvement include refining AI’s ability to explain concepts in a more accessible way and ensuring it complements traditional teaching methods rather than replacing them entirely.

VIII. Conclusion:

In conclusion, integrating AI into my workflow significantly enhanced my learning experience by streamlining the process and providing valuable guidance in understanding complex concepts. AI’s ability to personalize learning and break down difficult topics into simpler, more digestible steps made the material much easier to follow. When used as a tool to support learning rather than replace it, AI can offer numerous benefits, including saving time and reducing confusion. By supplementing traditional learning methods, AI can facilitate a deeper understanding and more efficient problem-solving, making it a powerful asset in the educational journey.