Friday, September 03, 2010

Loving my Droid X

I've had it less than a week, and I'm hooked. The Droid X's screen is large (4.3"), sharp, and bright. The keypad is easy to type, the touch interface is extremely accurate and responsive, and reaction times are quick. The video playback is fantastic. It's quick to connect to the Verizon 3G network or local wifi, and I've gone nearly 3 days without having to recharge. It's running Android 2.1, but Froyo (2.2) is supposedly coming out soon.

Below is a photo I took from chapel this morning using the Droid X's 8-megapixel camera. Not bad considering the lighting. I'm standing in the pit at the front of the auditorium with my fellow faculty members. (The singing, as you could imagine, is awesome with a packed auditorium.)


One small negative: When I first entered my Facebook account credentials, it sucked up all my "friends" and put them in my list of contacts. Now my 500+ contact list is full of people I haven't seen in years and certainly don't contact on a day-to-day basis. If I want to remove an individual from my list of contacts, I'm told I have to remove them from my list of friends on Facebook. Boo.

I haven't added many apps yet (the phone comes with approximately 30 apps pre-installed). But one I did add was the Bible app from YouVersion. It allows me to simply say "Genesis chapter five verse twenty", and boom, you're there. Won't this be fun to play with during Bible class on Sunday. wink

Hey Apple, when are you going to create an iTunes for Android? This is probably the only reason I will hang on to my iPod Touch for now. (Yes, I've heard of doubleTwist, and I'll give it a try soon.)

Any other apps I should install?

Tuesday, August 31, 2010

Some computing history

The fall semester is in full swing here at Harding, and I've decided to convert some of my notes on historical events in computing to slides. If you are interested, here are my slides on Internet and Web history and history of graphical user interfaces (GUIs). I'll admit the GUI slides are slanted toward Microsoft because we focus on Windows programming in my GUI course.

I'm still working on my general history of computing and will post an update later.

Tuesday, August 17, 2010

Why I left Wikipedia

An article in this week's Newsweek reports that Wikipedia has been floundering since the spring: "Thousands of volunteer editors, the loyal Wikipedians who actually write, fact-check, and update all those articles, logged off-- many for good." The WSJ first reported the fallout almost a year ago when it was discovered that 49,000 English editors left Wikipedia during the first three months of 2009 compared to a loss of 4,900 during the same period in 2008.

Update: As one of the comments below states, the WSJ article was hasty in their conclusions. It all hinges on what you call an "editor", and a more balanced definition suggests that editors are not leaving Wikipedia in droves.

As the Newsweek article points out, there are a number of reasons why Wikipedia may be stagnating. There are so many articles already present that there is little new ground to break. Some may be scared away or frustrated by overly aggressive editors. Or perhaps "most people simply don't want to work for free."

Some research at Georgia Tech shows that editing a Wikipedia article is very challenging for computing newbies; the "Editing this way will cause your IP address to be recorded publicly" message causes lots of confusion, and this certainly prevents many from joining the ranks of Wikipedia editors.

I have always been a Wikipedia fan. I first started making serious contributions in 2004 when I was beginning my PhD research and discovered that many of the new concepts I was being introduced to simply didn't exist in Wikipedia.

I wrote a number of articles from scratch like web archiving, web search query, adversarial information retrieval, and URL normalization and made a significant number of edits on other technical topics. I was motivated in part by being the first to write the articles and the fact that I would likely refer back to them as reference material as I continued my research.

However, I found that keeping vandalism at bay and fighting poor edits was quite time-consuming. Some articles that I valued quite highly like web crawler needed tons of work, and although the desire was there, I just didn't have the time... I was trying to complete my PhD, and maintaining Wikipedia articles was not paying the bills.

I had an ah-ha moment at a conference a few years ago when someone quoted from Wikipedia's article on digital preservation, and I could have sworn I had been the sole author of the quoted piece. Wikipedia was given credit as the source, not me. That didn't bother me all that much, but it did make me realize that contributing to Wikipedia is often not in the interests of academics who are often judged by the amount of citable material they produce. Someone citing what you wrote in Wikipedia doesn't "count" like someone citing what you wrote in a journal article.

Over the past year or so, I just have lacked the motivation necessary to put time into an anonymous forum. My time is expensive, and Wikipedia is not paying. It's hard enough just to find time to edit my blog!

I still think Wikipedia is extremely valuable, and I hope it never goes away. I regularly send my students there and encourage them to make a serious contribution.

