forked from illinois-cs241/illinois-cs241.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
apply.html
403 lines (401 loc) · 17.5 KB
/
apply.html
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
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CS 241 Course Assistant Positions</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<style type="text/css">
.bs-example{
margin: 20px;
}
.center {
width: 60%;
margin: 0 auto;
}
/* Chrome, Safari, Opera */
@-webkit-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
body {
-webkit-animation-name: fadein !important; /* Safari */
-webkit-animation-duration: 4s !important; /* Safari */
animation-name: fadein !important;
animation-duration: 5s !important;
}
</style>
</head>
<body>
<div class="bs-example">
<ul class="nav nav-tabs navbar navbar-default navbar-fixed-top">
<li class="active"><a data-toggle="tab" href="#home">Home</a></li>
<li><a data-toggle="tab" href="#office">Office Hour and Lab Assistant</a></li>
<li><a data-toggle="tab" href="#mp">Assignment Developer</a></li>
<li><a data-toggle="tab" href="#honors">Honors Section</a></li>
</ul>
<!-- Need these line breaks for no good reasons for top sticky nav bar -->
<br/><br/>
<div class="tab-content center">
<div id="home" class="tab-pane fade in active">
<h1>CS 241 Course Assistant Positions Available!</h1>
<hr>
<p>
Are you interested in becoming a course assistant for CS 241: System Programming? <br/>
If so, then you should apply for one (or more) of the positions
below.
</p>
<hr>
<p>
All positions require dedicated people who have a passion for
teaching system programming.<br/>
Everyone is welcome to apply!<br/>
Those who submit a promising application will be offered an interview.
</p>
<hr>
<ul>
<li><a data-toggle="tab" href="#office">Office Hour and Lab Assistant</a></li>
<li><a data-toggle="tab" href="#mp">Assignment Developer</a></li>
<li><a data-toggle="tab" href="#honors">Honors Section</a></li>
</ul>
<a href = "https://goo.gl/forms/Ib0Syz2v0GfOjysF2" rel="no-follow" target="_blank"><h1>APPLY NOW!</h1></a>
</div>
<div id="office" class="tab-pane fade">
<h1>Office Hour and Lab Assistant</h1>
<hr>
<h2>Introduction</h2>
<div class="panel panel-default">
<div class="panel-body">
UIUC CS has a wide variety of talent ranging from those who know more than all the instructors combined to those who are still learning to use the terminal.
And at some point almost all of these students come to
office hours and lab sections to get extra help.
Whether it be drawing figures on the whiteboard or stepping
through GDB, the labor of instructor is priceless.
In fact, few things are more rewarding than helping a
student understand and develop a passion for the subject you teach.
</div>
</div>
<h2>Skills Required</h2>
<ul class="list-group">
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Patience and Empathy
</h4>
<p class="list-group-item-text">
A lot of the times students might ask you questions that you feel are "dumb" or "trivial", but the reality is that we were all there at one point and it is important to constantly empathize and think back to when you were a CS 241 Student.
Most of the time, you can fill the gap in a student's understanding of the material just by remembering why you struggled with the material and what helped you understand it.
However, some students might not get the material even after the third time you explained it to them.
This is where patience comes into play, since you probably just have to think of another way of explaining the material to them.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Friendly Personality and Demeanor
</h4>
<p class="list-group-item-text">
Students will most likely be stressed and upset after debugging for several hours and waiting on a long queue.
A lot of this tension is easily alleviated if you
approach them nicely :)
It is important to never appear condescending or annoyed.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Communication and Teaching Ability
</h4>
<p class="list-group-item-text">
Understanding is only have the battle to being an
effective teacher.
It helps to understand the material well and be comfortable with it, but if you can not explain the material, then you are essentially useless in office hours.
You also have to be adaptable in the ways you explain things, since how you understand the problem might not be how your students best understand a problem.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Debugging
</h4>
<p class="list-group-item-text">
It should go without saying that debugging is a critical
skill to have when helping students.
Most bugs can be easily found by using GDB, Valgrind and print statements.
Another important part of debugging is the ability to consider edge cases that your students might not have thought about.
And most importantly, you should be able to step through your students logic and help narrow the search for the line of code that is causing everything to go wrong downstream.
Keep in mind that not only are you debugging your
student's C program, but also their understanding of the
material.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Knowledge of the Assignments Given In the Course
</h4>
<p class="list-group-item-text">
Students will mainly come into office hours needing help
interpreting the documentation or debugging code.
You must be familiar with the assignments before you
can help students master them.
</p>
</div>
</ul>
<h2>Expected Time Obligations</h2>
<ul class="list-group">
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Team Meetings (1 or 2 hrs / week)
</h4>
<p class="list-group-item-text">
It is important for everyone on staff to be on the same
page.
Meetings also serve as a means for more experienced
course staff members to give less experienced course
staff members advice.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Office Hours (3 hrs / week)
</h4>
<p class="list-group-item-text">
It should go without being said that as an office hour assistant you will be hosting office hours.
This is the time where you will put yourself on the
chara queue and help students.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Lab Sections(2 or 3 lab sections = ~3 hrs / week)
</h4>
<p class="list-group-item-text">
Most lab sections will run about an hour and twenty minutes.
You are expected to have read the documentation already and at a high level know how to solve the assignment.
In the bulk of lab time, you will be going around
helping students with the assignment.
At the beginning of the lab, you will probably do a demo on the projector and explain to the students what they have to do.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Piazza (1 hr / week)
</h4>
<p class="list-group-item-text">
It is also important to answer questions on piazza,
since some students are too shy to come to office hours
or ask you in lab section.
Also, answering one question well on piazza can potentially resolve the problem for the entire class.
</p>
</div>
</ul>
</div>
<div id="mp" class="tab-pane fade">
<h1>Assignment Developer</h1>
<hr>
<h2>Introduction</h2>
<div class="panel panel-default">
<div class="panel-body">
Machine Problems and Labs are the meat and cheese of any programming course.
These assignments are supposed to be rigorous enough so that
students can fully apply their knowledge of systems and interesting enough, so that they have a memorable experience of the course.
Writing assignments involves coming up with a meaningful
assignments where students can master the learning
objectives.
Writing these assignments involves a lot of time drafting on whiteboards and bouncing ideas.
As you are writing these assignments you will have to ask yourself "What am I trying to have the students learn?".
Students are very busy and you can not give MPs that take 35 hrs and have them spend a bunch of time doing string manipulation (unless that is the intent of the assignment).
Finally, with any good assignments comes excellent documentation that is clear, concise, contextual and correct.
Assignment development is also where autograding comes into play.
Autograding is essentially writing scripts that can take a student's code and run a series of testcases to best measure its correctness and performance.
At a high level the process of autograding is as follows:
<ul class="list-group">
<li class = "list-group-item">Write testcases and scripts</li>
<li class = "list-group-item">Have script grade students acording to timetable</li>
<li class = "list-group-item">
<ul class="list-group">
<li class = "list-group-item">Pull code from SVN</li>
<li class = "list-group-item">Run each testcase</li>
<li class = "list-group-item">Gather statistics like points earned, memory usuage and time</li>
<li class = "list-group-item">Tally everything up</li>
</ul>
</li>
<li class = "list-group-item">Commit grades to gradebook</li>
</ul>
There are many assignments in a programming class and CS 241 is no exception.
All these assignments need to be graded and as the field of computing grow so does its students.
It is no longer feasible to grade all these assignments by hand or have every student present their code to a T.A.
</div>
</div>
<h2>Skills Required</h2>
<ul class="list-group">
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Firm Knoweledge of C
</h4>
<p class="list-group-item-text">
Unlike lab assisting and office hours, you will be doing a lot of coding for MP development.
It is exponentially harder to write and develop an MP than it is to solve an MP.
You will not be provided any utility functions, since you are the one providing them.
Everything that was out of the scope of the course is now fair game as a MP developer.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Solid Understanding of System Programming
</h4>
<p class="list-group-item-text">
As an assignment developer you must really understand the things you write, since writing a bug in your MP is equivalent to writing 400+ bugs that get deployed to students.
Any race conditions or memory leaks left in the provided code you write will be deployed to 400+ students.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Extensive Knowledge of Linux
</h4>
<p class="list-group-item-text">
As an assignment developer, you will probably have to write makefiles for the class.
You will need to understand Linux at a level that was never required of you as a student.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Goal Driven
</h4>
<p class="list-group-item-text">
You will need to be efficient with your student's time.
You need to set clear learning goals for your students.
It is very bad to waste your students time with an MP that is not relevant to the material being taught in the course.
</p>
</div>
</ul>
<h2>Expected Time Obligations</h2>
<ul class="list-group">
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Team Meetings (2 hrs / week)
</h4>
<p class="list-group-item-text">
You will need to meet with the rest of the assignment development team frequently.
This is so that everyone is on the same page on what the MP is supposed to teach its students.
This is also an excellent time for the team to separate out the work for a divide and conquer strategy, since you will constantly be up againt a deadline.
These meetings will also be an excellent time to learn from course staff more experienced than you.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Development and Testing (5 hrs / week)
</h4>
<p class="list-group-item-text">
You will need to develop meaningful assignments and doing so takes a lot of labor.
Even after the team has written documentation and a TA solution, you will need to test the provided code throughly.
This is to ensure the assignment is at least doable and hopefully catch any potential bugs.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Addressing Student Concerns (1 hr / week)
</h4>
<p class="list-group-item-text">
It would be a miracle for an assignment to be deployed without a problem, but the chances of this happening is slim to none.
The team will have to accommodate for bugs in the provided code and ambiguity in documentation.
This is also an important time to take in student
feedback so that the team can improve the assignment for future semesters.
</p>
</div>
</ul>
</div>
<div id="honors" class="tab-pane fade">
<h1>Honors Section Mentors</h1>
<hr>
<h2>Introduction</h2>
<div class="panel panel-default">
<div class="panel-body">
The honors sections for CS 241 is a lot like anything else in 241: fun, challenging and rewarding.
This section will be filled with the university's most talented and most enthusiastic.
This translates to the honors students being the most
knowledge-hungry and our pickiest customers.
They will expect a section that pushes the bounds of a system programming course and you will be responsible for providing exactly that.
Unlike the rest of the course, the content will be geared toward the A and A+ students.
You will interact with students that match and may surpass your intelligence and the thought of this should excite you.
If you have a deep passion for systems and want to instill that passion in the course's 1%, then this is the position for you.
</div>
</div>
<h2>Skills Required</h2>
<ul class="list-group">
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Mentoring
</h4>
<p class="list-group-item-text">
The bulk of your work will be meeting with
students who are working on difficult projects in all areas
of systems. You will guide them through weekly meetings where
you monitor progress and help them with issues.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Creativity
</h4>
<p class="list-group-item-text">
The honors section is all about reaching out to the A
and A+ students, so it is up to the staff running this
section to develop content that will engage them.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Confidence
</h4>
<p class="list-group-item-text">
The honors section will have the course's most demanding students.
These students are self-motivated, ambitious, diligent, talented (that's how they got there) and expect the same from you.
These standards are intimidating and require confident (and competent) people who are willing to meet them.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Flexible (Jack of All Trades)
</h4>
<p class="list-group-item-text">
Unlike the regular section, the honor section will be very streamlined on staff resources.
Meetings with students can scheduled at odd hours of the
week. On top of this, you will need to be able to help
students figure out different kinds of technology that
you may be unfamiliar with.
</p>
</div>
</ul>
<h2>Expected Time Obligations</h2>
<ul class="list-group">
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Mentoring (4-5 hr / week)
</h4>
<p class="list-group-item-text">
You will meet with 4 to 5 groups once a week for an hour
each.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Lecture (1 hr / week)
</h4>
<p class="list-group-item-text">
There will be weekly lectures on advanced system topics
given by rotating selection of staff members.
</p>
</div>
<div class = "list-group-item">
<h4 class="list-group-item-heading">
Staff Meeting (1hr / week)
</h4>
<p class="list-group-item-text">
There are weekly meetings to keep everyone on the same page.
</p>
</div>
</ul>
</div>
</div>
</div>
</body>
</html>