Talk:Artificial Intelligence

From Wikibooks, the open-content textbooks collection

Jump to: navigation, search

This is the discussion area for the Artificial Intelligence Wikibook. This book is intended as a central AI book, into which all other AI content will be merged (with exception of wikiversity articles and study guides). Please create a new title for a new area of discussion and please sign your comments with ~~~~.

Contents

[edit] Current AI Content

There are currently two wikibooks on AI that can be merged into this one, once the layout is decided on. These are:

Some other wiki(books) content on AI:

Wikibooks content on more specific AI topics:

Some wikibooks and chapters on related fields:

Outside of Wikibooks:

(feel free to add any content you find to these lists)

[edit] Policy

Artificial Intelligence/How you can help is our WB:LMOS.

[edit] Layout

AI is a rather large field (especially considering its age) so dividing it into small easily digestible chapters takes some effort. The basic idea, I think, should not be to create a book that needs to be read from start to finish. If this book is ever going to be used in the classroom (or other learning environments) people will need to be able to pick and choose according to their interests or curriculum. Chapters should therefore be as much standalone as possible, and required knowledge should be described clearly (both in terms of previous chapters and other knowledge (such as a basic grasp of programming structures or familiarity with Linear Mathematics).

I think the basics of AI can be divided into around seven areas (like logic, machine learning, language etc.) To allow us to go into the more complicated areas as well (such as reinforcement learning or advanced neural models), I propose to set up a 'tiered' system.

The first section would describe basic techniques and knowledge (such as logic and state space search ), that can be read in any order and serve as required knowledge for the rest of the book. This section should have some simple examples of how to use the techniques for AI (to make it a little less dry), but it should basically serve to explain just the techniques.

Section two would describe the various subfields of Artificial Intelligence, based on the content of the first section (how predicate logic is used natural language processing and knowledge engineering, how state space searches are used in gameplay and nlp etc.) The reader is assumed to be familiar with the stuff from the first section.

Section three would expand on section two, to expand on certain narrow fields, like Neural Networks. The Machine Learning chapter from section two would touch on Neural Networks, but the chapter in section three would be an extensive description of all techniques

Section four would serve to describe the very latest techniques, that borrow from different fields of AI, or very specific subjects that have developed their own body of knowledge and techniques (such as Machine Vision).

(Note that the word chapter in this regard is rather arbitrary. Each of these chapters could (and hopefully will) grow to the size of a book in it's own right and will certainly need to be subdivided itself)

An (incomplete) example layout would be:

  • Introduction: An overview and an explanation of the field, to let the reader know what she's getting into. Includes some philosophy, history and future.

Section 1

  • Logic: Describing the basics of proposition logic and predicate logic.
  • Search: Decribing the basic idea of state space searches and search algorithms.

Section 2

  • Planning, Decision making and Problem Solving: From the towers of Hanoi puzzle to a (simplified) autonomous shopping agent.
  • Uncertainty: Introduction to reasoning, planning and decision making with uncertainty.
  • Machine Learning: The basic ideas and algorithms.
  • Natural Language: Stuff like Markov models and CFG's.
  • Knowledge engineering: Ways to describe and store complicated knowledge. Databases, OO concepts, knowledge bases, etc.

Section 3

  • Neural Networks and related models
  • Bayesian Networks
  • Inference in Logic: Backward and Forward chaining, Resolution and Logic Programming.

Section 4

  • Machine Vision
  • Speech Recognition, Text to Speech and OCR
  • Advanced Logics
  • Advanced NLP and NLG techniques: A description of the various techniques for dealing with tenses, sentence focus, presuppositions, etc.
  • Reinforcement Learning
  • Robotics

Please commment and criticize freely. No layout will be perfect and this is certainly not the only possibility. risk 17:00, 29 December 2005 (UTC)

I really think that the first section should include the basics of probability theory and inference (of which logic is a special case) estimation and optimisation (with state space search being a special case). To section 3 I'd add Probabilistic Inference: The junction tree algorithm. In section 4, reinforcemnet learning is more a basic research field than an application field, so it should have its own section - perhaps a chapter on sequential decision making would it fit it very well, together with planning.Olethros


[edit] Subjects

I think it would be good to simply think of any subject that would fall into the field of AI, anything from Logic to Neural Networks in Reinforcement Learning. Just write down anything you can think of. It will give us an idea of what we're dealing with here and for anything that doesn't fit into the layout, we'll have to find a solution. risk 17:00, 29 December 2005 (UTC)

I'm a beginner in AI, so no way can i help out with this book... although here are some subjects I'm interested in

--Dragontamer 06:36, 30 December 2005 (UTC)

Many thanks for the input. Don't be so sure you can't help. I'm not saying it wouldn't be nice to have some experts contributing, but I always figure that the people that are actually learning from a wiki can help it the most. They're the readers that know how things should be explained. risk 00:19, 31 December 2005 (UTC)
In addition the hierarchy of this list is also open for change.

--Moxon 21:13, 30 December 2005 (UTC)

Good point. However, feel free to ignore the hierarchy and just add subjects to the bottom of the list. Other people will fit them into the list in their proper place (if possible). risk 00:19, 31 December 2005 (UTC)

  • AI approaches:
    • mathematics - soft computing
    • computer science - machine learning
    • mechanics - cybernetics (robotics)
    • biology - artificial life
    • psychology - cognitive science
    • phylosophy - logic, neats vs. scruffies etc.
  • expert systems
    • Bayesian networks
    • case based reasoning
  • Cognitive Models
    • Bases in Mathematics. Trig, statistics, a base to build a model upon. ???
  • neural networks
    • multi-layer perseptron
    • radial basis network
    • self-organising map
      • adaptive resonance theory network
    • recurrent neural network
      • Hopfield network
      • echo state network
    • instantaniously trained neural network
  • support vector machines
  • fuzzy logic
    • fuzzification
    • inference
      • Sugeno type
      • Mamdani type
      • Tsukamoto type
    • defuzzification
      • singleton
      • centriod
    • clustering techniques
      • nearest neighbor
      • k-mean
      • mountain clustering
      • growing neural gas
      • evolving classifier functions
  • evolutionary computation
    • evolutionary algorithms
      • evolutionary strategies
      • genetic algorithms
      • cultural algorithms
      • evolutionary programming
      • genetic programming
      • learning classifier systems
    • swarm intelligence
      • particle swarm optimization
      • ant colony optinization (ant-algorithms)
    • simulated annealing
    • artificial immune systems
  • hybrid intelligent systems
    • fuzzy clustering
    • adaptive neuro-fuzzy inference system (as used by Matlab)
    • genetic fuzzy systems
      • Michigan approach
      • Pitsburg approach
      • Incremetal approach
    • evolving connectionist systems (DENFIS, EFuNN, ESOM)
  • intelligent agents
    • software agents (bots)
    • multi-agents
    • reinforcement learning
      • dynamic programming
      • Monte Carlo method
      • temporal difference
    • emergent robotics
      • epigenetic robotics
      • cognitive robotics
      • developmental robotics
      • evolutionary robotics
  • Games with AI
    • Tic-Tac-Toe
    • Chess
    • shooting games, strategy games, path finding techniques:
      • ant algorithms
      • a* (a-star) algorithm
      • d* (d-star) algorithm
    • robocode
    • game of life
  • artificial life (a-life)
    • emergence
    • chaos theory
    • fractal theory (not sure it this can be considered as AI)
  • machine learning (alternative categorization)
    • supervised learning
      • gradient based methods (hill descent, backpropagation, etc.)
    • unsupervised learning
      • clustering methods
    • reinforcement learning
  • Applications(alternative categorization)
    • classifiers
    • controllers
    • optimizers
  • Basic Programming techniques (or another wikibook could be started for these subjects) - I think so, Moxon
    • Finite State Machines
    • Function pointers
    • Interpreters/Compilers
    • Functional programming

[edit] Layout Themes

With so much added to that last list, I think we need to rethink the layouts from scratch again, so here are some of my ideas.

[edit] How to do xxxx with AI

For example, chapter one would be "How to make a perfect Tic-tac-toe AI", chapter two would be "How to make a strong chess AI". Maybe they can be organized in themes like this:

  • Trees
    • List of requirements to understand section, with references to other wikibooks. Ex. This chapter would list "understands basic binary trees and searching techniques, such as depth-first and breadth first".
    • How to make a perfect Tic-tac-toe AI
      • Add other ways to make tic-tac-toe AIs, neural networks, genetic algorithms, whatever.
    • How to make a strong chess AI
      • Ditto.
  • Learning / pattern matching
    • List of requirements
    • How to make a program predict where you hid the ball. (basic game, 2 "cups" on the screen, user clicks one, an AI predicts where you would place it in advance.)
      • Other methods to complete this.
    • etc. etc.

The emphasis on this kind of book would be practicality, every AI technique would have a use. Advantages would be that students could skip around to whatever section they wanted, and editors/teachers can work on any section they want. It would be easy to split the work, and easy for someone to split their learning path to whatever they want. --Dragontamer 04:12, 31 December 2005 (UTC)

I like the idea, but I don't think it's going to work for the whole book. So many subjects (especially the basics) can be explained best 'bottom up', explaining the ideas and methods behind it, before starting to explain their uses. Take, for example, predicate logic. It's used pretty much everywhere in AI and should be one of the first chapters in any AI book, but I'd have a hard time thinking of a simple application that shows it's power. My main AI textbook tries to explain the uses of predicate logic (in planning systems) by trying to solve/play a simple game with it. Unfortunately, the game can be solved quite easily with some common sense programming, where predicate logic pretty much fails miserably, leaving the reader to wonder exactly what the point of the chapter (and predicate logic) was. Of course if you simply explain predicate logic bottom up and let the reader get a feel for it, the reader will see for herself what the advantages and disadvatages of predicate logic are (and begin to understand its importance). There are many AI techniques that, though useful, don't have a very specific use that explains why they're useful. Once you understand them it's easy to see why it's very helpful to understand them, but it's actually quite difficult to give a simple example of what you can do with them.
I can see where you're coming from, of course. Learning endless logic systems and dull algorithms without anybody explaining (or showing) what they're for an how powerful they can be, will deter even the most motivated student. So I think it'll be very important to keep the students aware of what they can achieve with the stuff they're learning (where possible), using (real world) examples and simple assignments. I also think we can use the 'how to do xxxx with AI' in the setting of a (more or less) conventional textbook. If we create regular chapters that follow a bottom up approach, but make them as modular as possible (if at all possible you should be able to read them on their own, if there's other required knowledge, it should be described at the start of the chapter), we could turn the 'how to do xxxx with AI' into special case study chapters, to tie some of the other chapters together. For instance, a case study on a strong poker AI could refer back use the gameplay chapter, the reasoning with uncertainty chapter as well as chapters on statistics and reinforcement learning. A case study of diagnosis systems could use the chapter on predicate logic, knowledge engineering and perhaps uncertainty. That way, teachers could simply follow the course of the main chapters, to make sure their students get a comprehensive overview of the field, and people learning stuff by themselves, start with a case study, and read up on the required knowledge for as far as they care to. The main function for these chapters would be to make the material come alive, so interesting and exciting subjects should be chosen (so much for the diagnosis system :). I'll try to think up some of the more juicy AI systems (at least int my opinion), and add them to the list. risk 02:37, 3 January 2006 (UTC)
We would need a variety of games too. Poker is a popular game, but not one that I'm very much interested in. (by all means though, put it in the book. The popularity of poker today is massive). Perhaps we should make a list of games that an AI should be able to solve? --Dragontamer 02:47, 3 January 2006 (UTC)
Dragontamer, bear in mind that in AI the possible problems are infinite, but there is a set of tools being used over and over to solve them, whether it is "How to make a strong chess AI" or "How to control a nuclear power plant". If you can solve the poker problem you can pretty much use the same technique to solve the chess problem. When new techniques are derived (e.g. swarm intelligence) it can be applied to almost all problems, but with various levels of success. It is much more efficient to just add a chapter covering a new technique, rather than revisiting and editing all the problems discussed. It is your job as AI expert to find the technique best suited for the problem at hand. You might not know them all, but the techniqes are categorised, and you should know where to start looking.
However, similar problems tend to favour certain types of techniques e.g. for discrete n-person games, geometrical object recognition, robotic motion control etc, so you can focus on a class of problems and the category of techniques most likely to hold the optimal solution, but sometimes a better/simpler solution can be found somewhere else quite unexpectedly. I addition most real life problems implement combinations and hybrids of techniques, making the possible solutions endless. --Moxon 18:35, 5 January 2006 (UTC)

Hi, I have started a wikibook on Knowledge Engineering for Historians and would like to keep in touch with you guys because that may or may not cut down on the explaining of knowledge engineering that I have to do. Also, you might want to cross link at appropriate points to my stuff. Coverage is going to be driven by what I currently work on, but if you need a specific knowledge engineering examples at any point, let me know and maybe we can help each other out. Thanx and good luck, --rck 17:05, 26 February 2006 (UTC)

[edit] Lesson -- Lesson -- Application layout

With that done, here is another Layout Idea. Simple really.

  • Lesson
  • Lesson
  • Chapter dedicated to application
  • Lesson
  • Lesson
  • Chapter on applications (can be on first 2 lessons as well)

Basically, modified version of the "how to do this" layout, with some more space for theory. --Dragontamer 02:54, 3 January 2006 (UTC)

Yep, that's exactly what I was thinking (fast response, btw). I forgot to mention that these case studies would of course be a far cry from the paragraph of light reading you get in a lot of textbooks (especially math) where they show very quickly how the material is used in real life, to make it a little less dry. I would like these chapters to be comprehensive studies of the subject. For instance, the chapter on chess AI's should pretty allow the reader to build a chess AI herself (which may actually be a project). risk 03:06, 3 January 2006 (UTC)

[edit] Giant program layout

I'm not sure if this could work out in AI, but it was done very well in Ivor Horton's "Beginning Java 2". What he did was create a problem at the beginning of the book, and then chapter by chapter after about chapter 10, he would start building a program to solve this problem. Beginning Java Objects also did this with a different problem and solution.

Layout:

  • Introduction and theory (5-10 chapters or so for intro...)
  • State a problem (For Beginning Java 2, it was "build a paint clone")
  • Chapter Lesson
  • Application to the problem
  • Lesson
  • Application to the problem
  • Lesson
  • etc. etc.

--Dragontamer 02:54, 3 January 2006 (UTC)

Well, in a way this is what AI is. We've got a problem (we want artificial intelligence) and every chapter should get us a little closer to the solution. On a more preactical note, I think this approach might work well for some subjects and not so well for others. We could take a single problem (like a poker AI), and go at it from different angles, but if we do that in the theory chapters we'll lose modularity (you would have to read how the logic chapter dealt with the problem to understand what the machine learning chapter was referring to), we'd pretty much be forcing people to read the chapters in a certain order. The case study chapters are actually a great solution to this; show the reader different approaches to a problem after she's read the chapters. However, since our chapters are going to be pretty big (at least in ambition, any chapter covering all its subject matter would be a small book in its own right), this approach might work for certain single chapters. Take one simple problem and keep using it to explain the subject matter of the subchapters. Since the subchapters won't have to be as modular, the approach would work better on this level. I think would have to be decided chapter by chapter, but it's definitely something to keep in mind. risk 03:18, 3 January 2006 (UTC)

[edit] Add your theme here

Just a stub, so anyone else with an idea, just tack it on like this message.

Artificial Life
I think this would make a great 'case study'. It's always been one of the most exciting AI subjects to me, but in three years of studying AI, it's only come up once, as a novelty. It's not something that's taken very seriously in academic circles, but I think it's one of the subjects that really illustrates how cool AI can be (and it's visual too). It draws mainly on machine learning techniques, with perhaps some reinforcement learning. risk
Data Mining
Doing some basic data mining on a large (real life) data set. I actually did this on a project, and it taught me a lot about how machine learning works in practical situations. We could actually provide a dataset (maybe something from the wikipedia servers) and show how to answer questions about it, using neural networks, decision trees, stuff like that. Everything from cleaning the data, running algorithms (Weka [1] would probably be good for this), and interpreting the results. risk
Dialogue Systems
How to beat the turing test. :) In the end, this is still the holy grail of AI's. It would be nice study cbr systems like ALICE that are pretty much the closest we've come so far and what techniques might actually pass the test. Stuff like systems that translate everything into some expanded logic (and back) and other solutions that AI researchers like to fantasize about. risk

[edit] Statisics

Something on statistics should be placed in here. I've played "robocode" before, and neural networks, pattern matching, and so forth were all beaten by a simple statistical analysis of the enemy. --Dragontamer 15:51, 29 December 2005 (UTC)

Neural networks and pattern matching are, or should be, applied statistics. I think that the first chapter should be a background chapter, talking about: logic, search, optimisation, probability theory and inference. These are enough for describing any field of AI I think. --Olethros 12:09, 8 January 2006 (UTC)

[edit] Categorization

Good luck with your initiative Risk, I hope you can manage to create a feasible structure and merge the sources. On the w:Artificial_intelligence talk page there is a discussion on categorization and refactoring of the wikipedia page. The notion of categorizing according to applications rather than techniques is discussed. It might be worth while to read those ideas. Either way I think this task is next to impossible.

Sectioning as described in the schools of thought section, in the wikipedia pages, is becoming all the more difficult with so many hybrid systems developed. Another problem is the definition of terminology such as machine learning (any adaptive system can technically be considered as part of ML), and reinforcement learning (any AI technique can be applied to achieve this). Note that the IEEE Computational Intelligence Society divides the subject under Neural networks, Fuzzy systems & Evolutionary computation.

In addition to pseudo code I think browser ready scripts would also be cool. A philosophical section would also be nice. And how about a sections with new ideas and news?

I will also add some subjects to the uncategorised list above. Dragontamer please forgive me for chopping your message. Risk, maybe you should move it to the module page – maybe some index structure could self-emerge from this :-) If I went into to much detail, forgive me and remove it. (I can get a bit carried away since I've recently written up a literature study on the subject) --Moxon 21:13, 30 December 2005 (UTC)

Wow, great stuff, thanks. I'll try to fit all these subjects into the current layout to see how it holds up. I'll no doubt have to shift things about a bit. Of course, there's quite a difference between the perfect categorization of AI subjects and the perfect way to set up an AI textbook (although I don't think either goal is completely attainable). For instance, Machine Learning might be a very inefficient category, (since so many systems fall under it) but it's a chapter that (imo) no AI textbook should be without (because it shows very important techniques and design philosophies). Still, it's good to have a thought out list like this to see that all subjects will fit into the layout.
I like the other ideas too. A section for recent AI ideas and activity is a great idea (to give the reader an idea of where the action is). Most of my AI textbooks are only five years old and starting to get out of date already. Browsers script and applets would be a cool extra, but I'm not sure if wikimedia would allow that kind of code. I suppose we'll figure something out when (and if) we reach that point. risk 00:00, 31 December 2005 (UTC)

