tag:blogger.com,1999:blog-58609089766298302382007-08-30T22:08:42.478-05:00Bob Futrelle's TeachingBob Futrelle, Assoc. Prof. Northeastern U.Blogger10125tag:blogger.com,1999:blog-5860908976629830238.post-9122236621516919112007-08-26T19:23:00.000-05:002007-08-30T22:08:39.677-05:00A Plethora of DatabasesI'm teaching the undergraduate Database Design course this Fall 2007, CSU430. A lot has changed since I last taught a database course. I'll continue to use the O'Neil's DB book, now in its second edition. What has changed is the industry. Major players such as Oracle, IBM, and Microsoft have been supplemented by the appearance and growth of MySQL and embedded DBs such as Berkeley DB (now owned by Oracle) and Caché. I have used Berkeley DB Java Edition (BDB JE) and it works fine. BDB JE is just one small jar file. Java Annotations are used in classes to indicate various DB options. I've yet to try Caché. Caché claims to be an embedded OO store that simultaneously supports SQL. We'll see.<br /><br />I can't demo all of the DBs for my class, so I'll focus on one, MySQL. A fully functional freely downloadable versions available for many platforms. I actually had a painful time getting it installed under Mac OS X, but, using a whole bucket of pixie dust, I finally got it installed and it's just fine. Starts up at boot time and is just always there. The students can install it themselves or use some other SQL DB, as long as they can generate things to hand in for comments and grading. In addition, the College has MySQL running on its CGI server that any student can access. There is also MS SQL available, but I'm not a Windows person. Students are welcome to use it. Our textbook is fully SQL-oriented, so SQL makes sense.<br /><br />MySQL has a two or three nice GUI-based controllers - I downloaded two and they work just fine. (MySQL is installed on the Mac OS side of my Intel MacBook Pro and I'm running pure Windows while I type this so I can't give all the interesting details at this moment.)<br /><br />I will definitely demo BDB JE and encourage students to choose it or Caché for a project. Since I'll be doing GUIs in my HCI class, also this Fall, there may be some interesting synergies.Bob Futrelle, Assoc. Prof. Northeastern U.tag:blogger.com,1999:blog-5860908976629830238.post-31833229119701763272007-02-22T11:40:00.000-05:002007-08-26T19:23:07.751-05:00Hybrid Closed-book, Open-book examsNext week, in both my AI classes, undergraduate and graduate, I will do the following experiment:<br /><br />"The first half of the exam will be closed book. After you hand in your answers to the first part, the remainder of the exam will be open book. This is a strategy to evaluate your performance under both conditions."<br /><br />I will update this posting after I grade the (four) exams.<br /><br />Note of 8/26/2007: The exams appeared to be useful. In fact, a number of students in the classes thought the idea was just fine. So I'll continue to do this in my upcoming classes, though not necessarily for every exam.Bob Futrelle, Assoc. Prof. Northeastern U.tag:blogger.com,1999:blog-5860908976629830238.post-74305052220182430722007-02-11T21:23:00.000-05:002007-02-11T14:56:47.459-05:00Interesting AI undergraduate class projectsProject topics in CSU520 Spring 2007 class<br />From initial project plans<br />Professor Futrelle 2/11/2007<br /><br />The undergraduates chose a different mix from the grads:<br /><br />Modifying Buckland's Raven game<br />Roomba-like simulation<br />Reinforcement learning<br />The Singularity<br />Machine translation using NLTK (Natural Language Toolkit)<br />Smart allies in games<br />Correlated knowledge in text and graphics<br />Responsive website via machine learning<br />Clustering to filter Usenet items<br />Pathfinding or maybe elevator scheduling<br />Moving image analysis<br />Starcraft game from an AI point of viewBob Futrelle, Assoc. Prof. Northeastern U.tag:blogger.com,1999:blog-5860908976629830238.post-5941727067503966612007-02-11T14:38:00.000-05:002007-02-11T14:46:07.000-05:00Interesting AI graduate class projectsProject topics in CSG120 Spring 2007 class<br />From initial project plans<br />Professor Futrelle 2/11/2007<br /><br />WEKA spam detection<br />AI - Games<br />3D object recognition - faces and cars<br />Machine translation for Japanese<br />Alarms in passive networks (alarms in homes, businesses)<br />Simulating animals in groups (birds, ants)<br />"Beyond the facts" subjective opinions in Biomedical papers<br />Suspicious ships activity using OWL and additional reasoning<br />Health behavior Ontology<br />Machine learning for Disease diagnosis<br />Natural language query/answer system - about Boston<br />Natural language analysis/generation of Hip Hop lyrics<br />Ontologies of diagrams<br /><br />My general comments: The best were the ones in which the student had<br />found and discussed relevant papers or books.<br /><br />Many had problems formatting their bibliography items - see the<br />Bibliography, pg. 987 of the AIMA textbook for examples. Include URLs<br />where needed.Bob Futrelle, Assoc. Prof. Northeastern U.tag:blogger.com,1999:blog-5860908976629830238.post-54569538856302004062007-01-15T23:43:00.000-05:002007-01-16T14:15:04.128-05:00Real-world semantics is in the eye of the beholderThe notion of semantics in logic can be confusing. I found some good discussions of possible world semantics as based on interpretations, in a book I have on Reserve for my AI courses:<br /><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_0" onclick="BLOG_clickHandler(this)">Brachman</span>, R.J. and Levesque, H.J., <em>Knowledge representation and reasoning</em>. <span class="blsp-spelling-error" id="SPELLING_ERROR_1" onclick="BLOG_clickHandler(this)">Elsevier</span>/Morgan <span class="blsp-spelling-error" id="SPELLING_ERROR_2" onclick="BLOG_clickHandler(this)">Kaufmann</span>, San Francisco, CA, 2004.<br /><br />I'll paraphrase their comments on page 20.<br /><br />The meaning of "hammer" in some interpretation is no more or less than those objects that we consider to be hammers. As far as FOL is concerned, we do not try to say what a hammer is in the way a dictionary might, describing its shape, materials, size, or weight. All we need to say is which objects are and which are not hammers.<br /><br />On pages 24 and 25, there are further statements to the effect that we can build a system that can be told that Hammer(h1) is true in some user-intended interpretation, so that the system can later come to believe other sentences that are true in that interpretation. "Hammer" is a predicate, and "h1" a term that we create; they have no other existence beyond our creation of them in our system.<br /><br />I quote their fundamental tenet of knowledge representation:<br /><br />“Reasoning based on logical consequence is weak, and only allows safe, logically guaranteed conclusions to be drawn. However, by starting with a rich collection of sentences as given premises, including not only facts about particulars of the intended application, but also those expressing connections among the non-logical symbols involved, the set of entailed conclusions becomes a much richer set, closer to the set of sentences true in the intended interpretation. Calculating these <span class="blsp-spelling-error" id="SPELLING_ERROR_3" onclick="BLOG_clickHandler(this)">entailments</span> thus becomes more like the form of reasoning we would expect of someone who understood <span class="blsp-spelling-error" id="SPELLING_ERROR_4" onclick="BLOG_clickHandler(this)">the meaning</span> of the terms involved."<br /><br />Figure 7.6 in the <span class="blsp-spelling-error" id="SPELLING_ERROR_5" onclick="BLOG_clickHandler(this)">AIMA</span> textbook for the course illustrates some of this from a slightly different perspective.Bob Futrelle, Assoc. Prof. Northeastern U.tag:blogger.com,1999:blog-5860908976629830238.post-27404543184710764142007-01-06T11:45:00.000-05:002007-01-06T12:03:11.764-05:00My teaching gateway pageYou might have noticed below that all my teaching pages live in a certain section of my webspace. In fact I have a "gateway page" that links to my current courses and others all the way back to 1998 (some on a second page). The course pages vary a lot in depth and quality, depending on how much time I devoted to building them. The gateway is at:<br /><br /><a href="http://www.ccs.neu.edu/home/futrelle/teaching/gateway.html">http://www.ccs.neu.edu/home/futrelle/teaching/gateway.html</a><br /><br />Otherwise, I'm hard at work finishing off all the major pages for my UG and grad AI courses. First class is the UG one, the afternoon of Monday the 8th of January. Grad one is the following Thursday evening. For whatever reason, these two courses are better organized than any of mine in recent memory. (So if you're not happy, the others were worse ;-).<br /><br /><hr /><br />I've had a bit of luck learning to play <em>Gears of War</em> on my XBOX - enough for me to begin to see what type of artificial intelligence techniques are used in it. One example: When I pick up a weapon, my partner is aware that I now have the weapon and changes his behavior to suit his new knowledge, e.g., suggesting that I use it in a situation in which he is further aware of the fact that I'm being targeted by some nasty foes. There is nothing profound in this; it's not hard to imagine how this could be programmed in. But the accumulation of many such things, including an "understanding" of the physical environment, etc., all adds up to enough complexity and smarts to make it interesting (and to $ales).Bob Futrelle, Assoc. Prof. Northeastern U.tag:blogger.com,1999:blog-5860908976629830238.post-69262817070511203942006-12-31T17:37:00.000-05:002007-01-01T22:42:37.188-05:00Nice results from my UG graphics course, Fall 2005I've taught a wide variety of CS courses in my twenty years at Northeastern.<br /><br />In the Fall of 2005, I taught undergraduate Computer Graphics, CSU540. The construction of 3D objects and lighting them was based on triangular patches. Using barycentric coordinates, as described in Peter Shirely's graphics text (A K Peters, 2005), it is possible to easily decide whether or not a ray intersects the interior of the patch.<br /><br />Course website:<br /><a href="http://www.ccs.northeastern.edu/home/futrelle/teaching/csu540f2005/index.html"><span style="font-size:85%;">http://www.ccs.northeastern.edu/home/futrelle/teaching/csu540f2005/index.html</span></a><span style="font-size:85%;"><br /></span><br />Below are two of the best project results from the class. All programming was done from scratch in Java, using no prebuilt libraries or systems such as OpenGL. The only drawing primitive used was the ability to display a single pixel of a chosen color/intensity. I furnished a portion of the linear algebra code and the triangle intersection code. That's all.<br /><br />By Alison Campanella -<br /><br /><a href="http://www.ccs.neu.edu/home/futrelle/teaching/blogs/uploaded_images/Screenshot-1-718161.jpg"><img style="CURSOR: hand" alt="" src="http://www.ccs.neu.edu/home/futrelle/teaching/blogs/uploaded_images/Screenshot-1-715934.jpg" border="0" /></a><br /><br /><br /><br /><hr /><br />By Jason Bernardo -<br /><br /><a href="http://www.ccs.neu.edu/home/futrelle/teaching/blogs/uploaded_images/Bernardo2-725644.png"><img style="CURSOR: hand" alt="" src="http://www.ccs.neu.edu/home/futrelle/teaching/blogs/uploaded_images/Bernardo2-722237.png" border="0" /></a>Bob Futrelle, Assoc. Prof. Northeastern U.tag:blogger.com,1999:blog-5860908976629830238.post-1173246966389253822006-12-29T13:29:00.000-05:002006-12-31T17:50:20.679-05:00Web pages posted for grad AI Spring 2007<p>Here's the note I mailed to <a href="mailto:grads@ccs.neu.edu">grads@ccs.neu.edu</a>:<br /><br />Subject:Information on Spring 2007 AI course, CSG120.<br />Starts Thursday, Jan. 11th<br /><br />The graduate course in Artificial Intelligence (AI), CSG120, will be given by Professor Futrelle this Spring Semester, 2007. It will be held on Thursdays from 6pm to 9p in 110 Kariotis, starting on January 11th. A collection of basic information about the course, about a dozen web pages so far, is at:<br /><br /><a href="http://www.ccs.neu.edu/home/futrelle/teaching/csg120sp2007/index.html">http://www.ccs.neu.edu/home/futrelle/teaching/csg120sp2007/index.html</a><br /><br />The course will be based on the leading AI text by Russell and Norvig. Some notable aspects of the course include:<br /><br />* The first two classes will give a complete overview of the entire course, chapter by chapter, topic by topic. This should help in a variety of ways, including helping you to zero in on an interesting topic for your course project.<br /><br />* In addition to the textbook topics, the course will discuss AI in console games as well as human and animal intelligence from the point of view of cognitive science.<br /><br />* There are a large number of books on reserve in Snell library for this course and the separate undergraduate AI course I'll be teaching, CSU520. Use of some of these books will be required as part of your project. There are even four books on AI in game programming in the collection. I have an XBOX 360, which I hope to be able to run and project on the screen in class.<br /><br />* Various modes for announcements and communication are set up: A course mailing list with archives is available; in addition to my regular office hours, I will have two evening sessions of IM office hours; I have a teaching blog for general notes on this course and other teaching topics I find interesting,<br /><br /><a href="http://www.ccs.neu.edu/home/futrelle/teaching/blogs/index1.html">http://www.ccs.neu.edu/home/futrelle/teaching/blogs/index1.html</a><br /><br />* I don't do PowerPoint lectures. Personally, I think they're pretty deadly. Instead, I encourage students to read the assigned material carefully, so the classes can be devoted to matters of answering questions, emphasis, examples, clarification, and interesting additional material. I do occasionally put things on the screen when it would take too much time to write out equations or draw diagrams, and such.<br /><br />* My own research involves AI and has for some 25 years, so I know a fair amount about the subject. I'm not a hard-core theoretician, rather, a scientist who is interested in AI issues in the broadest sense. So the course will not focus on theory and mathematics in the way some do.<br /><br />* Course topics include agents, search, logic, knowledge representation, uncertainty in representation and reasoning, learning, natural language, perception, robotics, game AI, and some topics from cognitive science.<br /><br />Please mail me with any questions or comments you might have about the course.<br /><br />-- Professor Futrelle </p>Bob Futrelle, Assoc. Prof. Northeastern U.tag:blogger.com,1999:blog-5860908976629830238.post-23733328929804346522006-12-24T02:38:00.000-05:002006-12-24T02:45:11.371-05:00The basic grad AI course pages are up - CSG120As of 2:40 am, this December 24th, I've posted seven pages for my Spring 2007 AI courses, some in the CSG120 space and some in the CSU520/CSG120 shared space. They are a good start. Later today, I'll compose and send an email to <a href="mailto:grads@ccs.neu.edu">grads@ccs.neu.edu</a> to alert them to the course, emphasizing the course structure (overview, readings, project) as well as interesting content such as cognitive science and game AI. The CSG120 homepage is linked on my teaching gateway page too.<br /><br />The CSG120 homepage is at:<br /><br /><a href="http://www.ccs.neu.edu/home/futrelle/teaching/csg120sp2007/index.html">http://www.ccs.neu.edu/home/futrelle/teaching/csg120sp2007/index.html</a>Bob Futrelle, Assoc. Prof. Northeastern U.tag:blogger.com,1999:blog-5860908976629830238.post-9160602501619326212006-12-20T13:48:00.000-05:002006-12-20T23:15:43.994-05:00Initial thoughts on my teaching (AI) for Spring 2007<p>I'm busy with a number of things at the moment for the two Artificial Intelligence courses I will be teaching starting January 8th:</p><ul><li>Creating the initial pages for the grad course, CSG120, so I can then send email to grads alerting them to the course and its content. The site, with these initial pages, should be up within a few days. (Before Saturday aft. for sure, when our daughter Genevieve, boyfriend Francesco, and dog Samson will arrive from Brooklyn, by way of Maine).</li><li>Simultaneously creating the undergrad (UG) pages, since the two offerings will be very much in synch. The enrollment for the UG course is already ample, so I'm not as concerned about that.</li><li>Learning about computer and console games, since a major application of AI is in games. All the non-player characters (NPCs) need to act 'intelligently' if a game is to be interesting. This includes collaborators, enemies, and general NPCs.</li><li>As part of this I just bought an XBOX 360. I'm trying to decide on a few games to get for it that are known for decent AI content.</li></ul><p></p>Bob Futrelle, Assoc. Prof. Northeastern U.