Have you seen The Book of Eli? At the end of the movie, a group of people are attempting to restore some of the greatest literary works of mankind. They are quite happy to have nearly a complete set of Britannica encyclopedias. No mention is made about the remnants of Wikipedia. :-(

Thursday, August 05, 2010

Students needed to work the WAC

I just received word that my grant proposal with the NSF has been funded. The project is called the "Web Archive Cooperative" or WAC. It's a 3 year grant with Hector Garcia-Molina (Stanford University), Andreas Paepcke (Stanford University), Michael L. Nelson (Old Dominion University), and myself.

In short, the WAC is our attempt to provide services, tools, and data access to web scientists. We are researching methods to provide access to web data like query logs, tag annotations, blogs, profiles and Twitter messages that are often located in disparate archives. We are working on finding this data, building software tools for combining and analyzing the data, and methods to preserve the data for the long term.

What this means is that I will be looking for some highly talented/motivated CS students (currently enrolled at Harding) to work with me over the next 3 years during the summers. You will get to work closely with me and in conjunction with others at Stanford and ODU, and you will receive a stipend. If you think this is something you'd like to get involved with, please let me know.

Tuesday, July 13, 2010

CS library book analysis

For the past three years I've been the designated faculty member in charge of ordering computing books for our campus library. Although it can be tedious at times, I usually enjoy the job, especially since it gives me the chance to browse through the latest books on computing and order pretty much what I would like (and, of course, what I think the students would like smile).

The other day I got to wondering though, how many of these books are our students actually checking out? Are paper-bound books still useful to them when you can find so much information on the Web?

So several months ago I asked our librarian to give me some usage data on our computing books. I was only able to analyze the data this week, and what I found was somewhat surprising.

First, to see the relative age of books in our library, I created a histogram of the 998 books based on publication date:


The earliest book (Computers and Society, edited by Nikolaieff) is from 1970. Almost half of the books (45%) were published between 1999 and 2003. Only three books published this year had made it into the library by the time this data was obtained.

The check-out data was from 2001 to present. Out of 998 books, 22% have never been checked out (at least since 2001). Eighteen percent have only been checked out once, and only 25% have been checked out more than five times.

Below is a histogram with log scale showing how many times our books have been checked out. The largest bar on the left is the 75% chunk of books that have been checked out 0-5 times. There are only two books that have been checked out 31-35 times and only one book that has been checked out more than 40 times.



In case you were wondering, here are the top 10 most frequently checked-out computing books, along with the book's publication date and number of times checked out. Many of these books are not surprises:
  1. Introduction to Algorithms by Cormen, Leiserson, & Rivest (1990) - 41
  2. C++ Primer Plus: Teach Yourself Object-Oriented Programming by Prata (1995) - 35
  3. Applied cryptography: Protocols, algorithms, and source code in C by Schneier (1994) - 35
  4. Design Patterns: Elements of Reusable Object-Oriented Software by Gamma et al. (1995) - 30
  5. C++ How to Program: Introducing Object-Oriented Design with the UML by Deitel & Deitel (2001) - 26
  6. Computer Virus Crisis by Fites, Johnston, & Kratz (1992) - 26
  7. PASCAL: Programming and Problem Solving by Leestma & Nyhoff (1990) - 25
  8. Mythical Man-Month: Essays on software engineering by Brooks (1995) - 25
  9. C#, A Programmer's Introduction by Deitel et al. (2003) - 25
  10. HTML and CGI Unleashed by December & Ginsburg (1995) - 25

So what about the books that no one checks out? Browsing through the list, I see what I assume would be very popular books like Pattern Hatching: Design Patterns Applied by Vlissides (1998), Object Oriented Perl by Conway (2000), User Interface Design for Programmers by Spolsky (2001), SQL in a Nutshell by Kline et al. (2004), and iPhone SDK 3 Programming by Ali (2009).

To get a better overall picture, I looked at the percentage of books by publication year that have been checked out (at least once since 2001) as shown below.


There is an even decline in check-out rates from 1995 on which suggests that the longer a book is around, the more likely it is to be checked out. That certainly makes sense, however the longer most computing books are around, the less useful they become.

For example, Designing with Web Standards by Zeldman (2007) has been checked out five times. This is arguably a relevant book, at least until HTML5 is released as a new web standard; then its value plummets. Browsing through the titles of our books, many of them fall into this category. Even among our most checked-out books, several of them are somewhat outdated (3?, 6, 7, 9, 10). This is the greatest problem I face when purchasing CS books for the library... I try to purchase books that I think will be immediately useful to our students and at the same time have a shelf-life greater than one year. It's not an easy balance to maintain.

Returning to my original question, are library books still used by our CS students? The data seems to suggest that a fair amount of books are eventually checked out at least once. However, if we estimate that a book costs around $50, and 218 books have never been checked out, that means $10,900 worth of books are sitting unused on the library shelves. Ouch.

Of course, a more thorough analysis would involve surveying our students about their library usage. Why are they checking out a particular book? Are they actually reading what they check out? Is the information they are seeking in the book they've checked out? Are they finding what they need in the library? Are they finding equivalent information on the Web and therefore don't need the book? This would certainly make for an interesting study.

So, do you still find computing books useful? Should we be purchasing fewer books? What would be a better use for the money?

Monday, July 12, 2010

Social networking workshop wrap-up

Last week I attended the HarambeeNet Workshop on Social Networks in Education at Duke University. There were approximately 40 other academics and researchers at the NSF-funded workshop which focused on using social networks and related topics to encourage broader participation in computer science. It was good to see some old friends and make some new ones and enjoy the beautiful Duke campus.

There were a number of excellent presentations and lots of new information. I took some notes and occasionally tweeted, but what I thought was fantastic was using Ning for sharing links, slides, and other resources (sorry, but you can't access the link apparently without a password). Ning allow you to have something like your own private Facebook space.

The biggest thing I took away from the workshop was the desire to integrate some social media into my intro to computing and web development courses. There's so many neat things you can do, like analyze tweets for spam, look for Wikipedia edit wars, and build networks from blog links. I'm hoping to develop some creating CS1 assignments in this area which I'll likely talk about here in the future.

Our keynote on Friday was Jon Kleinberg who is probably best known for his HITS algorithm. Kleinberg recently taught an interdisciplinary course on networks at Cornell and wrote a book with David Easley on the topic: Networks, Crowds, and Markets. After hearing Kleinberg's presentation, I'd love to offer a similar course at Harding.

It was also interesting talking to Ben Shneiderman who worked as an expert witness in the Apple vs. Microsoft case when Apple tried to copyright the GUI. While riding from the airport to the hotel, Shneiderman shared with me that what pushed Jobs to start litigation was when Windows 2 introduced overlapping windows; Windows 1 only had tiled windows which apparently didn't upset Jobs. Shneiderman also presented at the workshop his push for Technology-Mediated Social Participation and a visualization tool for networks using Excel: NodeXL.

Friday, July 02, 2010

The problem with measuring professor quality

Professors James West and Scott Carrell published an article last month in the Journal of Political Economy: Does Professor Quality Matter? Evidence from Random Assignment of Students to Professors. The article has actually been out for a few years, but this is the first time I came across it. Inside Higher Ed has a review of the study from 2008.

The authors looked at student scores and professor evaluations at the U.S. Air Force Academy from 1997 to 2007 and, in their own words, found this:
Results show that there are statistically significant and sizable differences in student achievement across introductory course professors in both contemporaneous and follow-on course achievement. However, our results indicate that professors who excel at promoting contemporaneous student achievement, on average, harm the subsequent performance of their students in more advanced classes. Academic rank, teaching experience, and terminal degree status of professors are negatively correlated with contemporaneous value-added but positively correlated with follow-on course value-added. Hence, students of less experienced instructors who do not possess a doctorate perform significantly better in the contemporaneous course but perform worse in the follow-on related curriculum.

Student evaluations are positively correlated with contemporaneous professor value-added and negatively correlated with follow-on student achievement. That is, students appear to reward higher grades in the introductory course but punish professors who increase deep learning (introductory course professor value-added in follow-on courses). Since many U.S. colleges and universities use student evaluations as a measurement of teaching quality for academic promotion and tenure decisions, this latter finding draws into question the value and accuracy of this practice.

To sum-up, the study found:

1) Students will score better in their intro courses when taught by less experienced professors, but they will do more poorly in subsequent courses.

2) Students will rate their professors higher when they get better grades in their intro courses.

