Tuesday, August 31, 2010

Some people scoff at those who have too many friends on Facebook. "They probably just friend a bunch of people they don't know to look popular," they say. While I'm not interested in having lots of 'friends' for that reason, I do find that Facebook can be incredibly valuable for networking. That's why I tend to have 400-500+ connections at any given time.

You know how when you used to go to a conference and you met someone you were interested in connecting with? The standard practice would have been to exchange business cards. I have no idea how often people would have corresponded before email, but before social media, email was the main choice. I remember emailing people after some conferences in my early undergrad years. We'd exchange one -- maximum two -- emails and then forget about each other.

One day in early 2007, someone I met at a conference finally convinced me to join Facebook. I had been avoiding it because the concept seemed dumb at the time (shows how much I knew), but finally relented so I could keep in touch with this person and a few other conference attendees.

This kind of networking is still probably one of my most valuable reasons to have Facebook to this day. Now if I want to keep in touch with someone, I find them on Facebook instead of thinking I'll actually email them more than the first time. I can have a passive connection with them where neither of us have to put any extra work into keeping in touch, but we don't forget about each other. Plus, if I see an update from one of these people that I think I can help out with, I jump on the opportunity. Most do the same for me. I've definitely seen many of them again thanks to this!

(Note: This goes for Twitter or any other social network that you and the other person you are connecting with use often. Take advantage of the places you hang out anyway!)

Saturday, August 28, 2010

Grace Hopper is fast approaching so I find myself, once again, madly going through my usual routine list of tasks to do before heading to a conference. Here's my process:

Get funding. This comes from different sources depending on the conference, ranging for me from our CU-WISE budget to Carleton's Student Activity Fund to my supervisor.

Make a Google Map. I create a new map for each conference or event I travel to. I start by plotting the main conference hotel. If applicable, I then add other hotel options. Finally, I add potential sight-seeing opportunities and restaurants I want to visit.

Book flights and hotel. This one's pretty obvious. Best to get it sorted out early.

Plan schedule. This certainly won't be set in stone, but I like to look through the conference program and decide what sessions are "can't miss," and add these to my Google Calendar. I also try to plan out the sight-seeing portions of the trip (I always make sure to have some extra time for looking around!).

Gather documentation and currency. I print out all my flight and hotel info, my schedule, and make a packing list. I make sure I have my passport and enough money in the appropriate currency. I also bring my marriage certificate because I changed my name on a lot of my documentation, but not my passport. This time I'm also going to order custom business cards to hand out at the conference.

Prepare camera. Fresh batteries, clean memory cards, and in my case, clean lenses. I also have to decide what equipment I'll take (lenses? flash? carrying cases?).

Prepare laptop/phone. Again, want to make sure they are well charged for the plane, and that I have all the charging cables. I also try to make sure all the software I might want is installed on the computer I'm bringing.

Pack. It really is best not to leave this until the last minute. Use the packing list you made earlier and cross stuff off once it's ready in your "packing pile." Be sure to be strategic in what you put in your carry-on if you are checking your main bag. Just pretend your main bag will get lost and put your essentials in the carry-on.

Triple check flight times. I've been wrong before.

Check in online. Even though it doesn't take much less time to do it online, I feel more comfortable, since I think it means I have a little more leeway time to get to the airport (since the cut-off for boarding is later than the cut-off for checking in). I hope I'm not wrong on this!

I think that more or less covers it. Anything else you do to get ready?

Tuesday, August 24, 2010

If you ever need to write up a paper in LaTeX and you aren't terribly interested in doing it by hand, I'd like to recommend the open source software LyX. It's not a WYSIWYG editor, but when writing in LaTeX that's probably not what you want, anyway. Rather, it abstracts only just enough of the annoying bits of writing a document by hand by creating the codes for you, but still making it quick and easy to do things like write equations and label figures.

