summaryrefslogblamecommitdiff
path: root/programming/2020-07-11-why-computer-science-at-w-m.html
blob: 9d98c9c7c2614ea2ab14e5a0da56a9ebd098c4ac (plain) (tree)






























































































































































































































































                                                                                
<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="/includes/stylesheet.css" />
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta
      property="og:description"
      content="The World Wide Web pages of Adam Carpenter"
    />
    <meta property="og:image" content="/includes/images/logo_diag.png" />
    <meta property="og:site_name" content="53hor.net" />
    <meta
      property="og:title"
      content="Why Computer Science at William and Mary"
    />
    <meta property="og:type" content="website" />
    <meta property="og:url" content="https://www.53hor.net" />
    <title>53hornet ➙ Why Computer Science at William and Mary</title>
  </head>

  <body>
    <nav>
      <ul>
        <li>
          <a href="/">
            <img src="/includes/icons/home-roof.svg" />
            Home
          </a>
        </li>
        <li>
          <a href="/about.html">
            <img src="/includes/icons/information-variant.svg" />
            About
          </a>
        </li>
        <li>
          <a href="/software.html">
            <img src="/includes/icons/git.svg" />
            Software
          </a>
        </li>
        <li>
          <a href="/hosted.html">
            <img src="/includes/icons/desktop-tower.svg" />
            Hosted
          </a>
        </li>
        <li>
          <a type="application/rss+xml" href="/rss.xml">
            <img src="/includes/icons/rss.svg" />
            RSS
          </a>
        </li>
        <li>
          <a href="/contact.html">
            <img src="/includes/icons/at.svg" />
            Contact
          </a>
        </li>
      </ul>
    </nav>

    <article>
      <h1>Why Computer Science at William and Mary</h1>

      <p class="description">
        Recently a rising high-school senior asked for input on what going to
        the College of William and Mary was like for a Computer Science degree.
        They were asking about the program itself as well as what it's like on
        and off campus. Here's what I sent to them.
      </p>

      <h2>Quick Intro</h2>

      <p>
        I graduated with a Bachelor's in Computer Science from W&amp;M in 2018.
        I'm a couple years in the workforce now but can still remember my
        experiences well enough to hopefully add my honest opinion on my time
        there as well as how it prepared me for my career. I will also add a
        little bit about my time on campus in a dorm and off-campus in Colonial
        Williamsburg.
      </p>

      <h2>Courses and Curriculum</h2>

      <p>
        I felt very positively about the array of courses that were offered
        while I was a student. I took a variety of core prerequisites, just like
        everyone else, and a good mix of electives. The courses I took include
        Data Structures and Algorithms, Software Development/Engineering,
        Computer Organization/Architecture, UNIX Systems Programming, Computer
        Graphics/Animation, and Computer and Network Security. This list is not
        exhaustive and I'm sure they aren't all offered anymore. I was also
        required to take a few math classes (Calc I, II, Discrete Math, Linear
        Algebra, and Finite Automata).
      </p>

      <p>
        It is true that the courses listed at <code>cs.wm.edu</code> aren't all
        offered at the same time. And it is also true that the higher-level
        electives pretty much all required my core prerequisites to be
        completed. The result is that the electives all came in my final two
        years. My understanding is the curriculum is designed to give someone
        the best possible background in computing as a whole. A lot of the
        topics may seem like they would never be useful in the "real world" but
        I have found the opposite is true. I am an application developer at a
        three-letter company. My day-to-day work is building and debugging web
        apps, but there's been a lot more to it than that. My first assignment
        on the job was scraping bytes off a remote shell and writing a parser to
        sift through them. The level of understanding I gathered from my core
        classes helped more than I expected they would. I think as a whole they
        give me an edge at work and help me teach my colleagues about
        algorithms, performance, and systems administration.
      </p>

      <p>
        That being said, course registration was always nightmarish. It was very
        difficult to get into the limited seats in the classes I was most
        interested in. Eventually the heads of the department had to pass around
        a sign up sheet and organize every student into courses, classrooms, and
        professors so that seniors would graduate on time and we could all get
        <em>something</em> on our schedules. I hope the shortage of teachers has
        caught up since I graduated. I learned from a long-time faculty member
        that this is largely a result of the exponential growth of incoming CS
        degree-seekers. The program has grown very popular in the last ten years
        and I like to think grads are catching on to that.
      </p>

      <h2>Teaching</h2>

      <p>
        CS@W&amp;M had neutral to good instructors for me. Some were far worse
        than others, as with all subjects. When I was there, lots of the older
        faculty were retiring and quickly being replaced with younger, newer
        instructors, which added to the growing pains of the program. The most
        important thing again was making sure there were enough teachers to
        teach all of the students.
      </p>

      <p>
        I know a few of my peers were very upset about what they described as a
        lack of communication or availability from their professors. Some have
        also mentioned they didn't like having to learn material on their own
        and wanted more to come from instruction. I don't deny that the material
        itself was difficult and there was a lot of hard work I had to do on my
        own to understand very involved concepts in intense, fast-paced courses.
        I think that hard work has paid off. I don't think there's realistically
        anywhere someone can learn about computing where they won't do any
        learning on their own. I am also a very visual, and hands-on learner so
        I suppose your mileage may vary.
      </p>

      <p>
        The most important takeaway from this for me was the ability to pick up
        new concepts and technologies quickly and apply them productively. The
        majority of professors had project-driven courses. Lots of due dates
        meant learning how to transform what I read or learned in class into
        practical applications in short amounts of time. This has become,
        according to those I work with, one of my greater assets. I am
        constantly learning new things in my career and I don't have a lecturer
        to explain things to me. It's very powerful to have that and I am
        thankful for it. It also helps me teach that knowledge to my colleagues
        so we can move faster as a team.
      </p>

      <h2>Campus</h2>

      <p>
        I agree with my peers about the conditions of classrooms and buildings
        on campus. Some are old. I guess that comes with an old university but
        there are a choice few that haven't been kept up as best they could.
        Since CS is growing so fast it's also long outgrown its own offices.
        Classrooms are scattered throughout every academic building on campus
        and I probably had a CS course in at least 80% of them. That meant
        jumping from one side of campus to another and back again in between
        periods.
      </p>

      <p>
        The College itself isn't too sprawling. I am long-legged and I found I
        could get from one end of campus to another in fifteen minutes on foot.
        I rode bike a lot to get to classes where I only had ten minutes to do
        it. It's also pretty marshy and woodsy in a lot of areas, so during the
        rainy season some walking paths got muddy or flooded. Good boots
        required. I have never been in as good shape as when I had to do all
        that walking but I definitely got soaked and winded making those
        transitions.
      </p>

      <p>
        I appreciate history and architecture and was drawn in by the look and
        feel of William and Mary as a result. Without getting too romantic, it's
        definitely a beautiful place to attend classes. The ancient Wren
        building still holds classes and it's a monument to the College's
        tradition. However, I really appreciated the modern academic buildings
        on the other side of campus where all of the new construction was taking
        place. Modern lab equipment and the library lived there.
      </p>

      <p>
        The dorms were nothing to write home about. Lots of them were nested in
        the woods and built ages ago so they were a little tired and even dingy.
        Others are brand new and well maintained; ask around and get opinions on
        which ones to go for first chance you get. I made do with what I got for
        the first couple of years by keeping it clean and decorated. My last two
        years I lived in a couple of off-campus apartments. It was well worth
        the switch. Depending on where you are on campus you may need at least a
        bike to access local restaurants, shops, and the grocery store. A bike
        is a good idea anyway but it's not necessary for every dorm.
      </p>

      <h2>Colonial Williamsburg</h2>

      <p>
        Lots of my peers didn't appreciate CW as a "college town" but I enjoyed
        my time there. I can't speak about parties or clubbing, I was boring and
        didn't do any of that. I made a great group of friends and we would walk
        into town to get ice cream, see historical attractions (most of which
        are free as a student, IIRC), and see movies or plays when we weren't
        studying or playing video games in the dorm. There are some good,
        sort-of-affordable restaurants but they're kind of driving distance.
      </p>

      <p>
        The best part about living there was meeting my wife. We would go on
        long walks to get away from studying and wound up seeing
        horse-and-carriages and the Governor's Palace and things like that. We
        would also escape with her car to go to some of the surrounding towns to
        get away to nice grocery stores and fun places to eat and explore on the
        weekends. I also have family in the area so it was easy for me to stop
        by home and say hi, although I know lots of students wanted to get as
        far away from home as possible.
      </p>

      <h2>Parting Words</h2>

      <p>
        I don't consider myself a gung ho alumnus. There are lots of things I
        think could be improved, both in CS and at W&amp;M as a whole but I do
        not regret my going there. There is no such thing as "everything is
        great" or "everything is terrible". It's not so definitive. I had my
        fair share of gripes and at times it strained me. There were pros and
        cons but I think I have a lot to be thankful for (I landed my job
        through W&amp;M recruiting and the career center as well, which are
        fantastic resources). I cannot say "do this instead of that." I haven't
        gone to any other colleges and don't know enough about them to recommend
        them as better or worse. What I can recommend is the same path I took
        for folks who want to pursue a degree in Computer Science. I think
        you'll come away from it all the more knowledgable, resourceful, and
        dedicated.
      </p>
    </article>
  </body>
</html>