In other words, if you teach a very rigorous course and do a really good job at preparing your students for success once they leave your classroom, you are likely to be punished for it with lower teacher evaluations. And if you make your class easy and everyone gets an A, you'll be rewarded with great evaluations. I suppose you still may be punished later with angry emails from students who can't pass their subsequent courses. smile

The study certainly draws into question how much importance we should place in rating professors based on their teacher evaluations.

Monday, June 21, 2010

Memento: Adding time capabilities to the Web

This summer I'm working on a research project adding Memento support to the Android platform. I'll talk more about my project at a later date, but first I want to provide a quick overview of Memento.

Memento is an architecture which allows a web browser to seamlessly access older versions of web pages. It allows you to "time-travel" on the Web.

The best way to explain this is with an example. If you were to access cnn.com, you would be presented with today's version of the page. But what if you wanted to see how it looked one year ago? You would need to visit the Internet Archive's Wayback Machine to find a list of old copies of the page they had archived, and you would need to click on one of the links. And if IA didn't have the page archived, you would have to search other web archives for the archived version. This is potentially a lot of work.

Memento makes access to archived versions of a page transparent to the user. Using a web browser that supports Memento, you would only need to visit the URL as you normally would and supply a desired date... the browser would automatically locate the archived page from that date and display it to you without the need to manually search through multiple archives.

You can see this in action right now by using the Memento Firefox add-on. Below is a screen shot using the add-on to browse cnn.com as it appeared on July 9, 2009. I actually told the add-on to show the June 21, 2009, version, but the July page (from the European National Archives) is the closest page that was found in any archive. This is not a failing of Memento... it's a limitation of web archiving in general.


Memento uses HTTP content negotiation to add this time dimension to the Web. Instead of discussing the technical details here, I'll instead point you to the Memento Guide Intro if you're interested. Ideally, all web browsers and web servers in the future will support the Memento HTTP headers, and no special add-on will be necessary.

