summaryrefslogtreecommitdiff
path: root/posts/2020-07-11-why-computer-science-at-w-m.php
blob: f2fb3d14ad65c03dd4b0fd5337684f88bfe3389d (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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
<?php
$title = "Why Computer Science at William and Mary";
if (isset($early) && $early) {
	return;
}
include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
?>

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