Sunday, September 27, 2009


Using Google Docs - Students and teacher

In my UG HCI and database design courses, I'm using Google Docs as my web pages. The students are required to pass in all their assignments as Google Docs. So far, into the third week of the Fall semester, 2009, it's working smoothly.

I share the DB homework with my TA, with editing privileges, for grading.

I got two more gmail addresses, one for each course, as did the TA for the DB course. Keeps everything nicely compartmentalized.

I'm doing the HCI grading. I add the grade and comments to their handins (which they can see in seconds). They could change the grade themselves, but the revision history makes it clear when I added the grade and comments, so it's to no avail.

Friday, January 2, 2009


Databases - On to Apache Derby

We are now using Apache Derby for our database work, focusing on natural language processing. It is pure Java, nicely organized, and readily embeddable. It creates an entire database in whatever location directory you choose. It creates the same database structure whether in embedded or server mode (though I haven't tried it in server mode). The embedded version runs in the same JVM as the application using it - nice and convenient. All driven by JDBC when used with Java.

I'm certain to teach database courses in the future, so Derby could be quite useful. In the meantime, using it constantly in my research will improve my knowledge and skills.

MySQL creates its databases as sets of complex structures buried near the root in a manner that's hard to move around. With Derby, we can just jar it all up, or ftp the entire directory structure.

Sunday, December 28, 2008


Teaching in Spring 2009 - Staying organized

These are very much comments to myself. But what is a blog anyway?

Spring 2009 is beginning. I taught grad AI in Spring 2008, but now will be teaching UG AI. The Russell and Norvig book is a biggy for an UG course, but it is the best and used all over. I'm also teaching UG HCI, which gives me a chance to refine the course, which I just taught in Fall 2008.

I need to find and provide more readings to help bring the courses alive. In AI it will be top papers from the Innovative Applications of AI conferences. In HCI I will be helped by picking from the collection of papers that my Fall 2008 class students collected for an assignment and for their projects.

I need to keep my presentations at the board salient and organized. Not easy for someone who free-associates as strongly and vividly as I do - that has its good points and bad.

I will also be keeping a log of all problems and questions from students, mostly from email, so as to not lose track of any of them. E.g., a student has to be absent from an exam or I give a student an extension, typically for a medical problem.

Saturday, November 10, 2007


Overview of all topics at courses startup

I realized that in my AI courses that students focused their projects on the material they learned about early in the course. But some of them discovered that topics introduced later in the course were more interesting to them as a project, but unfortunately, they hadn't known about them.

So in the Spring of 2007, I spent nearly two weeks presenting an overview of almost every topic in our textbook, Artificial Intelligence. A Modern Approach ("AIMA") 2nd edition, by Russell and Norvig. This worked well and the students appreciated it as they looked back on it at the end of the course. It did indeed allow some students to work on topics that were not going to be covered early on such as uncertainty, learning, and language.

There were brief readings from each chapter, described (for the undergraduate course too) on this page.

The only mistake I made was to try to give short quizzes on the overview. That didn't work. The book is a nearly 1,000 pages long and the students could not absorb enough from the whirlwind presentation to allow them to answer questions on a quiz.

I was a bit blindsided when this problem arose in my Database Design class this Fall, and quickly moved to fix the problem before it was too late. I realized that their projects were headed toward building fancy systems on a weak base of database concepts, rather than simple systems built on rich and important database concepts.

Sunday, August 26, 2007


A Plethora of Databases

August, 2008: Things have been happening: I need good DBs for our research on natural language processing and diagram understanding. We've settled on Apache Derby, and the embedded mode in that. It runs in the same JVM as our app. The DB is simply a collection of files whose location you specify, so it's easy to move around.

Earlier: I'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.

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.

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.)

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.

More recently (mid-Fall 2007) I've discovered Hadoop, MapReduce, and HBase for handling massive amounts of data on clusters. To work on this, I've acquired a small cluster - One Apple Xserve and four Apple Minis. Two undergrads in my DB Design course are working on this with me. They have code working and will move it to the cluster shortly when we expect to have it powered on by November 16 (2007). First applications will be to text processing and image analysis. More on this as work progresses.

Thursday, February 22, 2007


Hybrid Closed-book, Open-book exams

Next week, in both my AI classes, undergraduate and graduate, I will do the following experiment:

"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."

I will update this posting after I grade the (four) exams.

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.


Sunday, February 11, 2007


Interesting AI undergraduate class projects

Project topics in CSU520 Spring 2007 class
From initial project plans
Professor Futrelle 2/11/2007

The undergraduates chose a different mix from the grads:

Modifying Buckland's Raven game
Roomba-like simulation
Reinforcement learning
The Singularity
Machine translation using NLTK (Natural Language Toolkit)
Smart allies in games
Correlated knowledge in text and graphics
Responsive website via machine learning
Clustering to filter Usenet items
Pathfinding or maybe elevator scheduling
Moving image analysis
Starcraft game from an AI point of view

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]