Sunday, September 27, 2009
Using Google Docs - Students and teacher
Friday, January 2, 2009
Databases - On to Apache Derby
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
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
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
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
"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
From initial project plans
Professor Futrelle 2/11/2007
The undergraduates chose a different mix from the grads:
Modifying Buckland's Raven game
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
Subscribe to Posts [Atom]