Friday, December 27, 2013

End of 2013

My family and I wish you a merry Christmas
and a happy New Year!

But the angel said to them, "Do not be afraid. I bring you good news of great joy that will be for all the people." - Luke 2:10

I consider myself to be a very blessed man to have a wife who loves me, two growing boys who give me much joy, friends and family who encourage me, and a career teaching computer science to eager college students. Whether these blessings continue this coming year or not, my hope is that God will be glorified in 2014 even more so than this year. Goodbye, 2013.

Friday, September 27, 2013

President McLarty's First 120 Days

Harding's fifth president, Dr. Bruce McLarty, took the reins from Dr. David Burks on June 1, 2013. He's been in office now for almost four months, and so far I believe he's done a fantastic job. Because Harding so rarely changes presidents, I thought it would be helpful to briefly summarize some of the more notable events in the transition from Burks to McLarty.

The picture below shows Dr. Burks handing over the office key to Dr. McLarty on the last day of Burks' presidency. I grabbed this pic from Dr. McLarty's Twitter feed. Yes, our new president is an avid tweeter.

For those of you reading this blog who don't know much about Dr. McLarty, he is a Harding graduate who was once a missionary in Africa and a preacher at the College Church of Christ which is located near Harding University. Eight years ago Dr. McLarty moved into academia, filling the role of vice president for spiritual life and later dean of the College of Bible and Ministry. He was named Dr. Burks' successor in November of last year. Dr. McLarty discusses the process of becoming president, his legacy and more in this online interview.

One of Dr. McLarty's first acts was to make some modest changes to the presidential cabinet. Dr. Jim Carr moved from executive VP to senior VP, and Dr. David Collins moved up to executive VP. Dr. Dan Williams was hired to fill Dr. McLarty's position as vice president for church relations, Floyd Daniel was retiring soon, and the other cabinet members were to continue with their current roles. Overall, it was a seamless continuation from the previous administration.

Summer graduation was probably Dr. McLarty's first large-scale ceremony to preside over, and he did something that many of the faculty had been secretly longing for for years: He nixed the singing of "Climb Every Mountain". Yes, the song that has traditionally been sung at the conclusion of every graduation ceremony since I can remember was finally put in its resting place.

On the first day of chapel, Dr. McLarty established a good rapport with the students by asking them what they did during the summer and using some well-placed humor, like asking Dr. Burks to spell camaraderie.

Dr. McLarty focused the first week of chapel on why Harding was unlike most universities, requiring the entire student body to attend daily chapel: "Chapel is about worship, community building, and confession." I noticed that many of the students "got it" and have put away their phones and books this semester to focus on God during chapel.

The first day of chapel Dr. McLarty also made the student body swear that if any of them ever thought they wanted to leave Harding, they'd first stop by his office and talk with him about it. Something tells me our retention levels are going to start increasing if the students will actually take him up on his offer.

We're six weeks into the fall semester, and so far it is business as usual. I imagine Dr. McLarty is still getting up-to-speed on being president, but so far the transition has been quite seamless.

I'll close with the Presidential Inauguration ceremony which occurred last Friday, Sept 20. Afternoon classes were cancelled so everyone could attend the ceremony on what was, unfortunately, a very rainy day. There were hundreds of guests on campus for the event. Some of them were representatives from other universities, like John deSteiguer, President of Oklahoma Christian University, who I chatted with briefly. The faculty were all part of the ceremony, and some served as delegates from their alma maters (I represented Old Dominion University).

You can watch the 2.5 hour ceremony online. My favorite part is the singing of The Battle Hymn of the Republic by the Harding chorus, choir, and orchestra. Look for it at minute 42 and stick around until the finale which was quite powerful.

I took the photo below which shows the former presidents Dr. Burks and Dr. Ganus placing the presidential medallion over Dr. McLary's head.

After the ceremony, the entire crowd moved to the Harding cafeteria for hors devours. It was a time of celebration as we welcomed our new president.

Monday, July 29, 2013

JCDL 2013 wrap-up

Last week I attended JCDL 2013 in Indianapolis along with Harding students Keith Enlow, Monica Yarbrough, and Daniel Sebastian. It's been four years since the last time I attended the conference, and it was great to see a lot of old friends. Below are friends from my days at Old Dominion University: Johan Bollen (now at Indiana Univ), Michael Nelson (still at ODU), and Martin Klein (now at LANL).

