How can I display only sticky posts from a parent category on the homepage?

OK … code might still be a bit on the flimsy side, but here’s what I came up with (still not posting the old, even crappier, PHP; sorry down-voter ) in case anyone else might have use for it or can improve on it.

<section class="column first">
  <h2>What's New</h2>
  <?php 
    $sticky = get_option( 'sticky_posts' );
    $args = array(
      'category_name' => 'news',
      'post__in'  => $sticky,
    );
    query_posts( $args ); while (have_posts()) : the_post();
  { ?>
  <h3><?php the_title(); ?></h3>
  <?php the_content(); ?>
  <?php } endwhile; wp_reset_query(); ?>
</section>
<section class="column middle">
  <h2>Country Projects</h2>
  <?php 
    $sticky = get_option( 'sticky_posts' );
    $args = array(
      'category_name' => 'projects',
      'post__in'  => $sticky,
    );
    query_posts( $args ); while (have_posts()) : the_post();
  { ?>
  <h3><?php the_title(); ?></h3>
  <?php the_content(); ?>
  <?php } endwhile; wp_reset_query(); ?>
</section>
<section class="column last">
  <h2>Featured Publications</h2>
  <?php 
    $sticky = get_option( 'sticky_posts' );
    $args = array(
      'category_name' => 'publications', //This is the parent category, no need for using the cat ID this way.
      'post__in'  => $sticky,
    );
    query_posts( $args ); while (have_posts()) : the_post();
  { ?>
  <h3><?php the_title(); ?></h3>
  <?php the_content(); ?>
  <?php } endwhile; wp_reset_query(); ?>
</section>

Feel free to improve this or comment on how it can be optimised and/or pros and cons to my approach.