AI Utilization: Blessing or a Curse

20 Nov 2023

Introduction


Software Engineering encompasses a wide range of topics to which one must wholly understand in order to succeed. I would not say that it is the easiest subject to comprehend, but it is something that must be dedicated time and effort into explaining, doing by example, and showcasing your work through various means. Though one might be able to fully comprehend the lesson taught through homework and personal example, AI tools such as ChatGPT can solidify a foundation to your knowledge on understanding a topic more clearly as well as even acting as a professor in assisting to change, modify and debug code. These examples that only need to be asked for by a prompt in AI services have gained a considerable amount of attention to the workspace environment whether it comes to jobs or schools. Due to its complex capabilities to render knowledge through thorough scrutinization of a database, one can find ChatGPT to be a lifesaver in some circumstances where it can do more than just research through a browser alone.

The relevance between AI and Software Engineering is vast, and can be accompanied to many processes. Some of these processes include:

These topics along with various others can exemplify the power that Chatbot AI tools can have and how it can have an impact on the user in the environment that it is creating. With many tools at its disposal, the role of AI in software engineering is vast and transformative. Applications span from coding to reliability in projects making it useful in this sense that contributes to an efficient workflow.

Personal Experience with AI


AI usage in the current class ICS 314 has not gone unnoticed. It has been widely used throughout many examples and procedures that were displayed through WODs, experiences, projects etc. I have been a consumer of this AI usage through this class, to help me understand more of how a topic is read, understood and explained through different means as to one that isn’t by a professor or textbook. There are many uses that AI could be utilized throughout this class and many abilities and functions that one may find useful. Some examples of AI usage that I have personally experienced are through experiences. Though the videos at the end of some experiences were enough to generate a core understanding of how the current topic was to be completed, I used AI in the sense to further explain how it was done,, a different way it could be stated or written, or if there were any problems that the video was not able to solve, AI tools would assist me in that sense. Being able to use AI tools in WODs was potentially useful, and can serve as a personal assistant on these mini quizzes, but I did not find the time to use AI completely in this aspect given you were given a certain time limit and I would think that Chatbot AI tools would explain in a different way, one of which you might not understand completely to where you would get the problem wrong completely, and if one part of the prompt is wrong, the whole thing is wrong. It was very crucial on how you structure WODs and I did not trust ChatGPT to help me get through this. Other topics such as essays and other projects were thoroughly useful in practice because it would give a clear understanding, depending on how you worded the prompt to give ideas on the subject and a clear understanding to your issues and problems that you might have. Also of course, the assistance in learning a concept as well as explaining, writing, and documenting code is paramount, and serves as a teacher outside of the classroom. The beneficialness of this function is widely noticed as it has gotten me out of some tight spots at times where I was unable to understand something like “how would I properly use the underscore sum function in this scenario.” or “what are some possible problems that are useful to utilize the sum function?” Quality assurance in coding was mostly fixed through ESLint and had no need of AI to assist in fixing these errors. Mostly, they were able to be fixed without the need of this and was simple to append to the current project.

Impact on Learning and Understanding


AI as a whole has given me a new perspective on learning and how to understand and apply various things. It has helped in comprehension by assisting in better understanding of complex software engineering concepts. Providing contextual information, explanations and real-time feedback has been crucial to comprehension. Through skill development, it has offered various different interactive coding challenges, learning paths, and feedback mechanisms to help me understand the topic more clearly so I would be able to apply it in a different sense. This facilitates hands-on experience, helping to practice and apply theoretical knowledge in practical scenarios. Its problem-solving abilities are also vast and helps with code analyzation and debugging while solving coding issues. This can accelerate the process of problem-solving by suggesting solutions, optimizing code, and guiding the coder in the right direction through troubleshooting steps. AI can also provide additional resources which have helped me in many scenarios through alternative explanations and diverse examples. However there is a catch that I must state within this, if someone were to fully rely on utilization of AI tools without fully grasping the underlying principles, one would not fully understand how a process works and how to fully implement it. Therefore AI would be a negative aspect as the learner would not gain a foundational knowledge on said topic. It is also important to note that it might not get the answer right all the time and it is important to check source credibility as well as reliability so it should not be relied on as a source of information, rather a foundation to which you would expand from. It’s crucial to strike a balance and use AI as a supportive resource rather than a replacement for foundational learning.

