Thursday, November 27, 2008

Course Message Boards

When I was a student I never really used the course message boards.  I never found any help or answers there.  Right now I am taking a course/seminar at the University of Hawaii.  As part of the course we are required to participate on the message boards.  It has been difficult for me to get really involved, mostly  because no one else is really posting anything for me to comment on.  I also hate commenting just to earn credit, which I have done a few times.  Forcing people to comment on a message board seems to cheapen the conversation.

I bring this topic up because I read a post on Phil Windly's blog talking about receiving a lot of email (not spam) and trying to respond to it all. I do agree that no matter what you do, you probably will never keep up with all your email.  However, as a teacher, I can really use Tantek's advice.  Whenever you receive an email question, you could post it on the course message board, along with your response.  Then when you get that question again, just refer the student to the board.

In theory, students will look at the board and see that their other questions were answered on the board, and then start checking the board before emailing their professor.  Hopefully, the class could transform a previous unused and unnoticed message board into their first source for help.

To make the process easier, it would be really nice to have a drag-and-drop interface to just drag your email conversation to the message board.  Then, for students with similar questions, you could drag their email to the post, which would automatically reply to their message with a link to that post.  Maybe that will be my next project.

Monday, November 3, 2008

Aaron Curtis - From Monologue to Dialog

Aaron Curtis from Indiana University came to BYU-Hawaii and did a presentation on his dissertation research.  He is studying how much adding a whiteboard (Microsoft One Note) to a typical chatroom (Microsoft Meeting) can improve group understanding.  Although his results are not complete, he says it does look promising.

I think the main advantage of the whiteboard was having an information store.  With just an instant message, facts that have already been stated will scroll off the screen.  With the whiteboard, the facts stay where they are.  The whiteboard makes perfect sense when all of the information fits on the screen.  It would be interesting to see what happens when it doesn't, and if some of the standard information visualization techniques would be enough to make it advantageous.

Saturday, November 1, 2008

Researching Local Races

So I really wanted to know more about the local races here in Hawaii.  I have been getting a lot of fliers in the mail and heard a lot on the radio/TV, but I wanted to research the facts for myself.  Luckily, I found a web site at the Honolulu Advertiser that lets you see all of races, and view the candidates' responses to the issues.  It also had links to their website if you wanted to find out more.

The two best things about the website are: 1)  you can select where you live, and you only get the races on your ballot, and 2) you can select all of the candidates that you want to vote for and then print out your selections to bring with you into the voting booth.  It took me about an hour and a half to research all of my local races, which is about as much time as I wanted to put into it.

I wish that it also explained the ballot initiatives and had the arguments for and against each one.  Instead, I just had to read a brief description on each initiative to see it it really matters to me, and then do web searches to research the issues that do.

The official Honolulu County election site is really bad.  I couldn't even find out which races I would be voting in.  It has a link that says "Find out more about the candidates."  When I clicked on it, it just sent me to a page that tells me how to apply to run for office.  The ballot intiatives links aren't very helpful in explaining what the intiative really does, unless you are a laywer.

Thursday, October 30, 2008

Teaching Object-Oriented Programming

Since a lot of our students come here with very little computer experience, we had our beginning programming course split into two courses.  The first half focused on variables and control structures, and the second half focused on object-oreinted programming with C++.  Some time last year we decided to teach a scripting language (Perl) in the first course due to it's simplicity -- hello world is only one line.  We then created a two course series in object-oriented programming in Java.  This would allow us to make sure our students had a solid object-oriented background and three classes to develop their programming and problem solving skills, something that takes a lot of practice.

During the summer, I spent a lot of time creating labs and planning lectures for this new Java course.  After my Java class today, I had a discussion with a few struggling students.  After listening to their comments, I realized I had made a mistake on how I organized the class.  I decided to follow what most textbooks suggest and even brag about, focus on objects right at the beginning.  To me, this sounded like the best way to explain objects and classes.  An object is just like an object in the real world.  It has a nice interface and you just tell it what to do and it does it.

Today, I realized a major problem with this. They are still trying to grasp the concept of methods, and now they have to put the method in one file and the call in another.  They are still trying to grasp the concept of a variables, and now they put the declaration at the top of a class, and then use them inside the methods.  Plus, when they want to use a variable they are probably writing their main method and the variable is hidden in another file.  On top of all of this, they are trying to solve a problem.  Try working out a math problem on a bunch of different puzzle pieces and then put the pieces together in the right order to form a solution.  Thinking back to my beginning programming class, I remember struggling with the same thing when I first learned about objects and classes.

So here is my solution.  First, teach them about variables and how to use them.  Next focus on types, and then control structures, methods, and arrays.  Then present the idea of an object and class.  But first, as just a bunch of different variables that are related (like a struct).  What might work best is an example of keeping track of students -  their names, ids, and addresses.  Isn't it a lot of work to declare a string for each student and a int for their id and another string for their address and somehow keep them related?  Wouldn't it be nice to have all of those grouped together in an "array"?  Well we can, it's called an object.  Make the member variables public and use them like any other variable.  Next explain how it would be nice if the address edit method was somehow grouped with the student as well.  Then explain the constructor, and work towards encapsulation.

This way, the student first learns the basics without the need to memorize where everything goes.  They also learn object-oriented programming the same way it was invented, which shows the value of object-oriented programming.  Show them the structured programming way, and then show them how object-oriented programming improves upon it and simplifies the code.  By thinking that the why of oo-programming is to complex to explain, I actually made oo-programming more confusing.

Now I have to reorganize my class for next semester.

My First Post

I figured I should dedicate my first post to explaining why I decided to start a blog.  As a Computer Science professor, and a PhD student, I realized that I needed to practice my communication skills and get involved.  Although I would prefer to be strictly on the reading side of technology, in order to really be a part of it I need to contribute.  Hopefully this blog will the the perfect starting place.

Although I don't really consider myself a leading expert in technology or in teaching, I plan on sharing my thoughts and ideas on teaching technology -- thus my blog title Tecno-pedagogia.  I will also include my ideas on my PhD research in online collaboration and teaching, which gladly fits under the same topic.  Of course, I reserve the right to to post about any other topic that may be on my mind.

I encourage comments and ideas so please feel free to share.  All I ask is that you be respectful.