Many parents of K-12 students have asked me how much programming their student should know to make progress on AI. In this article we cover the relationship between AI and programming, how AI tools and other programs work together, and what programming your students should learn to make the most progress with AI.
What is Artificial Intelligence?
Artificial Intelligence is about creating computer programs that can do things that human brains usually do. Examples are recognizing images, understanding text, finding patterns in examples, mapping solutions to problems, creating game strategies, etc. Artificial Intelligence programs usually start by Training (or Learning), and then apply the learning to solve new problems, or Predict what is going to happen next.
Examples of what you can do with Artificial Intelligence:
- You can build a personal digital assistant like Alexa who can answer questions and play music for you.
- You can detect objects in images. Self driving cars use this to help navigate.
- You can detect fraud. Financial companies use this to detect whether a credit card has been stolen.
How are Artificial Intelligence and Programming (Coding) Related?
Programming is about using various languages (programming languages) to write computer programs to perform any kind of tasks, which can include artificial intelligence types of tasks like learning and predicting, or robotics tasks like making a robot raise its arm or move a wheel. With programming, you can also get a computer to do pretty much anything that you describe as a set of steps, like write games, do math, etc.
You can do Artificial Intelligence without programming, but you can also write programs to build new AI based applications, or interact with AI methods. For example — you can train an AI method to understand text and how you are feeling, and then use programming to build a chatbot out of this AI method. Besides programming, artificial intelligence can help you learn about logic, how decisions can be made, about math, and, most importantly, about how to find patterns in examples.
Artificial Intelligence benefits from programming. The more you can program, the fancier the things that you can do with Artificial Intelligence.
What types of Programming Will I do with AI?
A common misconception is that programming in AI is used to make the actual algorithms that learn from the data. This is rarely true. Thanks to the massive development of AI in the last ten years, many algorithms (AI methods) from simple to very advanced have already been built. Programming an algorithm from scratch is only done if you want to learn how to do it, or you are building a brand new type of AI (as some researchers do). The vast majority of people use coding to interact with the algorithm:
- Coding can be used to process the data, clean it, transform it, or generate new data to learn from. For example, if you have three tables of data that need to be merged to one table before the AI can learn, you will write a program to do that.
- Coding is frequently used to build applications that use the AI. For example, if you have an AI that can predict the weather, you may use coding to build a website for weather prediction.
What Programming Skills should the student have? In what languages?
You can think of your student’s programming journey as happening in parallel with their AI journey:
Step 1: Build an AI and use it
To build an AI and use it on a web browser using programs like http://aiclub.world, you do not need any programming knowledge. For example, your student can take the AIClub AI courses for Elementary, Middle and High School and learn AI, without any programming knowledge. They can do this because they can use modern tools to build the AI in a web browser and they can also use, interact with, and improve the AI using browser tools.
Step 2: Build a smart application that uses AI
If you want to build a smart application like a chatbot, you will need to know some programming. What type of programming and what language depends on the type of application you want to build. For example if you want to write an application program in python, you will need to be able to write a python program of at least 20–100 lines, and know how to get input from a command line or a file, how to perform loops or if/then statements, and how to print to a console or a file.
You can progress a very long way in AI with just this level of knowledge, by learning different types of application programming. For example:
- If you learn how to build a mobile application, you can build a smart mobile app by integrating AI.
- If you want to build a smart web application, you will want to learn some HTML.
- If you want to build simple AI applications, even a language like Scratch is enough.
- You can also learn other technologies like Arduino, and build hardware projects with your AI.
Note that what you learn about these application developments do not need to change to use AI in the application. The process of adding AI to the application is fairly simple. What you need to focus on is the application itself.
To do cool things with AI and programs, check out AIClub’s project courses and self paced projects like this one.
Step 3: Do research projects and advanced AI applications
By now you have been able to build AIs, tune and improve them and connect them to applications. If you want to customize your datasets, there are a large number of software libraries that can do things like normalize, shuffle your data etc. You will want to learn these, for example, if you decide to do a research project with AI.
Python is the best language to learn to prepare for this. A very large number of libraries exist for Python, and many AI tools have a Python interface. Other languages that you can learn that also work are Java and Scala.
Step 4: Run production AI and beyond
At the next step, you will want to do the same kinds of things with your AI that professionals do. To do this, there are some coding technologies you will want to be familiar with. The first is a good working knowledge of python. You will also benefit from learning software technologies such as Github, and Docker.
In summary, there is a strong symbiotic relationship between AI and programming. With programming, you can build great applications that use AI, and AI can make any application you build more intelligent with new capabilities.