Practical Applications


AI outside of the classroom is used very frequently and in almost every environment. These of which I found are including:

Challenges and Opportunities


Although AI does have a specific place in the educational system as a wealthy fountain of knowledge to derive from, there are some challenges that can be faced within the scope of usefulness. As stated above, AI doesn’t always get the answer right all the time. In the realm of software engineering where precise and accurate information is crucial, the nature of AI can lead to ambiguous and often incorrect information. In code context, providing accurate information and programming assistance can be often challenging to chatbots such as ChatGPT, Bard, and CoPilot. It may struggle to interpret complex code structures and might not provide context aware suggestions as I have noticed. Another thing that is limited to ChatGPT but not Bard is the accuracy of current information. A recent update has been implemented to ChatGPT to include information that ranges to the date of January 2023, but anything that is beyond that scope is limited and provided incorrect for ChatGPT. Bard on the other hand always has the most current information available and retrieves it in the process best fit by the inquiry, which differs the two AI systems. In response to varying opinions I have noticed that it can also be biased in race, gender, or other sensitive topics so it’s good to note how AI interprets data according to the user.

Aside from these challenges, there are some opportunities for integration, mainly being on the topic of customization and fine tuning. This would allow for AI sources to improve based on user inquiries to enhance understanding and comprehension of the subject and improve responses based on the user. Feedback within the system is crucial too by allowing the user to rate the usefulness and accuracy of AI generated responses so it can be improved over time. There is already incorporation like this within, by giving AI generated responses a “thumbs up” or “thumbs down” evaluation but something a little more detailed to help the developers understand how to improve is paramount to the enhancement of such capability. Integration in practical projects as well as dynamic and adaptive learning paths are also important as they can tailor educational content based on user needs as well as provide hands-on learning and problem-solving skills. Throughout these challenges and opportunities there should be a balance between AI and human guidance to provide an effective learning experience for the user as well as within AI.

Comparative and Future Analysis


Having a comparative analysis between traditional teaching methods and ChatGPT based approaches reveals distinct advantages and challenges. Traditional methods, characterized by classroom lectures and textbooks, offer structured content delivery but may struggle with student engagement. As instructors might be speaking through means of PowerPoint or reading a script from a paper, a student might not be fully engaged in the topic that is being discussed. In contrast, ChatGPT can leverage conversational AI by enhancing engagement through interactive and personalized interactions. However, the challenge lies in the accuracy of the content as stated above, it may not provide information that is accurate as a textbook would, traditional methods excel in knowledge retention through systematic learning, ChatGPT’s real-time assistance may promote immediate understanding but could compromise long-term retention. Looking to the future, AI in software engineering holds promise for personalized learning paths, adaptive assessments, and collaboration. Advancements in AI can lead to more detailed approaches to certain inquiries and provide context-aware guidance, addressing current limitations. These improvements can involve areas that refine AI models for domain-specific knowledge and integrating them into educational platforms for a cohesive learning experience. The future role of AI in software engineering education and beyond is dynamic, offering transformative potential when effectively harnessed.

Conclusion


Through the above points stated in AI usages, the integration of AI, particularly tools like ChatGPT, in software engineering presents both opportunities and challenges. The dynamic capabilities of AI have been instrumental in enhancing comprehension, skill development and problem-solving abilities. It has served as a valuable resource in various educational processes, from code-generation to autocompletion, to natural language processing and predictive analysis. The personalized learning experience facilitated by AI has impacted my understanding positively, providing contextual information, real-time feedback, and interactive coding challenges. However, a cautious approach is necessary, as relying solely on AI tools without grasping underlying principles can hinder foundational knowledge. Outside the classroom, AI applications are widespread, and include challenges such as the potential for inaccuracies, bias and limitations in interpreting complex code structure. Opportunities then in refinement, and feedback. Hitting a balance between AI and human guidance is paramount and the future for AI I believe holds promise for advancements that can potentially improve social education as a whole throughout the world.