[edit] Categorization 2

I've started compiling all the ideas from this page into a layout on the article page. I haven't incorporated everything yet, (all the topics under subjects need to be checked to see if they can (or need to) be incorporated). Discuss it here. risk 14:55, 16 February 2006 (UTC)

[edit] Outlining AI

I am sorry to add to the mess here. I do not agree with the current direction. Headings like "Section 2: Basic AI topics" and "Section 3: More advanced topics and techniques" add to the confusion, albeit I appreciate the efforts that has been done.Connection 13:54, 7 March 2006 (UTC)

We should set "Applications of AI" and "Application Areas" apart. For example Robotics is an Application Area where AI is used. Expert Systems (the topic) is an Application of AI, where AI tools are used. Neural Networks are an Application of AI.Connection 13:54, 7 March 2006 (UTC)

Areas of Application where a body of knowledge has been developed separate of the area itself (like Computational Linguistics in NLP) has its specific Constructs. They need a special term. For example, "Application Constructs" may be used, pending a better name. This heading covers "Stuff like Markov models, POS taggers and CFG's", Semantic Nets, ... Connection 13:54, 7 March 2006 (UTC)

AI Application Constructs are in turn served by AI Constructs (again, pending a better name). These are Predicate Logic, Heuristic Modeling, ... Connection 13:54, 7 March 2006 (UTC)

