1 / 38

Ivar T. B. Ørstavik

A research project on future eLearning systems. Ivar T. B. Ørstavik. AITeL’s academic profile practice driven & oriented eLearning system development. Ivar’s academic profile practice driven & oriented applied linguistics the art of programming. Background. SIMAS’ academic profile

saki
Download Presentation

Ivar T. B. Ørstavik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A research projectonfuture eLearning systems Ivar T. B. Ørstavik

  2. AITeL’s academic profile practice driven & oriented eLearning system development Ivar’s academic profile practice driven & oriented applied linguistics the art of programming Background • SIMAS’ academic profile • practice driven & oriented • the art of programming • prototyping • MAS (adaptive services) • for eLearning. Sør-Trøndelag University College - www.hist.no

  3. Practice driven and oriented • What do we mean by ‘practice’? • recurrent human activities (using/developing technology) • research into practices is research into human activities (and technology use/development) • What are AITeL’s practices? • teaching, studying, eLearning, write learning material • use and development of ICT systems • Practice oriented? • research into eLearning • research into system use and development • Practice driven? • Our practices (AITeL’s education, eLearning experiences, evaTest?, theJ) is the laboratory (material) for our research. Sør-Trøndelag University College - www.hist.no

  4. Method & research material • The ‘driving’ practices behind our research • the corner stone of our method • the bulk of our research material • Example • We study ‘use of LMS’. Through practice at AITeL we experience ‘use of LMS’. We write about our experiences. -> Our LMS-practices is the method by which we gather our material (experiences). Sør-Trøndelag University College - www.hist.no

  5. teaching learning eTeaching eLearning system development system use Our ‘best practices’ at AITeL ‘Use of eLearning systems’ ‘programming’ (practical system development) List of possible research ‘practices’ at AITeL Sør-Trøndelag University College - www.hist.no

  6. SIMAS - ‘programming future eLearning systems’ • Trying to combine • AITeL’s best research practices • with my best research resources • Practice driven & oriented • driven by the art (i.e. practice) of programming • oriented towards the problems (and phenomena) behind the ‘practice of eLearning system development/programming’ Sør-Trøndelag University College - www.hist.no

  7. Problems of eLearning system development • System development in general: • Business: Service-oriented architecture (SOA) • Research: Adaptive services (MAS) • eLearning system development: • integration • individualization • These are the same pair of problems, they’re just viewed from different angles! Sør-Trøndelag University College - www.hist.no

  8. Temporary results • Integration (run-time/use-time) depends on program code adaptivity which is a deep-rooted phenomena within the art/practice of programming • Forms of time and chronotope in programming – run-time as adventure-time? • theJ • Individualization and SOA requires a different art of programming (and architecture) which needs to be developed • Designing Multi-Agent Systems using Java as an inter-program language • the.hist.no Sør-Trøndelag University College - www.hist.no

  9. My goal for future eLearning systems • Prototype a next generation eLearning service • able to adapt to individual users interaction needs at use-time • able to integrate with other eLearning systems at run-time • Build on previous results and practices • be driven by programming practice • orient towards ‘service for learning programming practices’ • theJ and the.hist.no: • eServices that are used for new and old programmers to learn programming practices • theJSearchEngine.hist.no • WhatsWrongWithMyCode.hist.no • SuggestCodeImprovements.hist.no • theJLanguageProcessor.hist.no Sør-Trøndelag University College - www.hist.no

  10. Designing Multi Agent Systems using Java as an inter-program language Ivar T. B. Ørstavik

  11. Outline • Interpretation - a core problem when designing / implementing a MAS. • receiver (our main research object) • message generation (done by hand) • Message syntax – a central tool for interpretation • Look at the Java syntax as an inter-program language in a simple case Sør-Trøndelag University College - www.hist.no

  12. Comments on approach • Practical, not theoretical • Academic models (AI and linguistics) are interesting, but not as interesting as • how we can realize agent systems - both in our minds and as programs • I code to reveal problems • not to develop solutions • I am no computer expert, just an average programmer / applied linguist. Sør-Trøndelag University College - www.hist.no

  13. The problem of MAS 1 • Different agents / programs run at the same time • They need resources from each other • They collaborate in order to solve complex tasks • Run-time, not design-time Sør-Trøndelag University College - www.hist.no

  14. An academic description of MAS 1 MAS is a collection of agent • Proactive: • each has its own tasks and interests • Autonomous: • separate entities with their own control • Reactive: • service providers for each other • possibly co-dependent • Adaptive: • they adapt dynamically to service each other’s specific needs • Symbolic: • messages (such as text, source, bytecode) is sent and interpreted by the agents in order to react and adapt to others and proactively use others Sør-Trøndelag University College - www.hist.no

  15. A Java solution for MAS problems 1 MAS is a system of agents where • Each agent is a Java program • Proactive • Autonomous • exchanging messages • interpreting these messages run-time • Reactive • Symbolic • dynamically loading/rearranging resources (i.e. classes and objects) to service each other run-time • Adaptive Sør-Trøndelag University College - www.hist.no

  16. Syntactic strategies 2 • The message syntax • useful to express functionality • essential for interpretation • 3 message and interpretation syntaxes: • protocol-based • RPC-based • Java-based Sør-Trøndelag University College - www.hist.no

  17. Syntax tools – protocol-based Interpretation 2 • internal tools protocol syntax provides: • a) separate different categories (data) • a) describe functions for categories (metadata) • external tools protocol syntax provides: • b, b2 & c) lexical connections between message and classes, objects Sør-Trøndelag University College - www.hist.no

  18. Syntax tools – RPC-based Interpretation 2 • internal tools RPC syntax provides: • a) referring by name to registered procedure • a) passing parameters and return value • external tools RPC syntax provides: • b & b2) setting return and parameter types dynamically (run-time) • c) locate objects by name within run-time register Sør-Trøndelag University College - www.hist.no

  19. Syntax tools - Java-based Interpretation 2 • Internal tools the java syntax provides: • a) method/object reference (RPC) • a) control structures, loops, if, etc. • a) local variables at different levels • a) nested expressions • a) simple math, etc. • External tools the java syntax provides: • b) references to classes • b2) references to external classes through lexical means • c) references to objects through lexical means(implict: with known location) Sør-Trøndelag University College - www.hist.no

  20. Java-based Interpretation - how to implement it 2 • message received as Java • compile Java code • instantiate a class • load class into CL-hierarchy • invoke a method using reflection • What do these reactions involve? • existing functionality and data of the interpreting program • new functionality and data from the querying program Sør-Trøndelag University College - www.hist.no

  21. Benefits/drawbacks with Java-syntax as inter-program basis 2 • Same language within and without • Programmers use and train the same skills in both areas • Powerful language • Java is the very best language for expressing program actions – and interaction • Drawback 1: Lacks syntactic support of RPC: • object registry and lookup • load external classes run-time (RMI) • Drawback 2: known, powerful and complex syntax opens up for loopholes in security Sør-Trøndelag University College - www.hist.no

  22. A case for Java MAS 3 • ProgramA: • The spellchecker • ProgramB: • asks ProgramA to spellcheck its text • according to its own spellchecking needs • and return the result the way ProgramB wants Sør-Trøndelag University College - www.hist.no

  23. ProgramA and ProgramB 3 Sør-Trøndelag University College - www.hist.no

  24. Programming for interpreted interaction 3 Sør-Trøndelag University College - www.hist.no

  25. Inter-program message from ProgramB to ProgramA 3 Pseudokode • use the other program’s dictionary to spell check its input • split each result into different partial word combinations and spell check each combination • send me the result as a String array through a special transfer channel Sør-Trøndelag University College - www.hist.no

  26. Inter-program message in Java 3 public String[] doActions(){ java.util.Vector result = new java.util.Vector(); String[] words = text.Parser.findWords("here is the composite text data"); for (int i = 0; i < words.length; i++) { String word = words[i]; if (spellcheck(word)) continue; if (! splitAndCheck(word)) result.add(word); } return (String[])result.toArray(new String[0]); } public static boolean splitAndCheck(String word) { boolean state = false; if (spellcheck(word)) returntrue; for(int j = 0; (j < (word.length()-1) && ! state); j++) { String[] split = new String[]{ word.substring(0,j+1), word.substring(j+1)}; if (spellcheck(split[0])) state = splitAndCheck(split[1]); } return state; } public void sendMe() throws IOException { java.net.Socket s = new java.net.Socket("server.com", 7007); java.io.ObjectOutputStream out = new java.io.ObjectOutputStream( new java.io.BufferedOutputStream(s.getOutputStream())); out.writeObject(doActions()); out.close(); s.close(); } Sør-Trøndelag University College - www.hist.no

  27. 3 public void interpret(){ java.util.Vector result = new java.util.Vector(); String[] words = text.Parser.findWords("here is the composite text data"); for (int i = 0; i < words.length; i++) { String word = words[i]; if (c)spellcheck(word)) continue; if (! b2)MyToolB.splitAndCheck(word)) result.add(word); } b2)MyToolA.returnAction(result.toArray(new String[0]), “server.com", 7007); } public class MyToolB{ public static boolean splitAndCheck(String word) { boolean state = false; if (c)spellcheck(word)) returntrue; for(int j = 0; (j < (word.length()-1) && ! state); j++) { String[] split = new String[]{ word.substring(0,j+1), word.substring(j+1)}; if (c)spellcheck(split[0])) state = splitAndCheck(split[1]); } return state; } } public class MyToolA [ public static void returnAction(Object o, String server, int port) throws IOException { java.net.Socket s = new java.net.Socket(server, port); java.io.ObjectOutputStream out = new java.io.ObjectOutputStream( new java.io.BufferedOutputStream(s.getOutputStream())); out.writeObject(interpret()); out.close(); s.close(); } } Sør-Trøndelag University College - www.hist.no

  28. 3 public void interpret(){ java.util.Vector result = new java.util.Vector(); String[] words = text.Parser.findWords("here is the composite text data"); for (int i = 0; i < words.length; i++) { String word = words[i]; if (the spellcheck(word)) continue; if (! http://on.any.net/MyToolB.splitAndCheck(word)) result.add(word); } http://on.any.net/MyToolA.returnAction( result.toArray(new String[0]), “server.com", 7007); } public class MyToolB{ public static boolean splitAndCheck(String word) { boolean state = false; if (the spellcheck(word)) returntrue; for(int j = 0; (j < (word.length()-1) && ! state); j++) { String[] split = new String[]{ word.substring(0,j+1), word.substring(j+1)}; if (the spellcheck(split[0])) state = splitAndCheck(split[1]); } return state; } } Sør-Trøndelag University College - www.hist.no

  29. 3 java.util.Vector result = new java.util.Vector(); String[] words = text.Parser.findWords("here is the compound text data"); for (int i = 0; i < words.length; i++) { String word = words[i]; if (the spellcheck(word)) continue; if (! http://on.the.net/MyToolB.splitAndCheck(word)) result.add(word); } http://on.the.net/MyToolA.returnAction(result.toArray(new String[0]), “server.com", 7007); Sør-Trøndelag University College - www.hist.no

  30. theJ-Demonstration 3 • ProgramA and ProgramB running in theJ • java -jar agentcore2.4.jar http://the.hist.no/ivar.orstavik@hist.no/ ProgramA • java -jar agentcore2.4.jar http://the.hist.no/ivar.orstavik@hist.no/ ProgramB • til ProgramB: • the useAnothersDictionary("i dette språket er det vanlig med sammensatte ord"); Sør-Trøndelag University College - www.hist.no

  31. Summary 3 • Advanced program collaboration benefits greatly from an advanced inter-program language • the Java syntax is a great alternative • but it could benefit from: • run-time object/method lookup • a more net-oriented type morphology Sør-Trøndelag University College - www.hist.no

  32. theJ experiment • theJ is an ongoing research experiment for implementing JAVA MAS with a Java dialect as inter-program language • open for the public: http://the.hist.no Sør-Trøndelag University College - www.hist.no

  33. Sør-Trøndelag University College - www.hist.no

  34. Sør-Trøndelag University College - www.hist.no

  35. Motivation for a run-time solution 3 • ProgramA has ‘closed source’ • proprietary source • too complex, too demanding • ProgramA is run-time situated • ProgramA has functionality or data that are available and situated in one run-time situation • ProgramA is a vital service that cannot be shut down • ProgramB cannot rewrite ProgramA, but ProgramA and ProgramB needs to collaborate run-time. Sør-Trøndelag University College - www.hist.no

  36. 3 public String[] doActions(){ java.util.Vector result = new java.util.Vector(); String[] words = text.Parser.findWords("here is the composite text data"); for (int i = 0; i < words.length; i++) { String word = words[i]; if (spellcheck(word)) continue; if (! splitAndCheck(word)) result.add(word); } return (String[])result.toArray(new String[0]); } public static boolean splitAndCheck(String word) { boolean state = false; if (spellcheck(word)) returntrue; for(int j = 0; (j < (word.length()-1) && ! state); j++) { String[] split = new String[]{ word.substring(0,j+1), word.substring(j+1)}; if (spellcheck(split[0])) state = splitAndCheck(split[1]); } return state; } public void sendMe() throws IOException { java.net.Socket s = new java.net.Socket("server.com", 7007); java.io.ObjectOutputStream out = new java.io.ObjectOutputStream( new java.io.BufferedOutputStream(s.getOutputStream())); out.writeObject(doActions()); out.close(); s.close(); } Sør-Trøndelag University College - www.hist.no

  37. ProgramA 3 • a dictionary object with a list of words • a spellcheck method • a static findWord method • <SOURCE OF DICTIONARY> Sør-Trøndelag University College - www.hist.no

  38. ProgramB 3 • processes text • needs to spell check its text through another agent program • wants to extend the spellchecking process to include spellchecking of compound words • needs to define how the result should be delivered Sør-Trøndelag University College - www.hist.no

More Related