For a very thorough summary of the conference, see Justin Brunelle's blog post. There's some nice pictures here of the hotel and other events. Below I am going to highlight the work that my students and I presented. By the way, the Harding students who attended with me were the youngest attendees at the conference. This was a great experience for them, getting to interact with graduate students and researchers at their first academic conference.

The first day of the conference I presented a short paper that I co-authored with Richard Schneider entitled First Steps in Archiving the Mobile Web: Automated Discovery of Mobile Websites. This was work that Richard did as an undergraduate student in the summer of 2012 in which we try to automatically detect the URL for mobile sites so they can be archived.

The next evening Daniel Sebastian shared his poster Semi-Automated Rediscovery of Lost YouTube Music Videos. Daniel built a Firefox add-on called Volitrax last summer which helps Firefox automatically relocate music videos in YouTube when they are removed.

I manned Heather Tweedy's poster: A Memento Web Browser for iOS. Heather completed the iOS Memento Browser last summer, and I recently completed a new version for Android. The browser allows you to see web pages as they used to look using Memento underneath the hood.

After the conference concluded, we attended the Web Archiving and Digital Libraries Workshop (WADL 2013) which was organized by Ed Fox. There were about 20 of us in attendance, and with this smaller group we were able to have a lot of discussion about the work each of us was doing with web archives.

I gave an introduction into the problem of archiving the mobile web, and Monica followed with her work this summer on building a web service that others could use to find mobile websites. Keith concluded our joint talk with his work on getting Heritrix to archive some mobile sites. Our slides are below.

I really had a great time in Indianapolis. One unique thing I did there was to visit the Star Wars exhibit at the Indiana State Museum. They had all original costumes and models from the movies. It was a really cool exhibit for a Star Wars fan. I just wish my boys could have been there to see it!

Thursday, July 11, 2013

Harding campus transformation

Harding is undergoing an extensive physical transformation this summer. When the students return in the fall, things will look quite different. I took a few pictures around campus this morning which I've posted below.

On the east side of campus, the home which housed the former President has just been renovated for Bruce and Ann McLarty, Harding's new President and First Lady.

Moving further west we have the new softball field which is being prepared for Harding's new collegiate women's softball team. The stadium is the first thing you'll see when you drive into Harding's south entrance.

Just a hundred yards further west the new Health Sciences Building is nearing completion. They just started work on the parking lot a few days ago.

Further down the street you can see construction continues on Legacy Park. This is one of my favorite parts of campus because the architecture is beautiful, and it has a vibrant feel to it. The second picture shows the West Married Apartments which are days from being knocked down to make room for the second phase of construction.

Finally, some new construction next to Pizza Hut (south-west corner of campus). You'll never believe what is being built. Could it be a cool new place to hang out? A trendy new restaurant or coffee shop? No, it's another bank. Because 5000 banks within a two mile radius just isn't enough.

Looking forward to seeing all our students again next month!

Monday, July 08, 2013

Android update for Memento Browser

I'm pleased to announce the updated version of the Memento Browser for Android is now available. It's taken me a few months to update the UI, add some functionality, and fix some bugs that lingered in the old version. There are still some things I'd like to improve, but I wanted to get it out there before JCDL 2013 in two weeks where I'll be showing off the iOS and Android versions of the browser.

Please give the app a test-drive on your Android phone or tablet, and let me know what you think.

Update on 7/16/2013

You can now get the Memento Browser from the Google Play Store!

Thursday, May 16, 2013

Hand-writing code on exams

Yesterday I posted a question to the SIGCSE mailing list which garnered a lot of responses. I was interested in how my colleagues felt about requiring students to hand-write code on exams. It's a practice I've followed in most of my courses since I started teaching in 1997, and it's something all of my colleagues at Harding still do. Even the Computer Science AP exam requires students to hand-code their solutions.

The reason I asked this question was because this semester I started receiving more push-back than normal from students who complained about having to hand-write code on their exams. One beginner complained that he couldn't write well or quickly. Another said it was too different going from an IDE to paper. One didn't understand why I would ask him to write code that the compiler auto-generates (a getter and setter in a Java class), and another complained this would be the only time in his life that he would be forced to hand-write code, so what was the point?

So I put this to my colleagues: Is requiring our students to hand-write code on exams an out-dated way of assessing our students?