Finally, "AI Tools" are formal systems used to implement and to assist in devlepoment AI Applications. This should cover Programming Languages (Lisp, Prolog), OO Implementations, ... This Book Section covers Techniques and "How to", and provides Program source code.Connection 13:54, 7 March 2006 (UTC)

This Layered Approach leads to the following Outline (currently at First Level): Connection 13:54, 7 March 2006 (UTC)

  • Overview
  • Background (introduces concepts needed to understand Constructs: Probability, ...)
  • Constructs
  • Application Constructs
  • Applications of AI
  • Application Areas
  • AI Tools

[edit] I can't understand this

I don't get what this book is about, reading above it seems like you people are going through every step to create an AI individually however since nobody created a really good AI, i.e. human intelligence, you can't give a step by step instruction since there are many completely different ways that head in different directions that didn't produce any better results than the other, e.g. artificial neural networks, genetic algorithms, heuristic probability search, etc. I hope you understand my concerns. 80.109.79.136 13:19, 27 April 2007 (UTC)

(Apologies for the necropost, but it's not very active around here.) I'm not quite sure where you get that impression apart from the one suggestion above ("Giant program layout"), which was shot down for the same reasons you gave. This book would be a broad introduction to AI concepts. --Mrwojo (talk) 01:31, 1 January 2009 (UTC)

[edit] Prerequisite: Discrete mathematics

I added the Discrete mathematics prerequisite because I'd expect it to cover the "review" aspects of the first section as it's currently listed (propositional logic, searching, probability). (Examples: (Chapters 1, 6, 10), (Ch. 2, 7, 9).) We might want to point people specifically to Formal Logic for first-order logic. This would help trim the scope of this book to its specific topic. --Mrwojo (talk) 04:18, 5 January 2009 (UTC)

[edit] Outline 1

Let me repost the only outline that has so far been presented, from the above section "Subjects". Posting further outlines, as extensive as this one, is a way to make sure all the content is convered and well organized. --Dan Polansky (talk) 14:22, 9 March 2009 (UTC)

  • AI approaches:
    • mathematics - soft computing
    • computer science - machine learning
    • mechanics - cybernetics (robotics)
    • biology - artificial life
    • psychology - cognitive science
    • phylosophy - logic, neats vs. scruffies etc.
  • expert systems
    • Bayesian networks
    • case based reasoning
  • Cognitive Models
    • Bases in Mathematics. Trig, statistics, a base to build a model upon. ???
  • neural networks
    • multi-layer perseptron
    • radial basis network
    • self-organising map
      • adaptive resonance theory network
    • recurrent neural network
      • Hopfield network
      • echo state network
    • instantaniously trained neural network
  • support vector machines
  • fuzzy logic
    • fuzzification
    • inference
      • Sugeno type
      • Mamdani type
      • Tsukamoto type
    • defuzzification
      • singleton
      • centriod
    • clustering techniques
      • nearest neighbor
      • k-mean
      • mountain clustering
      • growing neural gas
      • evolving classifier functions
  • evolutionary computation
    • evolutionary algorithms
      • evolutionary strategies
      • genetic algorithms
      • cultural algorithms
      • evolutionary programming
      • genetic programming
      • learning classifier systems
    • swarm intelligence
      • particle swarm optimization
      • ant colony optinization (ant-algorithms)
    • simulated annealing
    • artificial immune systems
  • hybrid intelligent systems
    • fuzzy clustering
    • adaptive neuro-fuzzy inference system (as used by Matlab)
    • genetic fuzzy systems
      • Michigan approach
      • Pitsburg approach
      • Incremetal approach
    • evolving connectionist systems (DENFIS, EFuNN, ESOM)
  • intelligent agents
    • software agents (bots)
    • multi-agents
    • reinforcement learning
      • dynamic programming
      • Monte Carlo method
      • temporal difference
    • emergent robotics
      • epigenetic robotics
      • cognitive robotics
      • developmental robotics
      • evolutionary robotics
  • Games with AI
    • Tic-Tac-Toe
    • Chess
    • shooting games, strategy games, path finding techniques:
      • ant algorithms
      • a* (a-star) algorithm
      • d* (d-star) algorithm
    • robocode
    • game of life
  • artificial life (a-life)
    • emergence
    • chaos theory
    • fractal theory (not sure it this can be considered as AI)
  • machine learning (alternative categorization)
    • supervised learning
      • gradient based methods (hill descent, backpropagation, etc.)
    • unsupervised learning
      • clustering methods
    • reinforcement learning
  • Applications(alternative categorization)
    • classifiers
    • controllers
    • optimizers
  • Basic Programming techniques (or another wikibook could be started for these subjects) - I think so, Moxon
    • Finite State Machines
    • Function pointers
    • Interpreters/Compilers
    • Functional programming

[edit] Outline 2

Here goas another outline, reposted from the section Layout above. However, the sections in this outline have no titles. --Dan Polansky (talk) 14:24, 9 March 2009 (UTC)

  • Section 1
    • Logic: Describing the basics of proposition logic and predicate logic.
    • Search: Decribing the basic idea of state space searches and search algorithms.
  • Section 2
    • Planning, Decision making and Problem Solving: From the towers of Hanoi puzzle to a (simplified) autonomous shopping agent.
    • Uncertainty: Introduction to reasoning, planning and decision making with uncertainty.
    • Machine Learning: The basic ideas and algorithms.
    • Natural Language: Stuff like Markov models and CFG's.
    • Knowledge engineering: Ways to describe and store complicated knowledge. Databases, OO concepts, knowledge bases, etc.
  • Section 3
    • Neural Networks and related models
    • Bayesian Networks
    • Inference in Logic: Backward and Forward chaining, Resolution and Logic Programming.
  • Section 4
    • Machine Vision
    • Speech Recognition, Text to Speech and OCR
    • Advanced Logics
    • Advanced NLP and NLG techniques: A description of the various techniques for dealing with tenses, sentence focus, presuppositions, etc.
    • Reinforcement Learning
    • Robotics