Artificial Learning?

07 May 2024

I. Introduction

Recently, the development of AI and its implementation in software has skyrocketed, creating new functionality and applications for consumers and workers alike. In software engineering, for example, AI is being used to assist in creating and structuring code, with the latest AI software being able to create entire software front to back from a text prompt. A.I is allowing software engineers to create software more efficiently and focus more on the structure of the software and functionality more than all the details on how to implement it, such is the trend of software development and user interfaces. However, some fear that we will become too reliant on A.I applications to do our work.

II. Personal Experience with AI:

In my opinion, for professional software engineers, overuse of artificial intelligence to create software is definitely a concern, especially when small details of how things are implemented matter. AI generated code can also be difficult to maintain because it is written according to a different standard, framework, etc. However, I don’t think that not using A.I applications at all is necesary, as it can save you a lot of time from doing repetitive work. It can also give you an example to work off of. As for my usage of A.I in class, I have used AI in class this semester in the following areas:

  1. Experience WODs e.g. E18 I have used A.I to help me fix eslint errors that I did not understand how to fix, but not to do the entire WOD as I would fall behind without the practice.
  2. In-class Practice WODs Similar to the experience WODS, I only used chatGPT to help me identify errors in eslint.
  3. In-class WODs For the In-class WODS I mainly used chatGPT to help me detect errors in my code. For example, my jamba juice program not outputting what I expect it to. I also used chatGPT as a last resort to do some of the underscore WODS when I could not figure it out and was running out of time.
  4. Essays For my essays, I usually do not use chatGPT to do my essays unless I can’t finish the essay by the due date because I think practicing how to write and articulate your ideas/thoughts is a very important skill no matter what field you work in.
  5. Final project For my final project, I’ve used A.I to help me understand some of the details/complexities of bootstrap and meteor that I missed from the tutorial pages. For example, I used it to help me understand why my card component was not working as I wanted, and the notation to link an image from the path.
  6. Learning a concept / tutorial I’ve used ChatGPT pretty extensively to help me get a surface level understanding of concepts or details I might have missed about a topic. ChatGPT excels at compiling and summarizing important subtopics. It also can give me in depth and personalized answers to any question I may have until I am satisfied. Some examples include what I should do to prepare for a career fair, what do we learn in first semester physics, and how to make a clean reinstall of meteor.
  7. Answering a question in class or in Discord I have never answered a question in class or in Discord, so I have never used AI for that purpose. If I did get stuck while coding, I would ask ChatGPT on how to fix it if I couldn’t understand what the error was.
  8. Asking or answering a smart-question I have never asked or answered a smart question, so I have never used AI for that purpose.
  9. Coding example e.g. “give an example of using Underscore .pluck” An example of my A.I usage in coding would be when I asked ChatGPT how to code in html and css, so it could give me a more summarized rundown/refresher on it.
  10. Explaining code I’ve used ChatGPT to help me understand what could be wrong with my code and how to improve upon it if there are redundancies.
  11. Writing code I often pass in my code into ChatGPT so that it can fix any errors. I typically don’t use it to create too much as it can implement or pull upon functions and methods to solve a problem in a way that I have no knowledge of.
  12. Documenting code I have not used A.I to document code, but thinking about it, I definitely would in the future as ChatGPT would be perfect at adding comments to code and spitting out testcases better than I can, saving me time from doing repetitive work.
  13. Quality assurance I have used ChatGPT extensively to ensure my code is eslint error free and to check if the logic in my code is faulty or not.
  14. Other uses in ICS 314 not listed above All covered in other sections.

III. Impact on Learning and Understanding:

I think that overall, AI has helped me learn better by summarizing information for me to comprehend more efficiently than a google search could at times. Moreover, it has saved me time from getting stuck on trivial things on homeworks or covering things I might have missed. If anything, the amount of time I had to divert to other classes was much more significant as to the difficulty of learning some concepts in the class.

IV. Practical Applications:

Beyond academia, AI finds extensive application in real-world software projects, streamlining development processes and improving efficiency. Collaborative initiatives like the HACC demonstrate AI’s effectiveness in addressing complex challenges, showcasing its potential to revolutionize software engineering practices on a global scale.

V. Challenges and Opportunities:

While AI presents numerous advantages, challenges such as reliance on pre-existing models and potential bias warrant consideration. However, opportunities for further integration abound, particularly in refining AI algorithms to better align with software engineering pedagogy and addressing evolving industry demands.

VI. Comparative Analysis:

Comparing traditional teaching methods with AI-enhanced approaches, traditional methods offer a personal touch, whereas AI brings scalability and efficiency to the table. AI tools engage students interactively, aiding in better retention of knowledge and practical skill development alongside traditional teaching methods.

VII. Future Considerations:

Considering the future, AI’s role in software engineering education is set to grow. With advancements in AI algorithms and tools, we can expect more personalized learning experiences and flexible curriculum designs. However, ethical considerations and ensuring fair access to AI resources are crucial moving forward.

VIII. Conclusion:

Looking back on my experience with AI in software engineering education, I see its potential to reshape learning and development practices positively. By integrating AI as a complement to traditional methods rather than a replacement, educators can enhance student outcomes and prepare them for the evolving tech landscape.

In conclusion, a balanced approach to AI integration in software engineering education, mindful of its implications, will maximize its benefits in shaping the engineers of tomorrow.