0 Items in Your Cart
Cart Summary
Shopping Cart Empty
  Search by keyword: Find
Previous |  ReadyNotes  | Next

Introduction to Python for Artificial Intelligence

Authored by Steven L. Tanimoto
RN0068157
List Price: $19.00
 
File Name: IPAI.pdf

This tutorial about the use of computers in airplanes is intended primarily for people with a computer science background who would like to learn more about this computer-dependent application domain. Novices from other disciplines will likely also find it useful in understanding the basic ideas and vocabulary associated with the field. It is suitable for a final-year undergraduate course or a first-year graduate course in avionics systems, or as an introduction for an engineer entering the avionics field.

The term avionics is a contraction of aviation electronics; digital avionics is that part of the avionics field concerned with digital, usually computerized, technology. This is an important field because modern aircraft use digital avionics extensively for a wide variety of applications. Modern autopilots, for example, are sophisticated devices capable of reducing pilot workload dramatically. With a few rare exceptions, autopilots are completely computerized.

In practice, most cockpit functions are computerized. In recent years, computer age technology has largely replaced older, electro-mechanical approaches. Where once aircraft cockpit displays were mostly mechanical dials and graphics, these systems have quickly given way to glass cockpits—ones in which displays are presented on monitors similar to those found on personal computers.

The impact of computer technology extends beyond cockpit displays; the term also applies to the use of computers in the aircraft structure. In older aircraft, pilots controlled the engines and control surfaces—the flaps and the rudder, for example—through mechanical and hydraulic links. The construction costs, maintenance costs, and operational weight of all the different mechanical elements made them targets for replacement with digital technology, which led to the introduction of fly-by-wire control. The term fly-by-wire usually refers to the combination of the communication of control signals over a digital data bus and the use of those signals by computers within the aircraft structure to adjust the control surfaces and engine settings.

As airplanes have thus become flying computer systems, avionics has assumed an increasingly significant role in their development and production. Construction of avionics systems requires large teams of engineers from a wide variety of disciplines, including computer engineering and software engineering. It is impossible for all those engineers to be familiar with the system’s complex goals and operating principles. Still, it would be helpful if they all understood generally what avionics systems are for and how they work. It is with that in mind that the editors and authors produced this ReadyNote.

1 Overview
1.1 Why Python?
1.2 History
1.3 Bibliographical Information
References
2 Logistics
2.1 Downloading Python
2.2 Installing Python
2.3 Starting Python
2.4 Exiting from Python
2.5 Using IDEs and Editors
3 Interaction
3.1 The Read-Eval-Print Loop
3.2 Calculator-Style Interaction
3.3 Assignment (binding)
3.4 Value of the Last Expression
4 Essentials
4.1 Variables
4.2 Numbers
4.3 Boolean Values and Operations
4.4 Strings
4.5 Lists
4.6 Dictionaries
4.7 Indentation and Block Structure
4.8 Defining Functions
4.9 The Special Value None
4.10 Conditionals (if)
4.11 Loops with while and for
4.12 File Input and Output
4.13 Exception Handling
5 Objects
5.1 Defining Classes
5.2 Subclasses and Inheritance
5.3 Callable Objects
6 Lists
6.1 Literal List Expressions
6.2 Accessing List Elements
6.3 Slices of Lists
6.4 Heads and Tails of Lists
6.5 Lengthening Lists
6.6 List Membership and Modification
6.7 List Comprehensions
7 Simple Strings
7.1 String Concatenation
7.2 Substring Extraction
7.3 String Comparison
7.4 Getting Raw Input from the User
7.5 String Formatting
8 Modules and Scopes
8.1 Modules
8.2 Bindings and Scopes
9 Math
9.1 Arithmetic
9.2 Complex Numbers
9.3 Standard Mathematical Functions
9.4 Random Numbers and Choices
10 Advanced Strings
10.1 Regular Expression Module
10.2 Returning and Replacing Matched Substrings
10.3 Raw String Expressions
11 Functional Programming
11.1 Motivation
11.2 Revisiting the Defining of Functions
11.3 List Transformations
11.4 Reductions of Lists
11.5 Functional Composition
11.6 Currying Functions With Arguments
11.7 Closures
12 Sequence Prediction
12.1 What it Does
12.2 The Program
13 Production Systems
13.1 Overview
13.2 Production System Methodology
13.3 SHRINK
13.4 Bibliographical Information
References
14 Pattern Matching
14.1 Pattern Matching in Production Rules
14.2 The Match Function
14.3 Mathematical Formula Manipulation
14.4 Motivation
14.5 Extended Matching with MatchL
14.6 Overall Structure of Leibniz
14.7 Production Rules for Leibniz
14.8 Control Scheme for Leibniz
14.9 Database of State Information in Leibniz
14.10 Performance of Leibniz
14.11 The Notion of Unification
14.12 Bibliographical Information
References
15 ISA Hierarchies
15.1 Characteristics of Knowledge
15.2 Overview of Representation Methods
15.3 Knowledge in Production Rules
15.4 Concept Hierarchies
15.5 An ISA Hierarchy in Python
15.6 A Conversational Front End
15.7 Inheritance
15.8 Bibliographical Information 101
References 102
16 Latent Semantic Analysis 105
16.1 Motivation 105
16.2 Creating a Term-Document Matrix 106
16.3 Using Singular Value Decomposition 109
16.4 Document Comparison 111
16.5 Bibliographical Information 114
References 114
Index 117
  • Steven L. Tanimoto is a professor of computer science and engineering at the University of Washington, Seattle. He has taught courses on artificial intelligence for 30 years, usually in Lisp, but most recently using the Python language. His research interests include computer analysis of images (particularly using parallel processors), educational technology, visual programming, and AI. The first version of his text, The Elements of Artificial Intelligence: An Introduction Using LISP (Computer Science Press), appeared in 1987 and sold 30,000 copies. He received an AB from Harvard and his PhD from Princeton, and was the Editor-in-Chief of the IEEE Transactions on Pattern Analysis and Machine Intelligence from 1986 to 1990. He is a Fellow of the IEEE and of the International Association for Pattern Recognition. Contact him at tanimoto@cs.washington.edu; www.cs.washington.edu/homes/tanimoto.