Integrating AI into the Workflow
21 Nov 2023
Overview
AI has become a very powerful tool in the modern world. It has been integrated into many different fields to solve problems and speed up development. Personally, AI tools such as ChatGPT, Bing Chat, and GitHub Copilot have been very useful in my workflow. Depending what I’m doing, these tools work themselves into my workflow with varying degrees of use. I try not to resort to these tools as a first destination for most problems, preferring to go the route of using forums, guides, and API documentation. My typical use case for these AI tools are to get general idea of a topic from multiple sources due to large language model AI’s being trained on multiple data sources, thus having it’s outputs as a somewhat cross referenced statement across multiple sources. Having used AI tools and creating AI models for projects, I can see the power of AI when properly utilized.
Some Personal Experiences with AI
- Experience WODs: My most used AI tool for these are GitHub Copilot. The way I use it is similar to many autocomplete coding assistants for IDE’s, but this time with a more powerful twist. Primarily I use GitHub Copilot as a way to autocomplete singular lines of code such as creating variables and setting them to return value of a function. This is different from most typical IDE assistants as they are only capable of autocompleting singular words. As Experience WODs typically introduce new topics, I prefer to do them myself without using the AI tools too much. Also if I do get stuck, I can refer to the attached videos for help.
- In-class Practice WODs: My use of AI tools for this are nearly identical to those of the Experience WODs. The only difference is that I use them more often due to being more familiar with the topics as they were previously introduced in the Experience WODs and due to the time constraint of the Practice WODs. I use GitHub Copilot to autocomplete blocks of code based on the name objects and functions for items like schemas and collections. This is very useful as it creates the base structure of the object for me and populates it with items it thinks I might need. This speeds up the process because it complete the base structure of everything and since I’m familiar with the topic, I can quickly add or remove lines of code as needed.
- In-class WODs: My use for this are identical to the practices. This is because I like to practice like it’s the real thing. I believe this is good because it gets me more comfortable using the tools in practice so that I know what common errors it makes. This way I know what bit’s of code I should double check more often.
- Essays: As many of the essays focus on personal opinions, I don’t use AI tools too often for them. There are only two situations where I use AI tools, when defining a subject and creating titles. As I write most of my essays for ICS 314 within my GitHub Copilot enabled IDE, it likes to spit out autocompleted text for me. However, this only happens when I’m not typing quick enough and give it time to generate sentences for me. This usually happens when I’m struggling to come up for a way to define a subject like Bootstrap, thus it is given time to generate some text. I will read the generated text it gives and reword it to fit what I had in mind. The second use is to create titles for the essays. I using prompt Bing Chat and ChatGPT to give me funny titles or titles with puns, but I rarely use them due to them not being very good. However, sometimes I see some interesting keywords that it uses in the title and gives me inspiration for a different title.
- Learning a concept / tutorial: Like I stated about the Experience WODs, I prefer to learn new concepts myself without the use of AI tools. However, I do like using Bing Chat and ChatGPt as more advanced search engines when researching topics. I prefer using Bing Chat as it has access to using websites and not just the data it’s trained on. That enables it to quickly look up websites that relate to what I ask it and summarize the contents of the site, it is also then able to embed a link to the source material it is summarizing. This way if I want a more detailed explanation and to double check if what Bing Chat outputted matches the source, I can view and read the source myself. However, do usually always just use Google Search first when I know exactly what I’m looking for.
- Answering a question in class or in Discord: These are always a personal opinion question so I never see the need to use an AI tool to assist me for this.
- Final Project: As stated earlier on how I like to learn. I like to use AI tools like ChatGPT and Bing Chat to gather information like a more advanced search engine. One instance where I used this was to gather a list of libraries that I can use to add a calendar module to one of my pages. Bing Chat was able to give me a whole list of libraries with sources and made it easy for me to browse potential hits without all the fluff in-between.
- Asking or answering a smart-question: As stated before on how I like to learn, I like to use AI tools like ChatGPT and Bing Chat to gather information like a more advanced search engine. However, also due to habit, I usually go to Google and search for forums and tutorials manually.
- Coding example: For this I use ChatGPT, but less of giving me full examples but to find out what functions I can use to accomplish the task. An example of what I like to prompt it with is “what underscore function can I use to only retrieve values under x.” Typically when I prompt it as such, it will also supply me if an example piece of code as well.
- Explaining code: I prefer to go through the code line by line myself and formulate my own explanations on how it works. I usually do this by either looking through the source-code or looking up the API documentation.
- Writing Code: As explained earlier in how I use AI tools for all types of WODs and my final project, I like to use them as a more powerful IDE assistant and as a more advanced search engine. While using them as such, I still apply a sizable amount of scrutiny to the outputted code and information. Thus always double check the outputs before using them.
- Documenting Code: I’ve never used AI tools to document code before. As explained previously, I make sure to understand the code before using it even if it comes from an AI tool. Thus I am able to document the code myself.
- Quality assurance: I don’t use AI tools for this and prefer to fix these issues myself through the use of console errors, console warnings, and error logs. I also like to use the debugger to step through the code and see what is happening at each step. I prefer going about debugging this way as it gives me a better understanding of what is happening and why it is happening. This way I can fix the issue and prevent it from happening again.
- Other Use Cases: Like mentioned before about the essay, I like to use them to come up with funny and interesting titles. Aside from the essay titles, I also used it for inspiration on a title for our organization and web app.
Impact on Learning and Understanding
I believe that overall AI tools have helped to improve learning and understanding experiences. A downside of using AI for learning is that if not used correctly, it takes away from the experience since students are able to copy and past without learning. However, I believe that the benefits outweigh this downside. When used correctly, AI tools can help students learn and understand the topics much faster. With AI tools I am able to get sources faster and get summarized explanations of those sources. This saves me a lot of time weeding out sources that don’t apply to what I’m trying to research.
Practical Applications
AI has as a subject matter has worked its way into many industries with vast potential to expand further. Currently, I have a project that uses AI to detect objects and classify them. This project is done by the University of Hawaii Drone Technologies for a international competition. For this competition my team and I develop a machine vision system to be implemented on a drone for an autonomous package delivery system. I have an extreme interest in autonomous systems and I’ve seen first-hand how AI can contribute to these systems.
Challenges and Opportunities
AI can become a crutch to most software engineers when used incorrectly. I think I’m balancing the use of AI and self directed learning adequately. The key is to not take word for word what the AI tools output without inspecting it first.
Comparative Analysis
Given ample time I do think a traditional teaching system will help students build a better foundation of topics. This is because knowledge can be passed down more meticulously ensuring that there are no errors or misunderstandings. However, this ample amount of time doesn’t exist. AI tools when used for learning can be a great way of filing in most gaps in knowledge is a much shorter time frame. This speeds up learning and allows students to learn more topics that they would otherwise not have the time to get to.
Future Considerations
AI will inevitably be a topic being discussed for many professions, especially software engineers. I think that a interesting and unique solution that can help integrate AI into an education system better are custom AIs made for that purpose. These AIs can be trained on curated information that would be beneficial for students while limiting what the models are capable of outputting. This way students can learn how to use them properly and avoid it being a detriment to their learning.
Conclusion
As AI technology continues to grow, many industries will adopt them as standard practices. I believe it is important not to shy away from the use of AI in education because of the potential downsides and instead try to find ways to incorporate it properly so that students can fully utilize a fantastic tool. Some students will improperly use these tools, but it’s important to teach them how to use them properly. I believe that AI tools are a great way to speed up learning and understanding of topics. However, it is important to not take the output of these tools at face value and to analyze them first.