Enhancing Learning with AI

16 Dec 2024

I. Introduction

Artificial Intelligence (AI) has become an important part of modern education, changing the way students learn. In software engineering, tools like ChatGPT and GitHub Co-Pilot are helpful for things like writing code, fixing bugs, and understanding difficult concepts. During my time in ICS 314, I used AI tools to solve coding problems, improve my work, and better understand key software engineering ideas. These tools made my learning easier and more effective, whether I was writing essays or fixing code.

II. Personal Experience with AI

Experience WODs

I used ChatGPT to help me understand TypeScript better. For example, I asked, “What are the key differences between TypeScript and JavaScript?” ChatGPT explained how TypeScript adds static typing and interfaces, which gave me a clearer understanding of its purpose. I also used it to learn about TypeScript setup by asking, “How do I configure a TypeScript project?” The step-by-step guide on setting up tsconfig.json and compiling code helped me start using TypeScript effectively in my projects.

In-class Practice WODs

For practice WODs, I used ChatGPT to help me write and understand HTML and CSS for UI design using Bootstrap. For instance, I asked, “Can you help me create a responsive navigation bar using Bootstrap 5?” ChatGPT provided a clear example with code snippets. I used this as a guide to create the wanted design, experimenting with classes and styles to match the assignment requirements. This process helped me understand Bootstrap utilities and how to apply them for responsive interfaces.

In-class WODs

During in-class WODs, I occasionally used ChatGPT to help debug my code and figure out what was not working. For example, when a Bootstrap grid layout didn’t align, I asked ChatGPT, “Why is my Bootstrap column not aligning properly?” It provided me possible issues, such as missing classes or incorrect container usage. This allowed me to quickly identify and fix the problem while still following the time limit of the WOD.

Essays

For essay assignments, I used ChatGPT for brainstorming and finding ideas. For example, I asked, “Provide an outline for this essay about why coding standards are important.” The suggestions helped structure my thoughts and made the concept more clear. However, I made sure the final content was original and matched my understanding.

Final Project

In the final project, I used GitHub Co-Pilot for generating code and ChatGPT for debugging while creating an interface for the landing page. For example, GitHub Co-Pilot generated code snippets for setting up a layout using HTML and CSS. When certain elements didn’t display as I wanted it to, I used ChatGPT to debug, asking questions like, “Why is my CSS flexbox layout not centering properly?” ChatGPT helped find issues, such as missing alignment properties, and suggested fixes, which improved the interface’s design.

Learning a Concept / Tutorial

When learning about databases like PostgreSQL, I used ChatGPT to understand its basics and installation process. When following the tutorial from the experience that was provided, the installation did not work, so I turned to ChatGPT for help. For example, I asked, “How do I install PostgreSQL on my system?” and I received a step-by-step guide. These interactions helped me set up and explore PostgreSQL, providing a good understanding for future projects.

Answering a Question in Class or in Discord

In a Discord discussion about PostgreSQL, I noticed a peer’s question about how to install it. To better understand the process, I did some further research on my own and then asked ChatGPT, “How do I install PostgreSQL on my system?” The AI provided a clear, step-by-step guide, which helped me get started with PostgreSQL and how to use it.

Asking or Answering a Smart-Question

I asked ChatGPT, “What’s the difference between const and let in JavaScript?” to better understand their uses and behavior. The AI provided a clear explanation of how const is used for variables that shouldn’t be reassigned, while let is for variables that can be reassigned. Asking these questions to ChatGPT helped me understand concepts more clearly.

Coding Example

I asked ChatGPT to show me an example of how to use Bootstrap icons in HTML. The AI provided a clear example, showing me how to include the Bootstrap Icons library and use specific icons within an HTML file. I used this example to add icons in my project, adjusting it to fit the design of my project.

Explaining Code

When I encountered an ESLint error about having too many characters on one line, I used ChatGPT to help me understand why it was happening. I asked, “Why am I getting an ESLint error for too many characters on one line?” It explained that this error occurs because long lines of code can reduce readability, and it suggested breaking the line into smaller parts. This helped me correct the issue and improve the overall readability of my code.

Writing Code

GitHub Co-Pilot made it quick and easy to write boilerplate code. For example, when setting up authentication routes or importing certain tools for the final project, Co-Pilot suggested snippets that saved time while making sure the code was accurate.

Documenting Code

For documenting code, I found that I didn’t really need AI for this task. I was able to create clear and organized documentation based on my own understanding of the project, without relying too much on AI.

Quality Assurance

When debugging, I asked ChatGPT to, “Fix this ESLint error.” It explained the error and showed me solutions, making the debugging process easier. This saved time and improved the quality of my code.

Other Uses in ICS 314

Sometimes I like to used ChatGPT to show me interview questions, like “What are common software engineering interview questions?” Practicing these questions helped me prepare for any internships or real-world scenarios I might encounter.

III. Impact on Learning and Understanding

The integration of AI improved my learning experience. It allowed for quicker understanding of new concepts, improved problem-solving abilities, and provided immediate feedback. However, my reliance on AI sometimes led to a shallow understanding of concepts, highlighting the importance of balancing AI with personal effort.

IV. Practical Applications

Outside of coursework, many people have used AI tools to help with personal coding projects and hackathons. For example, at a coding event, some may use GitHub Co-Pilot to quickly create basic code to set up a project. This would save time and allowed them to focus on the important parts of their projects. Others used ChatGPT to help fix problems when they didn’t know how to solve them. Getting quick advice from AI helped them stay on track and meet deadlines. These experiences show how AI tools can be useful in real-life situations, helping with both personal projects and work.

V. Challenges and Opportunities

One challenge is that some of the AI-generated responses were incorrect or common, requiring you to double-check the work. Additionally, AI tools sometimes lack context or understanding of specific project requirements, which can lead to suggestions that don’t match the task. However, there are opportunities to add AI into coursework, such as coding tutorials, debugging support, or using AI to provide instant feedback on coding practices.

VI. Comparative Analysis

Traditional learning methods focus on understanding topics through lectures and books. These methods help students build a good understanding that they can use in real-life situations. On the other hand, AI tools offer quick solutions, take on repetitive tasks, and give feedback, which can make learning faster. While traditional methods encourage critical thinking and problem-solving, AI can help improve these skills by suggesting ideas and pointing out mistakes. The main difference is that traditional learning takes more time and effort, while AI tools make learning quicker but may not always help students fully understand the topic.

VII. Future Considerations

AI’s role in software engineering education is expected to grow, with the development of learning systems that can adjust to each student’s needs. These systems could give feedback and help students learn more effectively. AI tools for collaboration might also improve teamwork and communication among students. However, students will have to make sure that they don’t heavily rely on AI for all their assignments. Finding the right balance between using AI and understanding the material will be important for making the most of these tools in our education.

VIII. Conclusion

AI tools have really helped me with my learning, especially in software engineering. They have made it easier to understand topics that were new to me, improve my coding, and work more efficiently. While AI has many benefits, like saving time and giving quick feedback, it’s important to use these tools carefully. Relying too much on AI can sometimes stop us from fully understanding concepts. I believe that AI can be a valuable tool that helps students grow their skills and problem-solving abilities.