AI Programming Introduction and Resources
When the term Artificial Intelligence (AI) is mentioned, most of us immediately think of the self-aware machines depicted within our favorite books or movies.
We imagine robots that can think for themselves such as R2-D2, machines that fight crime and defend humans like Astroboy; or we envision a world in which these thinking machines have turned against us, where the HAL 9000 attacks its crew or Skynet launches an offensive against all mankind.
Whether we see AI as good or bad, many of us see AI as an inevitable progression of computer science, where computer systems are ultimately able to think and problem solve as well or better than humans do.
The reality of modern AI is both less glamorous and more fascinating.
Artificial intelligence is being used in an increasing number of ways, from providing online help to interpreting handwriting to driving cars, but none of these quite compare to the Hollywood vision. It is easy to overlook the tremendous advances we have made or the incredible science behind these achievements.
In computer science, AI programming involves designing systems that can "rationalize" a problem, evaluating multiple possible outcomes and selecting a path with the highest potential for success.
Once an AI program chooses its solution, it should then be able to evaluate the results of that action, and refer back to that information the next time it has to make a similar decision. In this way, an AI system "learns" and "problem-solves" within the bounds of its programming.
Unlike traditional programming, which relies primarily on math and logic, AI programming requires computer scientists to incorporate a variety of other disciplines, such as psychology, neuroscience, and linguistics, in order to develop systems that can replicate human-like thought processes and behaviors.
AI research tends to focus on specific areas of intelligence, such as reasoning, planning, communication, creativity, and object manipulation. For many, this is where AI falls short of our expectations.
Rather than acting like fully-functioning humans, AI programs typically have a very narrow focus, such as learning to play a specific game or providing logical responses to typed or asked questions.
But these accomplishments should not be overlooked, as each small advancement tasks takes AI one-step closer to the ultimate goal of General Intelligence.
History of AI Programming
While stories have been created and theories proposed about the possibility of AI for centuries, there was little formalized study of AI until the 1956 Dartmouth Summer Research Project on Artificial Intelligence established AI as a legitimate field of research.
For the next fifteen years, AI research took several major leaps forward, during which time computers were taught to win at checkers, solve advanced math problems, and even speak.
When government funding dried up in the mid-1970s, AI research slowed for several years. But during the 1980s our interest in AI was revitalized, largely based on the success of expert systems, mainframe computers designed for decision making tasks.
These expert machines utilized a knowledge base of rules and known facts along with an inference engine in order to apply pre-existing knowledge to infer new fact.
At the same time, the rise of the PC created a whole new arena for AI research.
The client-server model allowed programmers the freedom to forego the massive mainframes — a considerable savings in terms of time and budget.
And as computers become more interconnected throughout the 1980s and 1990s, AI researchers were able to take advantage of the power of shared computing environments.
During this entire period, the field of AI was expanding and gaining notoriety. One of the most recognizable developments occurred in 1997, when IBM's Deep Blue defeated the reigning world chess champion, Garry Kasparov.
This event marked a significant turning point for AI, as it demonstrated that a computer could not only learn a game but could achieve a level of mastery previously thought only available to humans.
Today, the field of AI has seen many real-world applications from computerized personal assistance on our smartphones to self-driving cars, and the demand for further automation is on the rise.
While general intelligence may still be reserved for sci-fi films, computers are able to tackle more complex decision-making processes every day.
Where to Learn AI Programming
Whether you're an experienced programmer looking to branch out into AI or you're just getting started, these sites can help you incorporate AI concepts into your programs.
Introduction to AI Programming for Games: this easy introduction to AI programming teaches you to add AI elements to a simple monster game. Through sample code and detailed explanations for all the logic being added, you can quickly learn a variety of essential concepts in AI programming.
Lisp Tutorials: this site contains a collection of tutorials for learning Lisp, one of the most popular languages for AI programming, particularly in the early decades of AI research.
Artificial Intelligence Programming in Prolog: the course outline and lecture notes for this masters level course provide an introduction to Prolog, one of the key languages in AI research, as well as advanced Prolog programming concepts and AI implementations.
Algorithms in C#: the AI section of this site provides an abundance of resources for C# developers looking to implement AI concepts into their work, including sample code, tutorials, and modern theories on AI development.
There are plenty of AI enthusiasts on the web. If you're interested in learning more about AI, or the many theories behind modern developments, check out these AI community sites.
AI Forums: this collection of AI-related forums covers topics such as the philosophic implications of artificial intelligence, current research, chatbots, HAL, and new perspectives on language and thought.
The Forum for Artificial Intelligence: hosted by the University of Texas, this online community meets bi-weekly to discuss current issues in artificial intelligence. During each meeting, a distinguished guest speaker presents a talk on a prominent area of AI. The transcripts from past talks are available in their archive section.
Game-AI Forum: this forum is specifically focused on AI implementations for game development.
Books on Artificial Intelligence range from legitimate programming guides to extreme flights of science fiction. For the sake of this guide, we've limited our list of text to that cover current programming practices and well-established theories.
Artificial Intelligence: A Modern Approach (2009) by Russell and Norvig: this text offers a broad overview of modern theories and implementation of artificial intelligence. It looks at such concepts as intelligence theory, logical reasoning, and game playing, to shows how they can be applied to programming, robotics, and even humans. While written primarily for computer scientists, the book may also interest linguist or anyone fascinated by current AI trends.
Machine Learning for Dummies (2016) by Mueller and Massaron: proof that AI has hit mainstream, even the Dummies are getting involved! This entry-level guide to AI provides a basic overview of how and why AI is being used today, presents fundamental concepts in artificial intelligence, and offers an overview of programming languages and tools being used to implement AI, with a particular emphasis on Python and R.
Java Deep Learning Essentials (2016) by Yusuke Sugomori: this advanced text is intended for experienced Java developers or data scientist looking to implement AI concepts into their Java programming. The book walks readers through a basic overview of machine learning algorithms and then takes them step by step through a series of exercises covering many current AI and Deep Learning concepts and implementations, all with an emphasis on Java programming.
Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp (1991) by Peter Norvig: this advanced programming text takes apart several complex AI programs and guides readers through the process of rewriting them using Common Lisp. The book focuses on real-world applications, rather than theory, with a particular emphasis on large and complex program development. Beyond AI implementation, it is an excellent guide to improving efficiency and troubleshooting complex Lisp programs.
Prolog Programming for Artificial Intelligence(2000) by Ivan Bratko: this text is both an introduction to Prolog and a guide to common AI concepts. After providing readers with a grounding in the Prolog language, the author uses several Prolog-based exercises and examples to demonstrate how AI can be incorporated into modern programming.
Unity AI Game Programming (2015) by Ray Barrera et al.: this advanced programming guide is intended for programmers with a basic understanding of C# and experience using the Unity editor. It presents essential concepts in AI programming and how they can be utilized within game development to create a sensory system, develop path-finding systems, build artificial crowds, construct character behaviors, and implement fuzzy logic concepts to make your world and characters appear more real.
Being a modern AI programmer may not be quite as cool as having a Jetsons-style housekeeping robot. But the rapid adoption of mobile technologies and the rise of the Internet of Things has forced AI back into the spotlight.
Now we look to code developers to create more powerful personal assistants, self-driving cars, adaptive voice recognition software, translation tools, automated help systems, and, of course, more realistic video games.
The ultimate future of AI may be uncertain, but it's clear that from this point forward AI will play an increasingly important role in computer and machine development.
Further Reading and Resources
We have more guides, tutorials, and infographics related to AI coding and development:
Prolog Resources: this language was developed especially to process language.
How to Avoid Falling in Love with a Chatbot: despite the cheeky title, this infographic provides a great history of talking computers.
Supercomputers Are Shaping Future of Humanity
Want to know where AI is really taking off? Check out our infographic, Supercomputers Are Shaping Future of Humanity