AI and Computing at School

This post arose from discussions about providing 1 day CPD workshops for secondary school computer science teachers interested in deepening their understanding of AI and wishing to use the knowledge gained to enrich their own teaching practice.

A one day course should be interesting and contain a practical element (so as to break up continuous lecture style presentations) ... and provide something useful (in the teaching context) and inspirational ... [i.e. go a bit beyond the confines of the A Level Computer Science syllabus].

Currently in the media AI is associated with deep machine learning .. based on various kinds of neural network ... e.g. Convolutional, Boltzmann / Kohonen and adversarial neural networks ... possibly combined with Bayesian (PGM - Probabilistic Graph Modeling) techniques.

Genetic algorithms and other bio-inspired approaches such as e.g. ant algorithms, or physics inspired algorithms such as simulated annealing rarely get a mention.

Deep machine learning techniques are possible (only in the last decade or so) because of the vast parallel computing resources that have become available and are comparatively affordable.

During the (wide ranging discussion) topics touched upon included:

- Semantic web, Ontologies and Knowledge Graphs

[Knowledge representation and reasoning are key components of AI ... and not so widely discussed in the popular press ... ] ... (they should be something of relevance to Level 4 / Level 5 apprenticeships of a data processing nature ... )

- Search and search techniques ... much of the early research in AI involved developing search algorithms and strategies ... it might be noted that brute force search techniques have been responsible for the successes in computer chess programs and Go Moku programs which can perform at international grand master level .. even thought the game they play lacks "human characteristics"

- Recursion and recursive programming ... a difficult topic ... not often popular ... yet an ability to think recursively has led to a number of interesting applications ... [and it should be noted that recursive programs can be systematically converted into iterative programs ... and take advantage of various optimisation techniques used e.g. in compiler writing such as tail recursion removal ... ]

- AI and natural language processing ... not so widely discussed these days as deep machine learning techniques and statistical approaches to natural language processing and speech recognition have produce "computational units" with impressive performance capabilities ... [so probably only worth a tiny mention in a CPD 1 day workshop]

- Discussed and probably worth a (brief) mention is that many modern algorithms arose out of AI research projects ... especially search algorithms, hidden markov modeling ...

- Not discussed but probably relevant is the so called "Hype Cycle" ... and the very much "up and down" history of AI.

For a 1 day CPD AI course some thoughts and suggestions:

Bring out the contribution of AI research to computer science ...

1. Using search and related topics ... consider classical games playing algorithms such as "noughts and crosses", four in a row, mastermind and checkers playing and things such as navigation and path planning in robotics.

2. Say something (possibly) about rules based programming and rule based systems ... their strengths and weaknesses e.g. CLIPS, JESS and we can bring in Prolog (just a mention ... unless your are teaching A Level CIE ... but that would be a separated one day CPD module) ...

Point out that rules are "understandable" ... as opposed to many of the fruits of "Deep Machine Learning" which are more like "black boxes" ..

[This ties in with Ontologies and Reasoners ... ]


3. The importance of AI in the computer games industry ... where AI techniques are used to develop interesting "game adversary" behaviours and rule based techniques are very important in developing various role playing games and game behaviours ...

4. What about robotics and research ? ... schools are very short of money so from the point of view of practical work sessions .. simulations would be of interest .. [ and this also ties in nicely with computer games development ... ] ... no time to consider games physics engines [too much maths and too advanced ... ] ... we would have to keep it relatively uncomplicated .. however it should be possible to demonstrate some interesting simulations using ROS ( ... and ROS is used in real world systems because we ran, via FTT, some courses for a company making bomb disposal robots ... ).

5. Finally (unless you look at item 6 below) there is the knowledge representation aspect of AI ... Rules represent knowledge ... and Ontologies and Semantic web technologies are also important for knowledge representation ... Semantic web technologies are also important in web application design ... for instance the use of json-ld by Google and other search engines e.g. Bing. Here there we could use the Pizza Ontology and introduce Protege ... and also introduce SPARQL

Already there is far more than a day's worth of work here ... so you would have to be selective ...

Either ... more topics in less depth, or fewer topics in greater depth.

A possible approach might be to have a one day CPD course with a requirement that attendees know Python ... and to run a CPD module introduction to AI through Python (you could probably think up a much more "enticing" title).

This would provide for hands on exercises ... in the format where

- we cover the concepts and theory

- we provide a starter where most of the code has already been written

- attendees get to add extra bits of code to achieve something or to add some extra feature(s)

I know you do not teach Java ... but a Java variant (a much more advanced CPD module) could add in Scala and/or Clojure which can be used to develop some interesting AI'ish applications. [Probably too advanced for A Level purposes .. but OK for say BTEC Levels 5/6 ... ]

6. Neural Networks and Machine Learning ...

This would really be a one day CPD unit on its own ... and could be done using Python ...both to illustrate fairly basic neural networks ... and then finish by describing more advanced Python based Deep Learning systems such as e.g. Theano ... and demonstrate a smallish example running on say a Jetson TX2 board ... (this would have to be a demo as these boards are quite expensive ... however they would be of use in advanced apprenticeships covering Deep Learning algorithms ... ) ... and NVidia is quite generous in supporting schools and universities.

Current thoughts [contributions and suggestions would be much appreciated ... ]

Trying to distill the above - possible master classes using Python as the underlying programming languages.

1. Machine Learning Master Class for teachers using SciKit Learn.

2. Logic programming master class for teachers - using pyDataLog

3. Traditional AI Programming master class - using Python Simple AI

If necessary it should be possible to devise variants of these classes and workshops using

C#, Java (with some Clojure or Scala .... )

I suspect there is not much interest these days in Prolog ... although it is a part of the CIE A Level Maths syllabus and is not particularly well covered in the CIE recommended text book. I know because I am currently tutoring (over Skype) a really quite gifted young Saudi and this was one of the "hole filling" topics for which I had to develop suitable notes and teaching materials.





要查看或添加评论,请登录

Andrew Eliasz的更多文章

社区洞察