AI, or Artificial Intelligence has transformed learning, enriching the student learning experience by providing tools and techniques. These tools and techniques optimize time and bridge the gap between the learning and the working sides of software engineering. In software engineering, AI automates repetitive tasks, in that it provides intelligent analysis that contributes to a software engineer’s productivity and creativity. Some AI concepts and tools include machine learning, automated testing, and collaboration tools like Liveshare in vscode. I personally use ChatGPT to enhance my software engineering learning.
Experience WODs: For the E20 Experience Functional Programming 3, I asked ChatGPT “Write a function using array functional methods that pasted two function explanations.” The result was similar to what I needed except for certain syntax erros I needed to fix.
In-class Practice WODs: I pasted the instructions into ChatGPT to see what it would give me. Most times it would result in a lot of syntax errors.
In-class WODs: Similar to the In-class practice WODs, I pasted the instructions into ChatGPT to see what it would give me. Most times it would result in a lot of syntax errors. I noticed that AI most definitely helped with the structure of the code, but I needed to generally know the skills in order to fix the errors.
Essays: I chose not to use AI for essays since I thought essays would make more sense if it came from me since most of the essays were tailored to personal experience.
Final project: I used ChatGPT to provide me ideas of the mockup pages given some guidelines I liked from the web but weren’t quite what I wanted. I would not have been able to produce the mockups I had in mind if it wasn’t for AI since the alternative was just creating the pages without the mockups.
Learning a concept / tutorial: I used ChatGPT by asking “provide me an example of x concept.” It definitely helped me understand the general idea and steps to the concept. However, I noticed that sometimes ChatGPT would give me a wrong answer or a wrong step, so I had to make sure I referenced with website examples.
Answering a question in class or in Discord: I did not use AI for this since I feel that I am good at asking questions and being articulate in my issues. I often provide images of issues when I needed help from a teacher as well.
Asking or answering a smart-question: I did not use AI for this since I had little need to only communicate through discord or online. When I had an issue with ruby in the github configuration for the professional portfolio, I met with my professor to get this figured out.
Coding example: I asked ChatGPT to “give an example of using typescript how to print length of array.” This was to aid in an assignment to iterate through and analyze mass data.
Explaining code: I did not use AI to explain code because I try to read through it and understand it myself. This is definitely something that I should start implementing in my learning since trying to figure it out by myself is just a senseless struggle.
Writing code: I often ask ChatGPT to give me examples of code and for the WODs, I would ask AI to solve it as a starting point to the assignment.
Documenting code: I do not use AI for documenting code. I either forget to document my code or when I remember, I just do it myself. This is also another element that I should be using AI for to optimize my time and be more efficient.
Quality assurance: I ran into a very large issue with my professional portfolio github ruby configuration. I asked ChatGPT “what is wrong with my code?” and it gave me a very lengthy explanation as to why ruby didn’t work. It told me to download something and to change the configuration. When I worked with my professor to fix the error, the fix was a simple line of code instead. Other than this one instance, using AI to ask what is wrong with code definitely helps with syntax and logical errors.
Other uses in ICS 314 not listed: I was actually able to use ChatGPT to write code to create a webpage based on an image which was extremely time effective. As a general rule, regardless if I use AI or not, I try my best to ensure that I understand what I am producing.
The incorporation of AI has definitely influenced my learning experience. I am able to comprehend concepts faster, developing my skill more efficiently, and enhance my problem-solving abilities. AI technologies have enhanced my understanding of software engineering concepts in that I am getting a real understanding of the working field of software engineering. With the growing rate of AI usage and proficiency, it only makes sense that learning with AI sets us up for the real world where people almost have to use it to stay relevant. It is so important to learn and grow with the times than to challenge it and learning how to use it is the first step.
A practical application of AI in the real world is Netflix’s content recommendations. This content recommendation suggests movies and TV shows that are tailored to each user based on data such as watch history, ratings, and user behavior. This algorithm continuously learns from the user interacting with Netflix, adjusting recommendations in real-time. This definitely addresses the software engineering challenge of repetitive tasks that are now automated.
I have encountered a challenge with AI where it is not always right. AI pulls information it has available and this information that is fed into AI is not always correct. The AI does not always have a filter for what is “correct” in the real world other than what it is told. Perhaps a potential opportunity for further integration of AI in software engineering education could be a more tailored lesson in how to use AI. For example, knowing that AI is not always right and learning how to effectively guide AI is the basis of AI usage. Students need to learn to help AI help you.
Traditional teaching methods and AI-enhanced approaches in the context of software engineering education are vastly different. Traditional teaching methods are very basic understandings of code, are time consuming and inefficient, and has a steep learning curve. However, it does result in students with a deeper understanding of how code runs and how to fix bugs yourself. On the other hand, AI-enhanced approaches are with the times and lead to exponential learning progress. However, there is the risk of students becoming AI dependent and unable to understand code without the help of AI resulting in lower proficiency in the coding skill. Traditional methods are often less engaging compared to AI-enhanced methods. When used right, both traditional methods and AI-enhancing methods build knowledge retention and practical skill development. A blend of both is the most optimal learning tool instead of one over the other.
AI is absolutely essential in the future of software engineering education. The real world uses AI, so if we never learn how to effectively use AI, we will forever be a step behind and need to catch up. Learning how to use AI ethically and correctly in school is the set up of how the next generation will use AI in the software engineering working field. It is important to note that there are challenges with AI potentially resulting in low competency with basic software engineering skills compared to the last generation. There are going to be constant areas of improvement in learning how to teach AI usage in software engineering, but we are making positive progress.
The use of AI in software engineering courses has had an impact on learning and development. AI tools like ChatGPT have enhanced my ability to quickly understand concepts, solve problems, and optimize my workflow. From assisting with coding tasks and generating ideas for mockups to providing explanations of concepts, AI has proven to be a powerful companion. However, the experience has come with challenges such as the need to evaluate AI’s outputs due to occasional inaccuracies.
Ai has served as a bridge between academic learning and real-world software engineering practices. Its ability to automate repetitive tasks and provide informed feedback showcases the tools and processes used in professional environments. The integrations has not only enriched my technical skills but also prepared me to navigate the evolving demands of the software engineering field. A recommendation to improve the integration of AI in future courses is to incorporate AI education into the curriculum on how to effectively use AI tools. Students should learn to guide AI inputs, evaluate outputs, and combine AI assistance with knowledge.