Artificial intelligence (AI) has helped me a lot in learning how to code. Within ICS 314, AI tools like ChatGPT and GitHub Co-Pilot played a significant role in enhancing understanding and tackling challenges. These tools proved to be invaluable in tasks ranging from coding assistance to debugging, though their utility varied based on the specific context and task.
During the Experience WODs, I relied on AI for assignments like E18, which focused on functional programming. Despite trying to solve the problem independently, I found myself stuck and used ChatGPT for guidance. While the AI’s suggestions gave me a starting point, it required significant adjustment to align with the task’s requirements. This process highlighted both the value and the limitations of using AI for coding.
For in-class Practice WODs, I avoided using AI, recognizing them as valuable opportunities to hone my skills without assistance. Practice WODs allowed me to simulate real-world coding scenarios where immediate AI help might not always be available. This decision helped build confidence for actual WODs.
In contrast, for in-class WODs like Typescript 3, I used AI. Typescript was entirely new to me, and ChatGPT provided examples and explanations that clarified complex concepts. While the assistance was helpful, it sometimes led to trial-and-error debugging, making the process longer than expected.
When writing essays, I consciously refrained from using AI. Writing authentically allowed me to articulate my thoughts and emotions effectively. This practice ensured that my essays genuinely reflected my personal insights.
For the final project, AI was a vital resource. I used ChatGPT to learn tools like Vercel and GitHub collaboration techniques. Additionally, it helped troubleshoot CSS issues, saving significant time and effort. While helpful, relying on AI required careful validation to ensure the solutions were accurate and aligned with project requirements.
AI became indispensable for learning new concepts like pgAdmin and PostgreSQL. Whenever I struggled to grasp a tutorial, ChatGPT broke down complex topics into manageable explanations. This approach accelerated my understanding and allowed me to focus on practical implementation.
I chose not to use AI for answering questions in class or on Discord. Providing accurate and reliable information was crucial, and I felt it was better to rely on verified knowledge than risk potential inaccuracies from AI-generated responses.
Similarly, I avoided AI when formulating or answering smart questions. Setting personal goals and solving problems independently ensured a deeper understanding and fostered critical thinking skills.
Using AI for coding examples was very helpful to me in practicing newly learned concepts. ChatGPT provided concise examples, but adapting them to specific scenarios often required additional effort and customization.
ChatGPT was helpful for improving code readability, particularly in fixing indentation or resolving ESLint errors. By ensuring the code met standards, AI saved time and improved code quality.
AI was particularly useful for quality assurance tasks. When I struggled to identify issues or fix ESLint errors, ChatGPT provided clear guidance. However, the solutions sometimes required further refinement to meet project-specific needs. It also helped me with writing comments to lines I forgot to put comments, so that my teammates can read codes better.
Beyond the listed tasks, I rarely used AI, as professors and classmates provided ample support. This collaborative environment reduced the need for additional AI assistance.
Incorporating AI into ICS 314 significantly influenced my learning. It enhanced comprehension by providing immediate explanations and solutions, allowing me to focus on application. However, over-reliance on AI occasionally challenged my problem-solving skills, emphasizing the importance of balancing AI use with independent effort.
Outside ICS 314, I have used AI in real-world projects, such as using ChatGPT or Co-pilot to fix any issues related to computers or coding. AI has been effective in automating repetitive tasks and troubleshooting errors, demonstrating its potential to address real-world software engineering challenges.
The primary challenge in using AI was ensuring the accuracy of its outputs. Verifying AI-generated solutions required additional time and effort. Nonetheless, AI presents opportunities for personalized learning and efficient problem-solving, particularly as tools continue to improve.
Traditional teaching methods emphasize foundational understanding and critical thinking, while AI enhances engagement and accessibility. Combining both approaches fosters a comprehensive learning experience, blending theoretical knowledge with practical application.
AI’s role in software engineering education will likely expand, with advancements in natural language processing and machine learning. However, fostering ethical AI use and balancing reliance on technology with independent learning is very important.
Reflecting on my experiences, AI has been both a powerful help source and a learning curve in ICS 314. Its integration has streamlined problem-solving and improved comprehension, though it requires thoughtful application to maximize its benefits. For future courses, blending AI with traditional methods can create a well-rounded, effective educational experience.