(Not sure what LaTeX is or why you'd bother learning to us it? Check out this crash course on the subject to find out. I avoided it for a while because it was just "one more thing to learn," but the investment I finally made was totally worth it.)

If you're a Windows user, I wanted to share a few tips on LyX. Even though I've been using it for a couple of years now, I recently ran into some headaches and had to look all this stuff up, so hopefully I can save you the trouble.

When installing LyX, I like to have LaTeX set up first. I recommend MiKTeX.

Once that's installed, go ahead and install LyX. Get the standard installer here. This version assumes you already have LaTeX installed, and will automatically find where you put MiXTeK. In the past, trying to get everything all at once (i.e. using the bundle install) did not work well at all. Here's more info about LyX for Windows.

Once you start using LyX, you may find that your spell checker doesn't work (the most common checker used is called Aspell). This happened to me recently. Because of some changes to more recent editions of LyX, I couldn't get Aspell to work after installing the newest version of LyX. There are various possible reasons for this, such as needing to install the Aspell dictionaries.

In my case, the registry keys left over from old installs of LyX never got updated, so LyX couldn't find the dictionaries. If you get error messages when you try to start spell checking, try searching your registry keys for "aspell" and double checking that the paths stored in the keys are actually correct. Your copy of aspell might have been installed right on the c:\, or potentially in Program Files. You can even move the installed stuff to your LyX folder if you want to keep things together, just as long as you update those paths in the registry.

Next, if you have a document class file (*.cls) for a conference or something, you need to make sure both LaTeX and LyX know about it. This is pretty easy once you know how. This post tells you exactly how to do it.

One of the greatest things about LaTeX is how easy it is to create a bibliography using BiBTeX. You technically don't need to install anything extra to use BibTeX, but the source file (*.bib) is not so fun to write by hand (and after all, we are using LyX to avoid this sort of hand-coding in the first place!).

Instead, try a reference management tool like JabRef. It makes it easy to format your references and creates a BiBTeX file for you. You can even make adjustments by hand when that's easier.

Once you have a *.bib file, you just tell LyX to "Insert > List / TOC > BiBTeX Bibliography" and point to it. Then when you "Insert > Citation" all the references in your *.bib file will show up there for you to choose from.

If you get errors when trying to compile your LyX file into a PDF (or whatever), check that the codepage for your BiBTeX database supports the characters in your file, but isn't UTF-8 (it's not supported by BiBTeX even if JabRef allows it). You will also need to double check that the font you are using in LyX actually supports the characters you are trying to use. For instance, I recently had to switch from Times to Times Roman to accommodate some of the accented characters that were appearing in authors' names.

That's it for now - I hope you enjoy LyX and don't run into too many problems!

Friday, August 20, 2010

The Online Communities Committee for this year's Grace Hopper Celebration of Women in Computing has been working to bring you a series of how-to's that are intended to help you get the most out of the conference this year (before, during, and after).

With the advent of digital cameras, we can all consider ourselves photographers. But what happens to the hundreds of photos you'll inevitably take at this year's Grace Hopper? Instead of letting them sit unopened on your hard drive, why not share them with fellow attendees and those who couldn't make it? The best place to do this is on Flickr!

While Grace Hopper is a great technical conference, it is also a wonderful place to network and find jobs. When you're preparing for the conference, you should consider creating a LinkedIn profile or updating your existing one. LinkedIn is a great professional networking site, ripe with opportunities to reconnect to past colleagues and find new employment.

Those of you who have been to GHC know what a great opportunity it presents for networking - and those of you who haven't been before are soon to find out! Facebook is a great tool to help you make new connections and maintain them after the conference, so I wanted to share a few tips on using it to help you get the most out of this year's GHC.

Conference goers have rated the usefulness of participating in any online community very highly, and I can vouch for the fact that getting involved in any way really does enhance the experience. So don't delay! Go upload last year's photos or introduce yourself in a community today!

Tuesday, August 17, 2010

I've been leading an effort for our Women in Science and Engineering group, CU-WISE, to create a set of promotional items intended to be used during outreach events. We want giveaways that will be fun and that will leave the recipients with a positive image of studying science and engineering.

One of our Officers, Judy, offered to help design some buttons for our campaign. She came up with these images which are super cute!

As you can see the main theme is that "Smart Girls Rock!"

The next step is to produce a solo banner to put up at events. It should have some of these cartoons, possibly some photos taken at past outreach events, and a slightly longer slogan to go with the one on the buttons. I'd also take this design into a postcard which could have more information on what kinds of careers there are in science and engineering, or perhaps an explanation of the myths about these fields.

For the slogan, I'm thinking something like this, since there's often too much focus on the tools themselves (something males seem to prefer than females), rather than what you can do with them:

It's not about the lab coats, keyboards, or [something engineering related] - it's about making a difference in the world! Smart girls rock!

... but I'm not sure what to put for the engineering bit. I figure lab coats cover a lot of science and some engineering, and keyboards cover computing, but how to represent the rest?

If you have any ideas for the slogan or for the kind of material we should include in our postcard handouts, please do share your thoughts in the comments!

Friday, August 13, 2010

Some friends finally got me to download the iPhone version of the addicting game Carcassonne, and I've quite enjoyed it so far. But thanks to my recent desire to study games academically, I couldn't just enjoy it - I had to analyze it, too.

The first observation I made was about how my understanding of the game progressed. The first time I opened the app was when a friend requested that we play an Internet game. I tried to open the rules and read them, but didn't really understand them (this has a lot to do with the telling vs. discovery principle I discussed earlier). So I started placing tiles and Meeple (what they call the set of seven "followers" you place on the board to earn points) pretty much randomly.

After not having a clue what I was doing for a few moves, I switched to a local game against the built-in AI (in an Internet game you can end up waiting hours for the other person to move again). I noticed the AI opponent scored points any time it finished a city with its Meeple on it, and then even got the Meeple back, so I did that for a while, too. Same deal for scoring points for roads.

