school

Learning in action!

  • Posted on April 29, 2010 at 5:47 pm

It’s always fun when you get to apply something you’re learning in a class to real life, right when you’re learning it.

I’m taking a Database Internals class, and we’ve spent a lot of time learning about indexes – what kinds there are, how each kind works, the pros and cons, etc.  This week we learned about implementing different query operators, different kinds of joins, etc.

Now, for those of you who don’t know, indexes help to make looking up certain information in a database faster.  I’ve never see the actual effect myself – all of the databases that I’ve worked with have been little toy databases of my own (with barely any data in them), or pre-established databases that already had the appropriate indexes.

Last night, C needed some help working with some data for his work.  He has an ENORMOUS spreadsheet that someone gave him, but he needed to make some changes to it.  It either couldn’t be done in Excel or would take a ridiculous amount of time, so he asked if I could do it with an SQL query.  I couldn’t actually think of a way to do it in a single query, but I did know a simple way to do it with a PHP script running a lot of SQL queries.  So we loaded the data up into a MySQL database I created for it* (and at first the file was actually too large to import into the database!) and I ran my script.  It took about a minute to run, maybe a little longer.  I tweaked it a bit to fix a couple of errors, and then it worked perfectly.

When finished, I decided, just for fun, to add an index to the table on one of the fields that was used a lot in the query.  Then I ran the script again, and it only took ~5 seconds!  This was really exciting for me – yes, I’m a nerd.  I really enjoyed getting to see the results of indexing in action, just like I’d learned about – and I especially love the fact that I know exactly how and why it worked!

Also, on a side note, computers are awesome.  What would take hours and hours of tedious manual labor took only a few seconds with a script and a properly-indexed database.  It still boggles my mind sometimes just how fast computers really are!

*Actually, getting the data exported from Excel and into the database was the hardest part, and took a lot longer than either of us expected – partially because the Excel file was so huge that it took several minutes every time we needed to do any operation on the data to get it ready for export.

Final term

  • Posted on April 28, 2010 at 7:23 pm

The course schedule is up for what will be my final term in grad school (Fall).  But, for the first time since starting school, there aren’t any that look especially interesting!  And there are very few that I am even eligible to take.  There are a total of ten 500-level classes, 5 of which I’ve already taken, and 1 of which I can’t take because I’m not a Ph.D. student.  That leaves me with 4 courses.  And I’m going to register for 3, so rather than picking which courses I want to take, I get to pick one course not to take.  It’s a good thing none of those 4 courses overlap, or my choices would be even more limited!

The good news is that, according to the CS department secretary, there are a couple of other classes that might be added.  At least one of them sounds very interesting and generally useful – Intro to Computer Security.  So I’m going to wait and cross my fingers that some other classes get added.  If they don’t, my final term may be a bit of a let down, unless the other classes surprise me.

Picking classes

  • Posted on February 6, 2010 at 6:03 pm

It’s already that time again – time to pick classes for next term!  (I haven’t even taken my midterms yet.)  I know that I’m going to take Relational Database Management and Algorithm Design/Analysis.  I have 5 classes that I have to decide on for my third class, but really I’m leaning towards either Parallel Programming or Advanced AI: Combinatorial Search.  The latter sounds pretty awesome, but it would mean that I have evening classes three nights a week – and I wonder if the Parallel Programming class would be more useful?  I’ve learned about parallel programming, but never actually done any.

Bussing it

  • Posted on January 26, 2010 at 9:53 pm

I’ve been taking the bus to and from school/work for about 4 months now, and I have to say that overall I love it.

Pros:

  • Time to read every day (this is huge!)
  • Less money spent on gas/car things
  • No parking garage/rush hour stress
  • I’m always on time now (because the bus won’t sit across the street and wait for me!)
  • Good for the environment
  • Feeling smug when I tell people I take the bus

Cons:

  • Adds a fair amount of commute time
  • My bus doesn’t run very frequently
  • No listening to NPR on the drive (exchanged for reading)
  • I drive so little now that I get more nervous when I do have to drive in the rain/dark/rush hour
  • I drive so little that at one point my battery went totally and completely dead.

To help offset those last two cons, I’ve been driving more in the evening when C and I go somewhere.  C always used to drive, because he enjoys it and I don’t.  Now I try to be the one to drive, both to keep my battery running and to keep in the habit of driving, so I don’t become too squeamish about it.  But overall, I’m way happier taking the bus than I was driving and dealing with the horrible parking garages.

Scratch that.

  • Posted on January 6, 2010 at 4:42 pm

Okay, fine.  No Computer Graphics for me.  Now I’m taking Network Routing instead.  3rd time’s the charm, maybe?  It better be, because it’s almost too late for any more adding and dropping.

A new term

  • Posted on January 5, 2010 at 4:53 pm

This was an excellent winter break!  I got to spend a week in Sunriver with C and his son, which was a lot of fun!  After a lovely few weeks of no class, the term has started again.  It will be tough for this term to beat last term – I think I learned more last term than I have any other term of school, and all of the classes were fun and had good professors.

This term I’m taking Programming Languages, Computer Graphics, and Counting, Probability and Computing.  (That last one is one class: Counting, Probability and Computing.)  It looks like it will be a mathier term than usual, which I’m looking forward to.

Programming Languages is one of the 3 required courses for CS grad students, and it looks like it will be a good class with a good professor, but I’m not anticipating it being earth-shaking.  We’ll be using Scheme, which I’ve never used before, so that’s good.

Counting, Probability and Computing is already my favorite class ever, although I suppose that could change as the term goes on.  It was learning some of this basic stuff that made me decide to minor in math as an undergrad, and I’m really looking forward to going more in-depth.  Today we did counting problems, and I had so much fun! How many different ways can you order a total of 6 donuts when there are 3 possible types of donuts?  How many different ways can you arrange the letters of the word MATHEMATICS so that every consonant is adjacent to at least one vowel?  I know this is super-nerd coming out here, but I can’t wait to do the homework!  Squee!

Computer Graphics will probably be the most challenging class.  It wasn’t one of the classes I originally registered for.  But I discovered earlier this week that the professor who was teaching the other class I originally registered for has no web page and doesn’t respond to e-mails.  I might be willing to accept this from, say, a history professor.  I would probably be willing to accept one or the other from a CS professor.  But both?  Since it wasn’t a class I was dying to take, I dropped it and added Computer Graphics instead.

I picked Computer Graphics because it looked the most interesting of the remaining classes I could register for, plus I have absolutely no experience at all in it.  I’m using my time in grad school at least partly to try to get a feel for many different areas of CS (while still taking several courses focusing on a couple of specific areas), and this seemed like a good way to broaden my horizons.  I had a humbling experience though: I totally bombed the math prerequisite quiz!  To be fair, most of it was covering things I haven’t used since I took Linear Algebra in 2003 (maybe 2004?), and some I hadn’t even used since geometry in high school!  Determinant of a matrix?  Nope.  Law of cosines?  Nope.  Convert from degrees to radians?  Nope.  I knew all of this before, and was very proficient at it, but 6-10 years of  no use tends to make one forget.  I’ve been reviewing like crazy and I’m sure I’ll be fine, but it will be challenging!