Memento is the brain-child of Michael Nelson (Old Dominion Univ) and Herbert Van de Sompel (LANL). It's made a quite a stir in the past year with a write-up in New Scientist, a paper at the Linked Data on the Web workshop (LDOW2010), and some significant funding from the Library of Congress. Tim Berners-Lee said this about Memento: "This is neat; there is a real need for this."

Friday, June 18, 2010

A Dislike button for yourself

I've been playing with Facebook's new Like button which you can place on any of your web pages. When someone clicks on the Like button, it shows up in their Facebook account. All you have to do is insert an iframe into your webpage. Here's what my iframe looks like for my Harding home page:
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.harding.edu%2Ffmccown%2F&layout=standard&show_faces=false&width=450&action=like&colorscheme=light&height=35" 
scrolling="no" frameborder="0" style="border:none; 
overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>

It got me wondering though, what if someone wanted to dislike me? So I created a Dislike button and rigged up a little JavaScript to display a snarky message when someone clicks on the button. You can see it on my home page, right under the Like button.

If you'd like to make your own Dislike button, just follow these steps:
  1. Place this image on your website:

  2. Use the following HTML to display the Dislike button and a place-holder for some text:
    <a href="javascript:Dislike()"><img
    src="dislike.png" width="61" height="24"
    title="Click here to dislike this item" border="0" /></a>
    &nbsp;
    <span id="dislike_text" style="position:relative; top:-7px; 
    font-family:Tahoma; font-size:8pt;"></span>

  3. Finally, insert this JavaScript function somewhere in your page which randomly chooses a message to display:
    function Dislike()
    {
       var responses = [
          "I'm not crazy about you either.",
          "Whatever.", "Seriously?", 
          "My feelings are so hurt.",
          "I'd rather be feared than liked.", 
          "Nice try."];
      
       // Get a random number between 0 and responses.length - 1 
       var num = Math.floor(Math.random() * responses.length);
       document.getElementById("dislike_text").innerHTML = responses[num];
    }


Note that this is only for fun, and it will not show up in Facebook.

If you are really interested in having a Dislike button that works in Facebook, check out this Firefox plug-in.

Wednesday, June 16, 2010

Visualizing data with Protovis

In this month's Communications of the ACM, Heer, Bostock and Ogievetsky provide an eye-opening overview of the latest visualization techniques in A Tour Through the Visualization Zoo. The graphs and figures in the article were all produced with Protovis, an open-source library developed at Stanford for producing visualizations using JavaScript and SVG.

I've reproduced a few of my favorite visualizations from the article below.

The first is an index chart which shows the relative change in stock prices of several tech companies over time. The gain/loss factor is based on a fixed point in time (the red line). You can see some correlation between the stock prices, and clearly Apple is the overall winner. The online version allows you to change the location of the red line.




This is a choropleth map showing obesity rates in the US in 2008. The online version allows you to slide the date back to 1995. As you move the dates forward, you can see how the US population gets fatter, with the highest proportion of obesity rates focused in the South. There's a saying here in Arkansas: At least we're not Mississippi! wink




When you view the obesity rates with a Dorling cartogram, you see that Arkansas actually has fewer obese people than Colorado!




The next couple of graphs show how to visualize networks. Both visualize character co-occurrence in chapters from Victor Hugo's novel Les Misérables. The first is a force-directed layout. The node in the middle is, of course, Valjean. The online version allows you to pull nodes around and watch them re-arrange themselves.




The nodes can also be rearranged in an arc diagram as shown below.

Monday, June 07, 2010

Build your own C# screen saver

I wrote a tutorial years ago about creating a Windows screen saver using the C# language. I usually let my GUI students do it as an extra credit assignment.

The tutorial was really showing signs of age, and last week I was finally able to update it. You can find it here. If you'd prefer to just jump straight to the finished product, you can download the project here. I used Visual Studio 2010 to write the demo code.

One more thing to cross off my summer to-do list.

Wednesday, June 02, 2010

Professor's plagiarism case against colleague