Eventually I needed to open the rules again to figure out how the fields and clusters worked. Just as one would expect, the explanations within suddenly made sense. I finally knew how all the scoring worked and could move on to coming up with strategies. I got a bit of a sense of good and bad moves with the AI games, but I learned the most playing with my friend in that first human-to-human game (which, by the way, he didn't win by all that much, considering I was clueless at the beginning).

After a day or two of playing, I started thinking about whether I thought this game would be better with real tiles or in its digital form (at that point, I didn't even realize there was a physical version - ha!). I figured that placing real tiles and the little followers would be much nicer than sliding digital tiles into place, but I also wondered how well I'd be able to count up the points. That part might be kind of annoying.

On the other hand, maybe being forced to analyze the field boundaries would have made me understand the rules more quickly. This is an interesting point. When I play board games during our bi-weekly meeting, we always have someone familiar with the game explain it to us and give us advice for the first few moves. Contrast this with my feeling of being in the dark in the digital version. It's pretty clear that I learn how to play physical games very differently from digital ones. Which way is more effective? Is one way better than the other at all?

It would be nice to try the physical version of Carcassonne and then play the digital version of a game I've already played in real life. I'd like to compare how I learned to play in each case and see if there is any advantage to one or the other.

Tuesday, August 10, 2010

Ok, obviously this potential proof for P != NP is causing quite a stir. I really wasn't planning on blogging about it, but today I had the opportunity to share the buzz with a group of grade 6-8 girls, so I thought I'd write about it from that perspective, since it's likely nobody else has.

I have a more or less preset workshop design that I use for most of my outreach with girls of this age. I start by introducing myself and explaining how university works before moving into what computer science actually is. I usually let them guess first, then give them a "big fancy definition" from Wikipedia. I break that down into a simple statement: Computer science is about figuring stuff out. This is followed by a list of questions like "What can be figured out automatically?" and "How hard is it to figure out?" I end with a selection of CS Unplugged activities.

I normally use the Travelling Salesman Problem as an example of a problem for the question "How hard is it to figure out?" that seems easy to solve, but that can take a really long time even with modern computers if you give it enough data. The idea that computers can't solve everything blows their minds.

Usually, I leave it at that, but today I threw in a little aside for them. I mentioned that the Travelling Salesman problem was part of a big group of similar problems that take a long time to solve, and that we aren't sure if there's some way to transform them into easier problems. I explained that if we can show how to do that, all these problems we couldn't really solve before suddenly become much easier. That also seemed to blow their mind.

The coolest part? When I mentioned "P vs. NP" some of them actually said "Oooh yeah!" or looked like they had heard the term before. I told them that someone put out a proof in the last couple of days that seems to show that P does not equal NP, and that the whole computer science community has been alight about this. They seemed to like being clued into what was making us all excited these last few days. ;)

Monday, August 9, 2010

Every lab report was the same. We started off by copying down the hypothesis written in the text book or lab assignment, listed the equipment used, wrote out the steps, and then summarized the results. A conclusion confirming the hypothesis ended the report.

Why oh why did we write a hypothesis when we already knew that what we were writing was the correct answer? I never really understood this throughout high school, and as a result, I didn't know what true scientific experimentation was really like until I did my science electives in university (and perhaps even that's arguable). We should have been asked to partially construct the question ourselves, and then figure out how to get an answer. There should have been some actual discovery in the process.

I was reminded of these high school experiences while reading James Paul Gee's book What Video Games Have to Teach Us About Learning and Literacy. I wrote about this book (specifically how identity relates to learning) before. The chapter that most recently caught my attention discussed the difference between overtly giving information to a student and letting her discover information completely on her own. Neither approach on its own is good; instead, a mixture of the two is needed. Unfortunately, my science experiences (and perhaps even most of my primary and secondary education) were pretty much all the first kind.

I'm trying to decide if computer science in university mixed the two concepts well enough. Lectures certainly almost always overtly gave information out of situated context. It's hard to understand programming from reading a book or hearing a lecture where we are given a bunch of technical information that we have to somehow remember when it comes time to do our assignments.

It would be a lot more effective to be given only the bare necessities needed to get us started (perhaps how to enter code into an editor, and how to compile and run it), and then letting us try it on our own. We'd muddle through it as best we could, and the professor would give us the key information we needed as we needed it. After all, that's how video games work, and we seem to be able to learn them smashingly well despite their complexity.

Sometime after I was done first year, our school introduced tutorials where students would do "labs" to practice what was taught in lectures. From what little I've seen from the outside looking in, typical tutorials are pretty step-by-step, just like my high school science labs. I'm not sure they had enough discovery amongst the overt information-telling.

A new stream for our degree is starting this year. It focuses on mobile and social computing. The first course will be offered in the fall and is going to have a very different setup than previous courses. There will be some minimal instruction at the beginning - just the bare bones. Then students will work on problems right there in the classroom on their own computers, figuring out how to do things mostly on their own, but with the professor's help as they need it.

Sound familiar?

This is exactly what we need in computer science. Let's hope the professor designing the course can pull it off and it can become a model of melding overt telling and discovery.