AI and I: My Journey with AI Tools

07 May 2024

I. Introduction

My experience with integrating Artificial Intelligence (AI) into my software engineering education has been a journey of discovery and enhancement. Utilizing AI tools in the classroom has provided me with insights and practical aids for learning complex concepts, coding, and problem-solving. This personal exploration delves into how I used AI and how it complements traditional educational methods by offering tailored learning experiences. These tools enhance my understanding of challenging concepts, provide grammar checks, assist in organization, create plans to approach problem sets and serve as a troubleshooting resource.

II. Personal Experience with AI:

I have used AI in class this semester in the following areas:

  1. Experience WODs, e.g., E18: AI was used only for technical issues when I couldn’t find a solution through Google searches. For example, during the initial setup of Meteor and MongoDB, I received error messages and couldn’t figure out why. When I searched on Google for a solution, it didn’t seem like a common error message. Therefore, I turned to ChatGPT to translate the error message and guide me through troubleshooting the issue.

  2. In-class Practice WODs: I did not need AI because the in-class practice WODs (Workouts of the Day) focused on collaboration, creating a low-stress environment.

  3. In-class WODs: I used AI when I was unsure how to start or was stuck on an issue. I would use the prompt, ‘Act like an expert in x,’ replacing ‘x’ with whichever subject we were learning. I provided background information for the WOD and copied and pasted the section of the instructions where I needed assistance. Sometimes, AI provided an adequate solution, while other times, it did not work out in my favor.

  4. Essays: A technical essay requires a creative title to draw in readers. In this regard, AI helped inspire me to create a title that captured the essence of my essay in an entertaining way. AI also reviewed my essay for grammar, clarity, coherence, and organization.

  5. Final project: In this case, I did not use AI; team collaboration, walkthrough videos, and online resources were sufficient for completing the project.

  6. Learning a concept/tutorial: AI is useful for understanding concepts or multi-step processes. I would ask AI to explain these concepts simply, as if to a 5-year-old. Having AI break down an idea into simple terms helps me grasp the overall topic, allowing me to review it again. An example of this would be understanding the roles and functions of Digital Ocean, Studio3T, MongoDB, and Meteor in the final project

  7. Answering a question in class or in Discord: During in-class discussions, we were encouraged to use AI to find answers to questions related to the concepts learned that week. We would then compare these answers with results from Google, Bing, or the lecture. This exercise was useful in identifying discrepancies and determining whether the answers were flawed or valid.

  8. Asking or answering a smart-question: I did not use AI because I neither asked nor answered any smart questions.

  9. Coding example e.g. “give an example of using Underscore .pluck”: I cannot recall the exact coding example I requested from ChatGPT. However, asking for coding examples helps in understanding Underscore and other topics.

  10. Explaining code: I used AI as an interpreter for blocks of code when I needed help understanding their purpose and function. I would copy and paste the code and ask, ‘What does this mean?’ or ‘What does the following code do?’ This approach helped improve my understanding of what was happening in the code.

  11. Writing code: AI can be helpful in writing code by providing a template or guide. However, the code may need to be edited to ensure it achieves the intended goals.

  12. Documenting code: I did not use AI in this case.

  13. Quality assurance: I did not use AI in this case.

  14. Other uses in ICS 314 not listed above: Non-applicable.

III. Impact on Learning and Understanding:

Using AI in my learning journey has transformed how I grasp and interact with new information. This technology, offers a personalized learning experience that resonates with my own pace and style. It is like having a tutor who simplifies complex concepts into smaller, more manageable pieces, making tough subjects much more approachable. The immediate feedback and interactive nature of AI have made my study sessions more effective. I’ve become more willing to explore and be creative with my learning. Nevertheless, I’ve learned the importance of critically assessing the information it produces, ensuring I maintain a healthy balance between leveraging AI’s capabilities and honing my own critical thinking and software engineering skills.

IV. Practical Applications:

AI has extended beyond software engineering, proving itself a versatile tool in numerous sectors. For example, in healthcare, AI-driven systems analyze vast amounts of medical data to assist in diagnostics and personalized medicine, improving patient outcomes. AI powers autonomous driving systems in automotive industries, enhancing safety through real-time decision-making capabilities. In environmental science, AI aids in climate modeling and predicting extreme weather events, providing critical data that helps mitigate disaster risks. The effectiveness of AI in these real-world applications often hinges on its ability to handle complex computations and large datasets more accurately than humanly possible, significantly advancing our capability to tackle complex engineering challenges in software and beyond.

V. Challenges and Opportunities:

Throughout my course, the use of AI has presented both challenges and opportunities. One of the main challenges has been ensuring that the AI systems provide accurate and contextually appropriate solutions. Sometimes, the output can be too generic or irrelevant to the specific software engineering problems at hand, requiring additional oversight and critical evaluation. Additionally, integrating AI tools seamlessly into the learning environment often demands a robust technical setup and a steep learning curve for both students and educators. Despite these hurdles, the potential for further integration of AI in software engineering education is vast. AI can offer personalized learning paths, simulate complex software engineering problems, and provide real-time feedback, which could revolutionize how students learn and apply software engineering principles. Furthermore, AI-driven analytics could help educators tailor their teaching strategies based on individual student performance, enhancing educational outcomes profoundly.

VI. Comparative Analysis:

Traditional methods like lectures and hands-on labs emphasize structured learning and real-time interaction in software engineering education, fostering collaboration and immediate feedback. However, they may lack adaptability and scalability. AI-enhanced approaches introduce customized learning experiences and simulations of complex real-world problems, potentially increasing engagement and knowledge retention. These tools can offer diverse scenarios for practical skill development, but they sometimes struggle to foster the critical thinking that seasoned educators bring. Integrating both methods could combine structured, interactive learning with AI’s dynamic capabilities, creating a more rounded educational experience.

VII. Future Considerations:

The future role of AI in software engineering education appears promising but also comes with challenges. As AI technology advances, it can provide tools for personalizing learning experiences, simulating complex software systems, and automating feedback on student projects. However, the main challenges will likely involve ensuring the AI’s outputs are relevant and accurate and integrating these tools seamlessly into the curriculum without displacing critical human elements of teaching, such as mentorship and ethical guidance. Continued improvement in AI’s interpretability and decision-making processes will be crucial. Overall, AI has the potential to significantly enhance how software engineering is taught by complementing traditional methods with scalable, and interactive tools.

VIII. Conclusion:

In my personal experience, using AI in this class has been invaluable in helping me understand complex concepts, providing coding guidance, and serving as a resource for troubleshooting. AI offers dynamic and personalized learning experiences, which can enhance engagement and practical skill development. However, challenges remain in ensuring the accuracy and relevance of AI outputs and maintaining the essential human elements of education, such as direct interaction and ethical oversight. As AI technology evolves, it holds great promise for augmenting educational frameworks, but it also requires careful implementation to truly complement and enrich the traditional educational landscape.