Inside Higher Ed reports that a Math/CS professor at Bethel University has accused another professor in the same department of plagiarizing his CS1 labs. The accuser, Benjamin Shults, says that he gave Brian Turnquist his labs for class use which had Shults' name on top. Turnquist subsequently replaced Shults' name and other identifying marks (like swapping out images of Shults with Turnquist's). The modified labs were placed on Turnquist's website.

Turnquist was found guilty of "innocent infringement" by Bethel's Grievance Review Committee, was forced to give Shults an apology, and had to remove all the labs from his website. Apparently Shults is not happy with the committee's slap on the wrist. He has not received an apology yet (see the comment at the end of the article entitled "corrections"), and he's created a website that documents the whole affair.

When I read this article, I immediately thought of all those assignments and labs I had borrowed from my fellow faculty members and the labs/assignments I have given to others to use in their classes. I have always removed their names on the documents and thought nothing of it... I assumed they were doing the same. But I have also never posted the documents on a website for public consumption.

Our department is now discussing this issue, and I think we'll all be more diligent about giving credit when modifying another's lab/assignment for class use. However, we all agreed that the best way to handle a situation like Bethel's is to go directly to the offending party.

Since Bethel is a Christian university like Harding, I couldn't help but wonder how applying the biblical principles set forth by Jesus and Paul would have drastically changed the situation.

Matthew 18:15:
"If your brother sins against you, go and tell him his fault, between you and him alone. If he listens to you, you have gained your brother."

Matthew 5:38-39:
"You have heard that it was said, 'An eye for an eye and a tooth for a tooth.' But I say to you, Do not resist the one who is evil. But if anyone slaps you on the right cheek, turn to him the other also."

1 Corinthians 6:6-7:
"But brother goes to law against brother, and that before unbelievers? To have lawsuits at all with one another is already a defeat for you. Why not rather suffer wrong? Why not rather be defrauded?"

Friday, May 21, 2010

Braden: From 1 to 12 months

My youngest is one today. Just like our oldest son, we took pictures of Braden next to marshmallows every month so you could see how he grows. I'm a little biased, but this guy is one cute kid!



Month 1



Month 2



Month 3



Month 4



Month 5



Month 6


Month 7


Month 8


Month 9


Month 10


Month 11


Month 12


Getting these photos was not easy. Here are a few out-takes:










Wednesday, May 12, 2010

Harding students release Xbox game

Two of my Game Programming students from last fall, Nathan Willingham and Seth Ringling, developed a real-time strategy game called Scatha for their final project. Nathan and Seth put some more time and effort into the project and have now released the Xbox 360 game for purchase.

I'm really proud of the effort these guys have put into their first Xbox game. Not only did they write every line of code in the game, they also created all the graphics. If you enjoy playing RTS games, I think you're going to enjoy playing Scatha.

Update on 7/22/10:

Seth and Nathan have now released a second game called Four Corners and are working on a third title. Their game company is called Living Creature Studios.

Tuesday, May 11, 2010

Good-bye CS graduates

The Spring semester is over, and our department graduated 9 students. Not everyone made it into the photo below, but most are there. This was once again a very talented group of students, and they'll be missed. Thankfully they are entering a good economy with good job prospects, and most of them have already accepted a job.

Tuesday, May 04, 2010

Apple vs. Google vs. Microsoft War Chart

This infographic by Shane Snow beautifully illustrates the epic battle that Apple, Google, and Microsoft are engaged in. From ebooks and phones to office and email, all three giants are battling for more users.

Although many of these services are free to the end users, there are billions of dollars in revenue at stake. Click on the map to zoom-in.

Friday, April 30, 2010

I'm at WWW2010 in Raleigh, NC

I've been here at WWW2010 since Tuesday, but I've been using Twitter to post some of my thoughts on the conference and have been neglecting my blog (yes, I twoatted all over the place). This is only the second time I've attended this conference, and once again I've really enjoyed it. I'm leaving for Searcy in a few hours, so I'll quickly sum-up my impressions.

The keynote speakers were good, but I particularly enjoyed Carl Malamud's talk on being a "rebel". Carl didn't have a PowerPoint presentation, but he didn't need one; his stories about liberating tax-funded data and other exploits were very entertaining. "When I first saw Tim Berners-Lee's Web prototype, I thought to myself, 'That's nice, but it will never scale.'"

I also enjoyed a presentation this morning by Damon Horowitz of Aardvark, a social search engine that was recently purchased by Google. While listening to the presentation, I couldn't help but wonder, "Why didn't I think of that?" As Michael Nelson reminded me at lunch, the best ideas usually result in that response.

Other highlights include the panel Search is Dead! Long Live Search! that examined the future of web search and the Media on the Web developer's track which highlighted some incredible things HTML5 can do.

I'm excited to incorporate some of the things I've seen this week into the next offering of my search engine course. I'm even more excited to see my family again.

Thursday, April 22, 2010

George W. Bush speaking tonight at Harding University

Tonight our former President will be addressing a very pro-Bush Harding audience. Around 2000 students, 700 faculty and staff, and a few hundred other guests will be packed into the Benson Auditorium to hear Bush talk about...? My guess is Bush has a finely tuned speech for addressing college students, packed with jokes about Texas, Democrats, and how even C students can someday be President.

Update

Although I wasn't able to attend last night's talk, I was told by many of my students that Bush came across very eloquent, knowledgeable, and by some accounts "inspirational". This might be a surprise to many who are more familiar with his public gaffs. My parents (who used my tickets) were also quite impressed.

When asked what was the most difficult decision he made as president, Bush said that it was sending in additional troops to Iraq ("The Surge").

Friday, April 16, 2010

When Twitter is gone, your Tweets will live on

The Library of Congress announced on Wednesday that
"Every public tweet, ever, since Twitter’s inception in March 2006, will be archived digitally at the Library of Congress."
That's right... every thoughtless, trivial, and crass remark you ever tweeted is now going to be made available for future generations (your tax money at work wink).

This is actually a very positive development because this corpus of short messages will provide invaluable to researchers and historians. My guess is some research on this corpus will likely be used to improve web search. I will certainly have my web IR course in the spring do some analysis on the corpus.

My hope is that some day the LoC will also archive all of Facebook. This will prove much more problematic as Facebook data is inherently private, and access to the archive will likely need to be restricted. But losing this treasure chest of bytes would, in my estimation, be far more of a loss to society and future researchers than losing a few tweets.

Tuesday, April 13, 2010

Bad idea: Using the same password on multiple websites

I just received an email today that reminded me why it's a very bad idea to use the same password on multiple websites.

A few days ago, some hackers compromised an Apache server which contained a hash of each user's account password. A brute-force approach will reveal a number of the weaker passwords which the attackers will then likely use to compromise accounts on other popular systems like Gmail. The email was warning me to change all my passwords on the other websites where I use the same username/password.
"We (the Apache JIRA administrators) sincerely apologize for this security breach."
At least they were sorry. wink

I know it's a real pain, but if you aren't using different passwords for different websites, start doing it now. It's much better than trying to clean up the mess after someone hacks your email, banking, and who-knows-what-else accounts.

Tuesday, March 30, 2010

Cheating and the "technological detachment phenomenon"

The Chronicle on Higher Education recently ran a story on cheating in the sciences that places some of the blame on professors: High-Tech Cheating Abounds, and Professors Bear Some Blame. The article quotes Douglas Breault Jr., a teaching assistant (or should I say soon-to-be-ex-teaching assistant wink) at Tufts University, about professors' attitudes toward cheating on homework:
"The profs tell me to ignore it."
The article goes on to say that students and faculty are often "cavalier" in their attitudes about cheating on homework because the former group views it as busy work, and the later group knows that students will rarely pass if they cheat on homework. My guess is that some professors are scared of student retaliation, especially at some universities that offer little support for academic ethic violations. And many professors would rather be performing research, not parenting a 20 year-old; afterall, tenure committees don't count the number of students you've busted for cheating. It is certainly easier to abdicate our responsibility of shaping our students' character and look the other way.

What I found most interesting about the article was what Trevor Harding (California Polytechnic State University at San Luis Obispo) coined technological detachment phenomenon: the moral detachment many experience in an ethical situation when introducing technology into the equation.

For example, Harding found that most students would say they are cheating if they brought a cheat sheet to an exam. But those same students would not consider it cheating if they brought to the exam a graphing calculator with the same information secretly stored on it. The use of technology, for whatever reason, makes students view the ethical situation quite differently.

Are there other areas of life where technological detachment phenomenon applies? I couldn't help but think of how mobile devices have altered what is acceptable in social situations. For example, many of us allow our devices to interrupt our conversations with others, even at the dinner table, but we would think it rude if a live person barged in between us and a friend while talking.

One last item: the article briefly mentions cheating websites like Course Hero. They have over 250K "fans" in Facebook (see the image below).



I lifted this from Course Hero's Facebook fan page:
Course Hero is the leading social learning network that strives to accelerate and maximize education breakthroughs of students -- the persistent learning gap between theory and application via a content sharing network.
Brilliant marketing: a carefully crafted statement that avoids the use of "dishonesty", "plagiarizing", and "shooting yourself in the foot".

Saturday, March 27, 2010

XNA pong demo

This morning I held a tutorial for teaching a game programming class. The tutorial was part of the CCSC-MS conference that was held on the Harding campus, and approximately 20 faculty and a few college students were in attendance.

In the second half of the tutorial, I walked participants through building a simple pong game using XNA, Microsoft's game programming framework for Windows and the Xbox. In honor of March Madness, I wrote a basketball-themed pong demo that introduces displaying sprites, animation, keyboard input, sound effects, and collision detection.

Pong screen shot

If you are lazy and just want the demo code, look for links at the bottom of the demo.

Thursday, March 25, 2010

iPhone app contest

The Hoggard Team, a local family of realtors, has created an iPhone app contest. Contestants are to build an entertaining app which also advertises the Hoggard's business. $500 will be awarded to the winning app, and the entry deadline is April 30, 2010. The contest was developed primarily for our Mobile Computing students, but I've been told anyone may participate. Read more about the contest here.

Monday, March 22, 2010

CCSC-MS at Harding University

The Consortium for Computing Sciences in Colleges - Midsouth Region will be holding its annual conference (CCSC-MS 2010) at Harding this Fri and Sat (Mar 26 and 27). This is a computing education conference that will attract faculty at many smaller colleges and university in the mid-south region. There's a student programming contest Fri afternoon.

I'll be presenting a tutorial on Sat morning 8:30 - 10:00 in Sci 207 called Teaching a Game Programming Class for the First Time. I'll be discussing how I taught my game programming course last fall, and I'll introduce the XNA platform and show how to develop a simple pong game.

Harding students are welcome to attend the conference for a modest fee of $60.

Tuesday, March 16, 2010

CS 4th Top-Paid Major Among Class of 2010

Good news for our computer science majors: according to a report by the National Association of Colleges and Employers (NACE), CS majors graduating this year will be offered $61K a year. There are only three other majors, all engineering, that will be paid more. Of course CS majors working in Arkansas should expect slightly (significantly?) lower salaries.

MajorAverage Salary Offer
1. Petroleum Engineering$86,220
2. Chemical Engineering$65,142
3. Mining & Mineral Engineering (incl. geological)$64,552
4. Computer Science$61,205
5. Computer Engineering$60,879

Saturday, March 13, 2010

Reflections on SIGCSE 2010

The conference luncheon is over, and I'm heading back to Arkansas in a few hours. This has been a very informative conference, and it's filled my head with a number of ideas and methods to try in my classes.

Here are some of the highlights from the past three days:
  • My presentation on Thurs afternoon (teaching Web IR to undergrads) went well although it was scheduled at the same time as an NSF funding panel which cut into my audience. I got some positive feedback by others teaching or wanting to teach a similar course.

  • Thurs night's "Teaching Web Programming" Birds-of-a-Feather session was interesting. Participants shared a number of things they teach (PHP is popular and JavaScript frameworks are gaining in popularity). One participant has her students perform usability studies on their class projects. Apparently I am one of the few that is still teaching CGI programming.

  • Carl Weiman gave an excellent keynote on Fri morning. He discussed how humans build long-term memory (retrieve and apply repeatedly with time in between) and limits on our working memory ("blue screen of death" for individuals when presented with more than 7 items at once). He also gave teaching tips for developing expert-like thinking in our students: present an interesting problem and bring in the necessary facts and procedures that are necessary to solve the problem. This can be done in class by having students read their text before class, take a quiz over factual knowledge, ask some questions in class and have students discuss solutions in groups of 3, and have groups discuss their solutions. (See what others say about his talk.)

  • I learned more about the Game-Themed programming Assignments (GTA) in the Games section on Fri afternoon. This approach uses a library wrapper around XNA to make game programming assignments in CS1. I plan to talk a little about this project in my upcoming Game Programming workshop at CCSC-MS (I'll blog more about this workshop later).

  • In the same game session, Michael Hewner, one of Mark Guzdial's PhD students, also shared his findings about what game companies are looking for in a new graduate. Michael created a one-page summary you can obtain here. Two most important things: C++ proficiency and social skills (ability to work well with others).

  • At the Google panel on education I learned a about a new project called Google Code University. Faculty can host their material there after it is reviewed and accepted by Google. I may look into putting some of my Android teaching materials there since there's currently little offered on Android. I also learned a little about Google App Inventor-basically Scratch for Android.

  • I spent a few hours talking to book publishers, poster presenters, and other exhibitors. In one conversation with a rep from a women's organization, she stated the org's very lofty goal of having 50/50 representation in computing in 10 years. I also talked with Ryan McFall (Hope College) who teaches an interesting breadth-first computing course for non-majors. Every time I hear about courses like this I wonder why we don't have something similar at Harding.

  • One of the most enjoyable sessions was It Seemed Like a Good Idea at the Time where several instructors shared in a most humorous way some of the teaching disasters they faced in past semesters. It made me laugh, and it made me feel a lot better about my past mistakes.

Next year's SIGCSE is in Dallas. That may be a good trip to make with the family next spring.

Wednesday, March 10, 2010

Media Computation Workshop

I spent the greater part of the day at the Media Computation Workshop, one of the pre-symposium SIGCSE events, learning how to teach CS1 using images, sound, music, and video. Media computation is what is taught at Georgia Tech to majors and non-majors in their CS1 course, and they've seen it significantly increase the percentage of students able to pass their course.

I must admit that after just the first two hours of the workshop had passed, I felt like the current way we teach CS1 at Harding could use some improvement. At the end of the semester, my students are still writing console programs that involve keyboard input manipulating numbers and text, and their programs look like something out of the 1970s. Yes, my students have a firm grasp on the fundamental concepts of programming, but I may have lost a few students along the way, and they are certainly not going to brag to their friends about their cool text-based programming projects. Media comp students regularly show-off their programs to friends.

The problem with adopting media comp is that ideally you teach it with Python or Java as there are currently no texts for C++. Mark told me there are libraries for C++, so I may at least see if I can integrate a few of the projects into my C++ class.

I really enjoyed the workshop, and it certainly gave me a lot to think about. Mark Guzdial and Barbara Ericson did a great job leading the workshop.

Monday, March 08, 2010

I'm at SIGCSE 2010 this week

Tomorrow I'll be leaving for SIGCSE 2010 in Milwaukee, WI. I had a blast at last year's SIGCSE symposium (my first), so I'm really looking forward to this year's.

On Wed I'm attending the Media Computation Workshop presented by Mark Guzdial and Barbara Ericson (Georgia Tech). The workshop shows educators how to teach an introductory computing course with a focus on manipulating pictures, sounds, and video. My intro class has practically none of these elements, so this workshop has the potential to really shake-up how I teach.

On Thurs I'm presenting a paper entitled Teaching Web Information Retrieval to Undergraduates. Web IR is currently a much-overlooked topic at the undergraduate level. This is somewhat surprising considering how ubiquitous search engines have become and the significant attention Web IR receives from tech giants like Google, Microsoft, and Yahoo. This paper is about my experience developing a Web IR course at Harding and the types of projects I've employed in two different offerings.

I'll be blogging about some of the more interesting presentations I see, so check back in a few days for more.

Friday, March 05, 2010

Transitioning from Android to iPhone

This week I finished teaching Android programming in my Mobile Computing course. I've created a number of useful tutorials and teaching aids, and I'm weighing my options of putting them out on my blog or website or publishing them in a book form on lulu.com. The tutorials cover graphics and sound, data persistence, custom event notification, using the Google Map API, and a lot more.

After spring break, Gabriel Foust will take over the Mobile Computing course and teach iPhone programming. I'm very curious to see how long it will take the class to climb the steep learning curve and be competent enough to write a useful app. With Android it took a little over a week.

I read just read this morning that Microsoft is turning away from their earlier Windows Mobile OS and focusing on a new OS called Windows Phone 7 Series. (Hello, Marketing department, are you sure you want to compete with Android and iPhone using the name WP7S?) The OS features a sleek new interface, and apparently XNA and Silverlight will be the main method of writing native apps. It's good to know that my efforts learning XNA last fall will pay dividends on this new platform. Maybe next time we offer Mobile Computing, we'll be using WP7S.


Update:

Joel Coehoorn commented on my Facebook note that you can develop applications on the iPhone using Mono, an open-source project that runs .NET applications (C#, VB.NET, etc.) on a number of operating systems. I've done a little investigation into this, and it appears that Mono support for the iPhone is somewhat limited. The UNITY platform allows development with C# and JavaScript, but at a cost. MonoTouch is another commercial option. Otherwise you're stuck with development on a Mac using Objective-C.

Thursday, February 25, 2010

Will the real Dr. Burks please stand up

Dr. Burks, president of Harding University, decided he needed to clarify something in chapel this morning. Apparently lots of people were befriending the wrong Dr. Burks on Facebook.

There are multiple Facebook accounts claiming to be Dr. Burks, and he showed a few screen shots of the impostors (the photo below is one of them). This is a problem because some students have been receiving messages from the fake Burks; one message asked someone to speak in chapel this week. (Sure is annoying when people create fake Facebook profiles.)



Dr. Burks showed everyone his correct profile and said he'd love to be everyone's friend. I have a feeling that he'll be receiving hundreds of friend requests today... that is if anyone can find the correct Dr. Burks. I did a search for "David Burks", "David B. Burks", and president@harding.edu (Dr. Burk's email address), and the only profile that looked legit was the one pictured above. I even looked through one of his son's list of friends on Facebook, and he wasn't listed there.

It looks like the fake Dr. Burks will continue racking up friends for a while.

Thursday, February 18, 2010

Barbie is a computer engineer! Or maybe just tech support.

By popular vote, Barbie's next career will be Computer Engineer. There's a good chance that the voting was slightly in our favor due to some rumored automated scripts that artificially boosted the vote. wink

Barbie will be sporting a very stylish outfit and carrying around a laptop that has apparently frozen (see the binary numbers floating across the screen).

Her wardrobe has received a lot of attention. Apparently it was designed in consultation with the Society of Women Engineers and the National Academy of Engineering, organizations that are well known for their sense of style. She'd blend right in with our Engineering department.

The BBC News also had a lot to say about the new Barbie. Unfortunately, they seem to equate Computer Engineer with Tech Support:
"As anyone who works maintaining computers could tell you, Barbie would do well to invest in a hair band... Even the shoes are unlikely to be seen on the feet of people who spend half their day crawling under desks or feeding cables through walls." (emphasis mine)
I'm sorry, but a computer engineer is not the person hooking up your network or installing virus protection on your desktop. But I do understand the popular press's misconception of what computer engineers do. I just fear that it's this misconception of computing that will continue to drive females away from computer science/engineering rather than attract them to it.

On the SIGCSE mailing list, the event has received a lot of attention. Some think it's trivial, other think it's ridiculous, but some are hopeful it will make young girls think that maybe a career in computing is something desirable and obtainable. I sure hope so.

I'll be buying one for the department... we could use a little more pink around here. wink


Update

A friend of mine converted the binary one's and zero's on Barbie's laptop into ASCII. Guess what it spells? Barbie.

Saturday, February 13, 2010

How do my students really feel about me?

Sometimes students tell you right to your face what they think about you or your class. Sometimes they let you know anonymously through teacher evaluations. And sometimes they think of more creative means.



This was from an assignment in my Mobile Computing class where I had my students develop a tic-tac-toe game for Android. My wife said she was going to have nightmares tonight after seeing this.