Reflection on AI

15 Dec 2024

I. Introduction

AI is becoming an important part of education, especially in software engineering. It helped me learn by making coding easier and solving problems faster. AI tools can automate tasks like fixing bugs, generating code, and improving workflow, which allows us to focus on more challenging work. In ICS 314, AI tools played a big role in helping me write cleaner code, understand programming concepts, and save time on repetitive tasks. One of the tools I used was ChatGPT, which helped me generate code, fix errors, and understand JavaScript and TypeScript concepts. AI-based features like code autocompletion (Co-Pilot) in editors such as Visual Studio Code also made writing code faster and easier. These tools improved my productivity and made me more confident in building projects.

II. Personal Experience with AI

WODs were challenging yet rewarding experiences that taught me to code efficiently under pressure. Whenever I encountered an issue, AI tools like ChatGPT helped me identify errors quickly or clarify tricky concepts, which improved my problem-solving and time management during these timed exercises.

Practice WODs provided a low-stress environment to sharpen my coding skills. AI tools like Visual Studio Code’s autocompletion suggestions streamlined my workflow, helping me write clean, functional code while preparing for graded WODs.

Writing essays gave me an opportunity to reflect on what I learned and explain concepts in my own words. If I struggled with articulating an idea, tools like ChatGPT helped me organize my thoughts clearly and expand on key points.

The final project, where I built a working website, allowed me to combine everything I had learned. AI tools played a key role in solving coding challenges, debugging issues, and improving overall project quality. ChatGPT served as a coding assistant, offering explanations or code snippets when I needed guidance.

Tutorials and new concepts sometimes felt overwhelming, but AI tools like ChatGPT simplified complex explanations and provided examples. This made learning TypeScript, JavaScript, and ESLint more approachable and easier to implement.

When asking questions, AI tools helped me double-check my understanding to ensure I provided correct and thoughtful questions. This boosted my confidence in asking a ‘SMART’ question.

When I asked smart, well-thought-out questions, AI tools helped me refine my queries and dig deeper into a problem.

AI tools helped me quickly generate and test coding examples, like using the .pluck function in Underscore. This allowed me to better understand how these examples worked and reinforced my own learning.

Explaining code became easier with AI tools that provided alternative explanations or clarified my reasoning. This improved my ability to communicate technical ideas effectively.

Writing code consistently was central to ICS 314. AI technologies helped me write cleaner, error-free code by providing suggestions, catching mistakes, and saving time when implementing repetitive functions or solving bugs.

Documenting code taught me the importance of writing clear comments for others to understand. ChatGPT assisted by suggesting concise and effective documentation practices that improved my overall code readability.

Beyond coding and debugging, AI tools helped me brainstorm ideas, improve project designs, and practice problem-solving. They became a reliable resource that enhanced my overall learning experience in ICS 314.

III. Impact on Learning and Understanding

The incorporation of AI has significantly influenced my learning experience in ICS 314, particularly in comprehension, skill development, and problem-solving. AI tools like ChatGPT have been incredibly helpful in simplifying complex software engineering concepts, such as JavaScript and TypeScript. Whenever I struggled with understanding a specific topic, AI provided clear explanations and guidance that made learning faster and less frustrating. This enhanced my comprehension and allowed me to focus on applying what I learned rather than getting stuck.

AI technologies also played a big role in my skill development. Code suggestions in Visual Studio Code improved my efficiency by helping me write code faster and with fewer errors. These tools acted like real-time mentors, teaching me to adopt better programming habits. Additionally, AI strengthened my problem-solving abilities by offering hints and solutions when I hit a roadblock, without simply handing me the answer. This process encouraged me to think critically and learn from my mistakes. Overall, AI has enhanced my understanding of software engineering concepts by acting as both a tutor and a tool, supporting me throughout my coding journey and helping me grow as a developer.

IV. Practical Applications

Outside of class, AI has proven to be a powerful tool in real-world projects, simulations, and collaborative activities, particularly in software engineering. For example, AI-driven tools are widely used in code review and bug detection, helping teams identify errors or vulnerabilities in codebases much faster than manual methods. Platforms like GitHub Copilot can assist developers by suggesting code completions and providing solutions to common programming challenges, which accelerates development workflows and reduces repetitive tasks.

In real world simulations, AI has been used for predictive analysis and testing. For instance, machine learning models can predict software performance under various conditions, ensuring robust and efficient systems before deployment. Collaborative tools also integrate AI to streamline project management, optimize team productivity, and automate tasks like documentation and dependency management. This reduces overhead and allows engineers to focus on solving complex problems.

The effectiveness of AI in addressing real-world software engineering challenges is undeniable. It improves efficiency, accuracy, and consistency while reducing human error and saving time. By automating routine tasks and offering intelligent solutions, AI enables developers to tackle larger-scale problems, innovate faster, and deliver higher-quality software.

V. Challenges and Opportunities

One challenge I encountered with AI in the course was its occasional tendency to provide overly generic or incorrect solutions, which required me to spend extra time verifying and debugging the output. Relying too heavily on AI also risked limiting my critical thinking if not used carefully.

Despite these limitations, there are significant opportunities for further integration of AI in software engineering education. AI could be used to create personalized learning experiences, offer real-time feedback during coding exercises, and simulate complex software scenarios for better hands-on practice.

VII. Future Considerations

The future of AI in software engineering education holds great potential. Advancements in AI tools could enable more personalized learning experiences, where students receive real time feedback tailored to their coding style and areas of improvement. AI powered simulations and virtual environments could offer hands-on practice with complex systems, helping students better understand real world software development scenarios.

However, challenges remain. Over-reliance on AI may limit critical thinking and problem solving skills if students depend too much on automated tools. Ensuring AI outputs are accurate and reliable will also be essential, as errors or misinformation can hinder learning. To address this, educators must emphasize AI as a supplement to learning, not a replacement for core skills.

VIII. Conclusion

The use of AI in the Software Engineering course greatly enhanced my learning by simplifying complex concepts, improving coding efficiency, and aiding in problem-solving. Tools like ChatGPT provided quick explanations and solutions, while code suggestions streamlined development. However, challenges such as over-reliance on AI and occasional inaccuracies highlighted the need for balanced usage. To optimize AI integration in future courses, I recommend incorporating AI tools as learning aids alongside traditional problem-solving methods, ensuring we develop critical thinking skills while benefiting from AI’s efficiency.