summaryrefslogtreecommitdiff
path: root/posts/2020-07-11-why-computer-science-at-w-m.md
blob: 25f2789de765baff60ddd8454ee60594e77aa376 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
---
permalink: "/posts/{{categories}}/{{slug}}"
title: Why Computer Science at W&M
categories:
  - life
tags:
  - william
  - and
  - mary
  - computer
  - science
excerpt_separator: "\n\n\n"
published_date: "2020-07-11 14:58:18 +0000"
layout: post.liquid
is_draft: false
---
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. 

# Quick Intro

I graduated with a Bachelor's in Computer Science from W&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.

# Courses and Curriculum

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).

It is true that the courses listed at `cs.wm.edu` 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.

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 _something_ 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.

# Teaching

CS@W&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.

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.

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.

# Campus

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.

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.

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.

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.

# Colonial Williamsburg

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.

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.

# Parting Words

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&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&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.