Reflecting on My Use of AI in ICS 314
14 Dec 2024
Reflecting on My Use of AI in ICS 314
I. Introduction
Artificial Intelligence (AI) has emerged as a transformative force in education, particularly in fields like Software Engineering, where problem-solving and iterative development are paramount. During my time in ICS 314, AI tools played an indispensable role in my learning and productivity. I relied extensively on ChatGPT and ClaudeAI, using them daily for assignments, WODs, and the final project. These tools served as a 24/7 assistant, mentor, and problem-solving resource, significantly shaping my approach to the course.
II. Personal Experience with AI
My engagement with AI in ICS 314 spanned various course elements, each presenting unique challenges and opportunities. Here is a breakdown of my experiences:
- Experience WODs (e.g., E18): For timed WODs, I initially attempted the tasks independently but often resorted to AI to generate solutions when I got stuck. For example, when completing a functional programming WOD, I asked ChatGPT, “Can you write a function using underscore.js to implement these instructions?” AI was highly effective in providing accurate starting points and explaining its solutions, though its usefulness diminished if I couldn’t grasp the underlying concept quickly.
- In-class Practice WODs: During practice WODs, I used AI to understand how the code should function before attempting the exercises. For instance, I asked ClaudeAI, “Explain how to use underscore.js’s pluck function with an example.” This allowed me to reinforce my understanding and complete the exercises efficiently.
- In-class WODs: The tight time constraints of these WODs made AI invaluable. While I tried to complete them independently, AI acted as a fallback, helping me debug errors or clarify concepts quickly.
- Essays: For essays, I used AI to draft initial ideas and refine my writing. For instance, when writing about coding ethics, I asked, “What are some ethical considerations in software engineering?” AI helped organize my thoughts and supplement areas where I lacked depth.
- Final Project: The final project demanded a comprehensive understanding of Prisma and PostgreSQL. AI was instrumental in guiding me through setting up CRUD operations and database integrations. For example, I asked ChatGPT, “How do I use Prisma to connect to a PostgreSQL database and perform CRUD operations?” However, AI fell short when resolving deployment issues—specifically, my website was static because I hadn’t implemented getServerSession. This forced me to consult other resources, including peers, highlighting AI’s limitations in solving complex real-world problems.
- Learning a Concept/Tutorial: AI accelerated my learning process. For example, I used it to understand middleware by asking, “What is middleware in Express.js, and can you provide a simple example?” The explanations were clear and supplemented the course material effectively.
- Answering Questions in Class or Discord: AI helped me answer questions posed by peers. For example, when asked about ESLint errors, I used ChatGPT to explain the issue and suggest fixes.
- Asking or Answering a Smart Question: AI helped me craft precise questions by clarifying my understanding beforehand. For instance, I asked, “Why does this code cause a CORS error, and how can I resolve it?”
- Coding Examples: When I needed examples of advanced JavaScript features, AI provided quick, relevant snippets. For instance, I asked for a practical example of the .reduce function.
- Explaining Code: I used AI to explain complex snippets by asking, “What does this piece of code do, and why is it written this way?” This improved my ability to articulate my understanding.
- Writing Code: For most coding tasks, I relied on AI to generate starter templates or troubleshoot errors. For example, I used it to write an API endpoint for retrieving data from a PostgreSQL database.
- Documenting Code: AI helped me write detailed comments and documentation. For instance, I asked, “How do I document this function for JSDoc?”
- Quality Assurance: Debugging was one of AI’s strongest areas. I often asked, “What’s wrong with this code?” and provided a snippet. AI’s feedback was instrumental in identifying logic errors and ESLint issues.
III. Impact on Learning and Understanding
AI fundamentally transformed my learning experience in ICS 314. It enhanced my comprehension by breaking down complex topics like Prisma and PostgreSQL. The speed at which AI delivered solutions allowed me to focus on understanding rather than troubleshooting. However, there were moments when AI’s over-reliance risked undermining my problem-solving skills, prompting me to balance its use with independent effort.
IV. Practical Applications
Beyond ICS 314, I utilized AI for HACC, where it guided me in learning AWS and other tools outside the course’s scope. These efforts contributed to our team’s second-place finish in the competition. Additionally, AI supported my studies in Data Structures and Algorithms, demonstrating its versatility across domains.
V. Challenges and Opportunities
While AI offered numerous benefits, it wasn’t without challenges. Its inability to resolve deployment issues, such as the static website problem caused by missing getServerSession, underscored its limitations. This revealed an opportunity to integrate prompt engineering and troubleshooting techniques into the course, enabling students to use AI more effectively.
VI. Comparative Analysis
Traditional teaching methods emphasize foundational knowledge and manual problem-solving, fostering a deeper understanding. In contrast, AI-enhanced approaches prioritize speed and efficiency. While AI accelerates learning, traditional methods remain critical for developing problem-solving resilience. Combining both approaches creates a balanced and effective learning environment.
VII. Future Considerations
The role of AI in software engineering education will only grow. Courses should incorporate AI-specific training, such as prompt engineering, and highlight ethical considerations in its use. As AI evolves, it will become an even more powerful tool for accelerating development and fostering innovation.
VIII. Conclusion
AI has revolutionized my experience in ICS 314, serving as both a mentor and an accelerant. While it has its limitations, its potential to enhance learning and productivity is undeniable. Future courses should embrace AI’s strengths while addressing its weaknesses, ensuring that students are prepared to thrive in an AI-driven era of software engineering.