Filed under Uncategorized

5 tips for computer usage during exam time

It’s been over a week since I last posted and in that week I’ve been very busy with schoolwork and exam prep (not to mention catching up after being at NCUR for the better part of a week). It’s been hard for me to get time to do anything besides stay in step with my work, but necessity is the mother of invention and so I’ve managed to learn some lessons that help me to squeeze out a little more useful time out of each day. It helps that I’m on a fairly tech-savvy college campus and hence no more than a few short minutes away from computer with a network connection. This post is devoted to how to make the best use of computer time when there is a ton of other stuff to do.

1. Timebox communication

Timeboxing is a time management strategy where you put together all related tasks into a single (slightly large) time slot and get them done all together. More importantly, when time is up you stop and move on to other things no matter what’s left. This isn’t the best strategy for all things (like any creative work), but it works great for more mundane things. Since most of my communication is electronic, timeboxing works very well. I have 30 minutes in the morning and another 30 minutes to an hour in the evening where I sit down with all email and Facebook messages and get everything cleared out. I don’t check my email in between unless there’s something urgent.

2. Keep work online

College students are always on the move. One great way to squeeze more out of the day is to not have to go back to your room to get your work. Keeping most of your work online means that you can get a little work done whenever you have a network connection (and for most college campuses you’re never too far from one). This doesn’t work if you need a textbook, but can be good for writing papers or doing online research.

3. Don’t be afraid to disconnect

In contrast to my last point, the internet can easily become distracting and disconnecting can be the only way to actually get work done. Don’t be afraid to pull the plug if it’s cutting into worktime.

4. Use calendars and reminders

With a mass of deadlines looming, it can be easy to forget what comes when and have everything just coalesce into an indistinguishable mass. Having a good calendar with some sort of reminder feature is absolutely essential. I use Google Calendar and for the past few weeks it’s been a lifesaver. I use it to schedule out my time as well as keeping track of deadlines. Scheduling is probably the best way to make sure that useful time doesn’t go to waste. Of course, you actually do need to follow the schedules that you make for yourself.

5. Keep notes on a computer

This is most helpful if you do it throughout the semester, but can be especially useful right before exams. Notes for classes are much easier to reorganize and structure if they’re electronic and print-outs are certainly easier to read. This doesn’t always work out for diagrams, but for plain text there’s almost no reason not to do it.

Life lessons learned from NCUR 2009

NCUR 2009 is over and I’m back at college. The last few posts are reports of the things I saw and found interesting. I came across quite a few good ideas, some of which I will be exploring in the future. However there are some real-life day-to-day lessons I learned from the experience of going to a conference for the first time. Most of the things I’m about to list are actually pretty common sense things, but they’re not always things that are actively on one’s minds. Without further ado, here’s the list:

  1. Make a checklist and actually use it. It’s amazing how easy it is to miss simple everyday things when you’re packing for a short trip. Keeping an actual list of things to pack and checking off on them helps a great deal. Priority should be given to things like toothbrushes, razors, medicines and other sanitary and essential items.
  2. Always pack a few more clothes than you think you’ll need. This doesn’t mean pack a full wardrobe, but there’s nothing wrong with a spare T-shirt or two, no matter how light you want to travel.
  3. Figure out your look before you leave. If you’re going on stage or meeting a lot of people, then you probably have some image of yourself that you want to present (consciously or not). Please think through this image (if you care about it) and prepare accordingly. It’s fine to dress casual, but wearing a shirt and tie with running shoes is probably not something you want to do. On the same note, make sure everything you want to wear actually fits properly.
  4. Prepare yourself. Whether you’re giving an oral presentation, showing a poster or just mingling with the crowd, make sure  you know about whatever it is you plan to talk about. In particular, rehearse an oral presentation, know the details behind everything you put on a poster and be prepared for questions. Also I’ve learned that it’s better to admit that you don’t know the answer to a question than to try and fudge your way out of it.
  5. Have your equipment ready. This is related to the last point, but not quite the same. For example, you can have a great rehearsed presentation but that doesn’t mean your immune from technical difficulties and the like . In the case of computer science, if you want to show some program you wrote, make sure it’s up and running before you begin your presentation.
  6. Take your time and take a break. If there’s a lot going on at a conference, then it’s very tempting to just keep on moving from one thing to another as fast as possible. Depending on the specific circumstances, that could be a good idea. But sometimes it’s worth slowing down. I made a conscious choice to pick a few sessions and presenters that I thought would be interesting and spent most of time there. I also left enough time to just walk around and relax. I think I had a better experience than if I had just moved around at full speed.
  7. When it’s time to go, make an early start. I’ve never really been late for a departure, but I have been pretty close on a few times. It’s much less stressful to be early even it requires sacrificing a few hours of sleep. Additionally, there’s time left to deal with any last minute things that might pop up.
  8. Have fun and learn what you can. There’s not much in going to a conference if you’re not going to enjoy yourself and come away from it with something interesting. I don’t think there’s any simple rule of thumb on how to do this, but I think that following the above might help to some extent.

If you have any ideas on how to make the most of a conference or just travel in general, please drop me a comment.

Sunday Selection 2009-04-05

Reading:

Almost Perfect I was born too late to be part of most of the technical innovations of the 80s, and not being born into a particularly technological family, I missed most of the 90s too. But I love stories about important events in the computer industry. In some ways they feel like the folk tales of particularly interesting, somewhat quirky culture. This is one of those stories which talks about Word Perfect, the word processor of legend.

Media:

The Sixth Sense Ever wondered when technology would stop being locked inside a box? This presentation is a look at what information technology really should be like.

Software:

Nexuiz This is an open source first person shooter available for Windows, OS X and Linux. They just released version 2.5 and as the screenshots show, it can hold its own pretty well against commercial offerings.

A time for planning and a time for coding

    Over Spring break I’ve been reading the older archives of own of my favorite blogs: Coding Horror. Though a lot of the posts are worth reading for anyone involved in computer programming, one that I feel is especially worth mentioning is Development is Inherently Wicked. The article talks about how it is almost impossible to fully plan out a complete software project and then have that plan hold throughout the process of creating the software. Though I’ve personally never been involved in a large scale software project, I’ve come to realize how true this is even with small projects.

For the past week I’ve been busily writing a Python package to allow interaction with a Hemisson robot. My initial planning was very simple: I would have only a very simple function-based interface.  The actual hardware interaction would be separate from the part the user used and there would be a simple configuration file which the user could edit. Was this enough planning with which to start writing code? I was afraid it might not be, but in the end it turned out to be a good thing. I managed to write the hardware interface in just a few hours and in just about 80 lines of code. It would have taken far less time, but there was some ambiguity in the Hemisson documentation that made me fiddle around directly with the robot to get things right.

It was when I started to build the configuration system that I had to deal with the other side of the coin. It was very tempting to jump in and quickly come up with some sort of config file syntax and then write up a parsing routine for it.  It would have worked and it probably would not have been much work. But I decided to fight the temptation to hack away and instead read up on Python tools for doing this sort of thing. After reading about online and posting to the Python-tutor mail list I came upon a simple, more elegant solution: the config file would be a Python file itself and I would make use of Python’s intrinsic ability to import modules stored in external files to access it and read. A little bit of planning thus eliminated the need for a rather large amount of complexity and code to handle that complexity. I’ve just finished another round of coding: a part of the actual module that the user will be using. I’ve managed to create simple functions for moving the robot and for accessing its sensors. However since the robot does not include any hardware to keep track of its position, writing more complex functions such as turning through a particular angle will be significantly more challenging. Once again, I need some planning and research.

The lesson I’ve learned is that doing a good job of making software involves a fairly fine balance between making careful plans and just sitting down and pumping out some code. So how can you know which one is more important? The answer is two-fold. Firstly, its a mistake to think that planning and coding are separate actions. They are part of continuous loop and a healthy software project must treat them as such. There has to be a decent level of feedback from the code to the plans and the plans have to make sure that bad code isn’t written just because it is easy and the first thing that comes to mind. Even while I was writing my hardware control routines I had to think about how I would deal with different hardware configurations and how to let the program parse and adapt to the configuration information. Like a lot of computer science, this is a good example of choosing the middle path: realizing that either extreme can lead to a badly implemented or even incomplete project and that staying close to the middle is the best way to go.

If you’re interested in learning more about this approach to programming projects, read though the entire article and Coding Horror and the book that it references.

Tagged

Enter the ByteBaker

I’ve been blogging on and off since 2005, more off than on. As I’ve mentioned before, my spotty record is mostly due to the fact that I’ve never really had anything very compelling to put out on the Internet. But as I continue exploring computer technology and continue my formal studies in the field, I realize that I’m getting exposed to lots of different and interesting ideas and coming up with many of mine. Most of them are probably not very original, though perhaps people still find them interesting. But irrespective of that, I know that a lot of these thoughts and experiences are things that I would like to keep on record and would like to share with other people out there.

With that in mind, I’m going to make a commitment to recording my thoughts and ideas over the next few years as well as keeping a record of my projects and experiments. I’ve registered a domain name and this blog now routes to it. I’m still running off WordPress.com and will be for some time, but I’m going to be posting everything under my new website : The ByteBaker.

Why call it The ByteBaker? Many people have differing opinions on what computer science really is. According to MIT professor Gerald Jay Sussman, computer science is not a science and is really not about computers. Over the last few years I’ve come to agree with him. Computer science in general and programming in particular seems to be to be quite similar to cooking: If you start mixing ingredients at random, you might come up with something that is edible, but it probably won’t taste very good. To make a good dish you need an understanding of your ingredients and utensils as well as a fair amount of improvisation and inspiration. Computer science is similar that you need to understand the concepts and tools that are a part of your trade and to actually produce something novel and interesting you need a healthy dose of imagination and daring. While cooks and bakers use various raw ingredients such fruits, vegetables, spices, meats, etc., for computer scientists all our creations can be described in terms of bits and bytes: hence enter the ByteBaker (also alliteration is kinda cool).

So what does all this mean for you? Probably not a lot at the moment. You might want to upgrade your bookmarks to point to The ByteBaker instead of Xtreme Computers, because in a few months I will be moving to a different hosting solution so that I can have more control over the WordPress installation. If you’re a feed subscribers, you don’t have to do anything at all: I’ll still be publishing at the old feed URL. So just sit back and enjoy the ride!

Tagged ,
Follow

Get every new post delivered to your Inbox.

Join 338 other followers