Artificial intelligence is a crucial aspect of Software Engineering that has greatly influenced the field in several ways. A tool that I have utilized often is ChatGPT, which is an open and free to use AI program. You may ask it practically any question and it will provide an answer or a solution to the best of its abilities. Unfortunately it can be used in potentially negative ways, although if done correctly AI becomes an important asset in software development.
An effort was made to program primarily with given information or problem-solving skills. However there are many cases where I have used AI as support to a certain degree. With the experience WODs, I often was able to use the underscore website for the help I needed, but ChatGPT was able to further my understanding on some problems. Sometimes the solution given was a little more complex than necessary, but it would help give me more insight on how to solve the problem. Majority of the in-class practice WODs were relatively easy to me and I would only sparsely use ChatGPT to help remind me of how a certain part of code worked. There were certainly times that ChatGPT would save me in the In-class WODs, especially if I forgot what function I needed to use or other things. It was unnecessary to use AI with writing the essays, they were simple and just a test of knowledge or a reflection on my experiences. The final project did not really require me to use ChatGPT at all because I mostly had the old digits experiences and other examples to help me.
For learning concepts or tutorials, AI was able to cement some ideas or sections together and helped provide different examples on how things worked. I have not used AI for answering a question in class or in Discord, mainly because other more knowledgeable people would give advice or solutions to problems for us. It’s much easier to ask a person for help with troubleshooting rather than an AI. In the case of asking or answering a smart question, AI never seemed necessary and it was much better coming up with the question or answer on my own. Here is an example of using Underscore .pluck: let props = _.pluck(list, propName);. That is a very generic use of .pluck, but the idea is that given a list/array you can take out specific data points from a list and assign them to a variable. When trying to explain code AI was extremely helpful, especially when I had an overall idea of how a program works but needed help explaining individual components. Once again AI can be implemented to write code really efficiently. It has helped me with writing code for assignments and/or WODs as well as just making the overall coding process faster in general. Documenting code never required me to use any AI for support when doing it. Quality assurance was something I struggled with many times and currently still do. Having the ability to copy and paste my error code straight into ChatGPT to get an idea of the problem was super helpful. There are other areas I use AI with help in, most notably creating efficient study guides for classes/tests. Generally I tried my best to avoid using too many outside resources for aid with my academics in ICS 314. There were multiple times I found myself either stuck on a problem or had a hard time starting my code. Artificial intelligence if used correctly can be an extremely supportive tool to software developers. For that it is vital that you fully understand any code obtained from AI before simply copy-pasting it straight into your program. That said, when it comes to the necessary skills for software engineering, a lot can be learned from AI and it has the potential to significantly boost your ability to learn any related concepts.
Practical applications for artificial intelligence are numerous as it improves slowly over time. There are many ways we can use AI to increase productivity, with the most important being min-maxing. Which is a term for cutting out inefficiencies to streamline processes that might take long. For instance, it can help greatly with code redundancy; any simple code that is already understood could be written quickly by the AI with the correct prompt. There have been scenarios where I found it difficult to use AI and I could never quite get the answer I was looking for. Thus, I believe there is potential to further integrate the usage of artificial intelligence in software engineering education. It can be encouraged and the correct method to use AI can be taught to students.
In the bounds of software engineering education there are fundamental topics like engagement, knowledge retention, and practical skill development. Enhancing teaching and learning with AI can keep people engaged through a somewhat interactive learning environment. You can actively ask the AI questions and not have to rely on one professor trying to go to every student. Due to the fact that you can use AI as a sort of library to access data at your convenience, it helps with retaining knowledge. Personally it has helped my practical skills development through familiarizing me with successful coding patterns or structures.
The future of AI is practically limitless and technology can change very rapidly in a short amount of time. As the use of artificial intelligence is encouraged in the ICS 314 class as long as it is reported, I think the importance of its role will only increase. There is the challenge of students relying too heavily on AI for their classwork. Which is the one area of improvement that schools need to work around through regulation and proper teaching methods.
To summarize, there are countless factors that must be taken into consideration with the topic of artificial intelligence. The usage of it can be very beneficial as long as you are in the correct mindset and use it in moderation. Colleges and schools can implement AI into the curriculum of software engineering related classes to enhance education. My time spent coding and working in this class has been much easier, interactive, and consistent with the use of AI. At first I was surprised that it was allowed for assignments in this class and initially tried to avoid the use of it. Once I felt like I needed it the experience felt beneficial and essential to exceeding in areas I previously got stuck at. There are a mix of pros and cons to this topic that make it so intriguing and essential to discuss at this time.