The question received more than 50 responses in the past 24 hours, most of them in favor of hand-writing code on exams. There were a few, however, who abandoned this practice a while ago in favor of exams which were at least partially completed with an IDE in a computer lab.

Below is a summary of the responses. I begin with various reasons why my colleagues have their students hand-write code on exams (the pros) followed by some reasons not to (the cons). At the end I summarize some of the best practices for those who require hand-written solutions and those using an IDE on an in-lab exams.

Pros of Hand-Writing Code

  1. Some instructors simply don't have easy access to a lab, so having their students hand-write code is the most feasible solution. And computers are not always reliable; they might have software problems, crash, etc.
  2. Many students experience much more stress writing code in an IDE under time pressures than hand-writing code because they can get hung-up on syntax errors. It's easier to give partial credit and forgive minor syntax errors like missing a semicolon when students hand-write their code. It's also difficult to control cheating when using an IDE since the computers are networked.
  3. Hand-writing code demonstrates the student's level of mastery without the aid of a crutch. Using an IDE can encourage students to "fish" for the answer... they may try many different things to see which one works without really understanding the problem or solution.
  4. When interviewing for a job, students will often be asked to hand-write code to solve various problems. And many programmers in industry collaborate by writing code on whiteboards without the help of an IDE. Of course the interviewers are usually more focused on the thought process and less concerned about syntax correctness. And coding on a whiteboard is also more about communicating ideas, not the syntax.
  5. Students should not rely too heavily on an IDE because every IDE is different and they are not always available.
  6. Some faculty feel there are some things that every programmer should be able to do, including hand-writing solutions to fundamental CS problems like "how many nodes are in a binary tree?". Surely some computing pioneers like Dijkstra would agree. wink

Cons of Hand-Writing Code

  1. Most real coding is done in an IDE, and writing code on paper is too tedious and foreign.
  2. Some instructors admit to needing the help of an IDE when they program because there are so many functions and differences between languages that it's difficult to remember everything. Why should we expect students to do with less?
  3. Many students can type much faster than they can write, so they are penalized for writing slow. College students hand-write much less today in general, and many feel more comfortable in front of a keyboard.
  4. Grading hand-written code is slow and painful. It's much easier to automate the grading of problem sets in an IDE where problems are either solved or not solved.

Best Practices for Hand-Written Exams

There are some things instructors can do to prepare their students to perform optimally when hand-writing code on an exam.

  1. Make sure students get plenty of practice hand-writing code before the exam so it is less foreign. Pre-tests are ideal.
  2. Make sure students don't have to write really long segments of code, certainly nothing over a page in length.
  3. Make sure hand-written coding exercises focus on the basics, not on memorizing lots of different functions and minutia. If students do need to use a library, include the interface documentation for the library on a supplemental handout.
  4. Beginners should be tested for precise syntax, but upper-level students should be given more leeway. Allow students to write in pseudocode if you are more concerned with the thought process rather than the syntax. (If syntax is more important, award pseudo-points for pseudocode. wink - Richard Pattis)
  5. Let students know that if they can't remember how to do something they can write a comment like "and here I resize the vector, I forget how."
  6. Instructors should hand-write code on the white board in front of students so they can see how it is done.
  7. To quell potential complaints, tell students in advance that they will often be expected to hand-write code in job interviews and on the job when computers are not nearby. Also tell them you will be much more forgiving when grading their code than the compiler will be.

Best Practices for In-Lab Exams

Several of my colleagues reported bad experiences with in-lab exams, but others suggested ways to do it successfully.

  1. Don't expect students to be able to solve the same number of problems in an in-lab exam as they would on paper. Reduce the number of problems significantly because they will get hung-up on some syntax errors.
  2. Use problems that are easily broken into small discreet steps that are as independent as possible so getting tripped-up on one problem doesn't stop the student from completing other problems. (Note: This is very hard to do.)
  3. Make sure students get practice writing code under time constraints, possibly with pre-tests, so they know they must study and use their time wisely. This will make the exam less stressful.
  4. You may allow students some Internet access to sites like StackOverflow to remind them of proper syntax or to get ideas on how to formulate a solution. Obviously you will have to trust that students are not collaborating, and you will need to ask problems for which no solution can be found online.

Thank you to the many SIGCSE members whose ideas contributed to this blog post. If you think of something else that should be added to the lists above, please email me or leave a comment.

Wednesday, March 20, 2013

March Madness for my CS students

I'm trying something new this year: getting my computer science students to participate in March Madness by filling out a bracket on Yahoo. I have 70 students this semester (10 are female), and so far only 6 have joined in. I'm a little concerned that basketball may not be all that popular among my techie students, but I have just hit gold: March Madness explained with Star Wars:

In case you were wondering, who did I pick to win? With nothing but seeding information, preferences to states I used to live in, and a random number generator, I devised an algorithm which picked Louisville over Georgetown. Yes, there are much better ways of picking a bracket.

I'll update this post once the tournament is over and reveal which student(s) beat me.

Update on 3/25/13

Nine students decided to participate. A few others wanted to, but Yahoo produces some pretty lame error messages and is not helpful in redirecting users to the right place to join a league. I'm currently in first place, but considering my overall points possible is much lower than others', my fall in the rankings is assured.

Update on 4/1/13

Due to some big upsets, I've managed to stay on top. I only picked two of the final four (Louisville and Syracuse), but that's apparently much better than most since Yahoo says my bracket is in the top 99th percentile. Thank you, Syracuse. Did you see the poor kid from Louisville break his leg? It was like watching Joe Theismann all over again.

Update on 4/9/13

Louisville's impressive win over Michigan secured my first place finish. Had Michigan won, one of my CS1 students would have been the winner. Yahoo reports by bracket is in the 99% percentile... probably the best bracket I've ever had. However, I don't think my students were quite as thrilled as I was.

Monday, March 11, 2013

Back from SIGCSE 2013

Yesterday I returned home from the SIGCSE 2013 Technical Symposium in my hometown of Denver, Colorado. This is the forth time I've been able to attend this conference which brings together over a thousand CS educators to share the latest research and innovations in computing education. This year's conference was very insightful, and it was especially nice being back in the city I grew up in. The sun was shining with a comfortable 65 degrees when the conference began, and it was snowing heavily on the final day. You just don't get weather like that in Arkansas.

I quickly wanted to jot down some of the take-away points:

  • Use Live Coding whenever possible, and avoid discussing completed programs which bore the daylights out of students. I currently write a lot of code on the board, but I'm becoming convinced that my students might be better off if they watched me actually code in the IDE and run it.
  • Start using version control in my upper level courses since it makes working in teams much easier, and employers are looking for students who are comfortable using it.
  • Introduce user experience (UX) evaluations in my GUI course. We talk about how the user feels theoretically quite often in the course, but it can be a real eye-opener to witness what a real user thinks about your software in a formal evaluation setting.
  • Integrate one of the nifty assignments or something similar into my CS1 course. I especially like the Twitter Trends assignment which introduces students to Data Science. As the moderator reminded us, "The one thing students are most likely to remember about your course are the projects."
  • The next time I teach a game programming course, use the Kinect which has a great SDK and is available to educators for $150.
  • Will MOOCs be the end of the traditional university? Short answer: No
  • The inverted classroom seems to me to be the future of education. I would love to try it, but I can only imagine the amount of time it must take to create all those videos. Three years ago I spent a few months creating instructional videos for a book publisher, and it turned out to be a much more time-consuming task than I had originally envisioned, especially for a perfectionist like me. And the problem with CS is that our tools and topics seem to always be in flux, so a video may only last you a few years.
  • Harvard's CS50 course has got some great online notes and is even filmed. Next time my CS1 students complain my course is too hard, I'll point them to the CS50 website. wink
  • Microsoft's TouchDevelop is promising for writing mobile apps, but it frustrated me when I tried to use it. For students who are new to programming, it might not be that bad.
  • Zyante's animated, interactive textbooks are intriguing. Must evaluate further for my CS1 course.

Finally, it was good to see some old friends. For those Denver friends I did not get a chance to see, I'm sorry, but I hope to return soon with my family and catch up with more of you.

Tuesday, February 12, 2013

Quick update

It's already mid-February, so time for a quick update. I'm teaching Internet Development 1 and 2, Introduction to Programming, and Web Science. Looks like I'll be attending at least three conferences this spring: This summer I'll be working with two Harding students on the final year of my WAC NSF grant. Hope also to attend JCDL 2013 in Indianapolis in July.