-
Notifications
You must be signed in to change notification settings - Fork 21
/
index.html
478 lines (433 loc) · 24.5 KB
/
index.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
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
<head>
<meta charset="utf-8">
<title>CS221: Artificial Intelligence: Principles and Techniques</title>
<script src="plugins/main.js"></script>
<script src="events.js?v=1"></script>
</head>
<body onload="eventsOnLoad(); fixScrollPosition()">
<style>
.cas {
font-size: 6pt;
margin: 0 auto;
text-align: center;
margin-left: 0px;
margin-right: auto;
}
.cas table {
width: 120%;
}
.cas td > div {
float: left;
min-width: 180px;
margin-bottom: 24px;
}
/* Temporary: for screenshotting to make teaching staff names all the same color regardless of links */
/*a { color: black; }*/
.cas img {
object-fit: cover;
border-radius: 100%;
height: 80px;
width: 80px;
margin: auto;
}
.staff img {
object-fit: cover;
border-radius: 100%;
height: 120px;
width: 120px;
margin: auto;
}
.photos {
margin: auto;
text-align: center;
}
.photos_staff {
margin: auto;
text-align: center;
}
</style>
<div class="section">
<div style="float:left; clear:left">
<img width="90" src="stanford_seal.gif"/>
</div>
<div style="margin-left: 30; margin-top: 20">
<div class="top assignmentTitle">
CS221: Artificial Intelligence: Principles and Techniques
</div>
<div class="top nav">
Stanford / Autumn 2019-2020
</div>
<div class="top">
<a class="nav" href="https://calendar.google.com/calendar/embed?src=v5s92jlmd4u5mo741l73hkr9ek%40group.calendar.google.com&ctz=America%2FLos_Angeles">[Calendar]</a>
<a class="nav" href="#coursework">[Coursework]</a>
<a class="nav" href="#schedule">[Schedule]</a>
</div>
</div>
</div>
<br/>
<!--
<div class="section">
<span class="header">Under construction!</span>
</div>
-->
<div class="section">
<span class="header">Logistics</span>
<div class="section"><b>Time/location:</b>
<ul>
<li>Lectures: Mon/Wed 1:30-2:50pm in NVIDIA auditorium (<a href="https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#folderID="e0d0e67a-eac1-4cec-b7e5-aacc0181b781"">watch online</a>)</li>
<li>Sections: Thurs 3:30 - 4:20pm in Skilling auditorium</li>
<li>Office hours: CA office hours are in the Huang basement; see <a href="https://calendar.google.com/calendar/embed?src=v5s92jlmd4u5mo741l73hkr9ek%40group.calendar.google.com&ctz=America%2FLos_Angeles">calendar</a> for times; see <a href="#officehours">[Office Hour Logistics]</a> for logistics.</li>
</ul>
</div>
<div class="section"><b>Communication:</b>
We will use <a href="https://piazza.com/class/jzhx357491j6nw">Piazza</a> for all communications:
announcements and questions related to lectures, assignments, and projects.
NOTE: If you enrolled in
this class on Axess, you should be added to the Piazza group automatically,
within a few hours. You can also register independently; there is no access code required to join the group.
SCPD students, please email <a href="emailto:[email protected]"> [email protected]</a> or call 650-204-3984 if you need assistance.
</div>
<div class="section"><b>Gradescope</b>:
You will submit all assignments and project milestones on <a
href="https://www.gradescope.com/courses/56827">Gradescope</a>, where you will also find your grades.
</div>
<div class="section">
<b>Instructors:</b>
<div class="staff" style="width: 50%; margin-right: 25%; margin-left: 25%">
<div class="cas">
<table>
<tr>
<td>
<div class="photos_staff"><div><img src="photos/percy.jpeg" alt="percy"></div><div><br/><a href="https://cs.stanford.edu/~pliang/">Percy Liang</a></div></div>
<div class="photos_staff"><div><img src="photos/dorsa.png" alt="dorsa"></div><div><br/><a href="https://dorsa.fyi/">Dorsa Sadigh</a></div></div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="section">
<b>Course assistants:</b>
</div>
<div class="cas">
<table>
<tr>
<td>
<div class="photos"><div><img src="photos/reid.jpg" alt="reid"></div><div><br/><a href="https://cs.stanford.edu/~rpryzant/">Reid Pryzant</a> (Head CA)</div></div>
<div class="photos"><div><img src="photos/susmaria.jpg" alt=""></div><div><br/><a href="https://www.linkedin.com/in/susannamariababy/">Susanna Maria Baby</a></div></div>
<div class="photos"><div><img src="photos/dibai.jpg" alt=""></div><div><br/>Di Bai</div></div>
<div class="photos"><div><img src="photos/zbarnes.jpg" alt=""></div><div><br/><a href="https://www.linkedin.com/in/zachabarnes1/">Zach Barnes</a></div></div>
<div class="photos"><div><img src="photos/hanchcao.jpg" alt=""></div><div><br/><a href="http://hanchengcao.me/">Hancheng Cao</a></div></div>
<div class="photos"><div><img src="photos/horace.jpg" alt=""></div><div><br/>Horace Chu</div></div>
<div class="photos"><div><img src="photos/wdeaderick.jpg" alt=""></div><div><br/>Will Deaderick</div></div>
<div class="photos"><div><img src="photos/haoshen.jpg" alt=""></div><div><br/>Haoshen Hong</div></div>
<div class="photos"><div><img src="photos/cindyj.jpg" alt=""></div><div><br/>Cindy Jiang</div></div>
<div class="photos"><div><img src="photos/chumak.jpg" alt=""></div><div><br/><a href="http://chumakabaghe.com">Chuma Kabaghe</a></div></div>
<div class="photos"><div><img src="photos/dkedia.jpg" alt=""></div><div><br/>Dhruv Kedia</div></div>
<div class="photos"><div><img src="photos/jkotker.jpg" alt=""></div><div><br/>Jon Kotker</div></div>
<div class="photos"><div><img src="photos/rdm.jpg" alt=""></div><div><br/><a href="https://www.richarddiehlmartinez.com">Richard Diehl Martinez</a></div></div>
<div class="photos"><div><img src="photos/mpalsson.jpg" alt=""></div><div><br/>Marcus Pålsson</div></div>
<div class="photos"><div><img src="photos/chuanbo.jpg" alt=""></div><div><br/>Chuanbo Pan</div></div>
<div class="photos"><div><img src="photos/jerryqu.jpg" alt=""></div><div><br/>Jerry Qu</div></div>
<div class="photos"><div><img src="photos/azt.jpg" alt=""></div><div><br/><a href="http://andrewztan.com/">Andrew Tan</a></div></div>
<div class="photos"><div><img src="photos/sharmant.jpg" alt=""></div><div><br/>Sharman Tan</div></div>
<div class="photos"><div><img src="photos/waites.jpg" alt=""></div><div><br/>Christopher Waites</div></div>
</td>
</tr>
</table>
</div>
</section>
</div>
<div class="section">
<a name="content"><span class="header">Content</span></a>
<div class="section"><b>What is this course about?</b>
What do web search, speech recognition, face recognition, machine translation,
autonomous driving, and automatic scheduling have in common?
These are all complex real-world problems,
and the goal of artificial intelligence (AI) is to tackle these
with rigorous mathematical tools.
In this course, you will learn the foundational principles that drive these
applications and practice implementing some of these systems. Specific
topics include machine learning, search, game playing, Markov decision
processes, constraint satisfaction, graphical models, and logic.
The main goal of the course is to equip you with the tools to tackle new
AI problems you might encounter in life.
</div>
<div class="section"><b>Prerequisites:</b>
This course is fast-paced and covers a lot of ground,
so it is important that you have a solid foundation on both the theoretical and empirical fronts.
You should have taken the following classes (or their equivalents):
<ul>
<li>Programming (<a href="http://www.stanford.edu/class/cs106a/">CS 106A</a>, <a href="http://www.stanford.edu/class/cs106b/">CS 106B</a>, <a href="http://www.stanford.edu/class/cs107/">CS 107</a>)</li>
<li>Discrete math (<a href="http://www.stanford.edu/class/cs103/">CS 103</a>)</li>
<li>Probability (<a href="http://www.stanford.edu/class/cs109/">CS 109</a>)</li>
</ul>
</div>
<div class="section"><b>Reading:</b>
There is no required textbook for this class, and you should be able to
learn everything from the lecture notes and homeworks.
However, if you would like to pursue more advanced topics or get another
perspective on the same material, here are some books:
<ul>
<li><a href="http://aima.cs.berkeley.edu">Russell and Norvig. Artificial
Intelligence: A Modern Approach.</a> A comprehensive reference for
all the AI topics that we will cover.
</li>
<li>
<a href="http://mitpress.mit.edu/books/probabilistic-graphical-models">Koller and Friedman. Probabilistic Graphical Models.</a>
Covers factor graphs and Bayesian networks (this is the textbook for CS228).</li>
<li>
<a href="https://mitpress.mit.edu/books/reinforcement-learning">Sutton and Barto. Reinforcement Learning: An Introduction.</a>
Covers Markov decision processes and reinforcement learning. Available free online.
</li>
<li>
<a href="https://web.stanford.edu/~hastie/ElemStatLearn/">Hastie, Tibshirani, and Friedman. The elements of statistical learning.</a>
Covers machine learning. Available free online.
</li>
<li>
<a href="http://www.bracil.net/edward/fcs.html">Tsang. Foundations of constraint satisfaction.</a>
Covers constraint satisfaction problems. Available free online.
</li>
</ul>
Bear in mind that some of these books can be quite dense and use different
notation terminology, so it might take some effort to connect up with the
material from class.
</div>
<div class="section"><b>Video Access Disclaimer:</b>
Video cameras located in the back of the room will capture the instructor presentations in this course. For your convenience, you can access these recordings by logging into the course Canvas site. These recordings might be reused in other Stanford courses, viewed by other Stanford students, faculty, or staff, or used for other education and research purposes. Note that while the cameras are positioned with the intention of recording only the instructor, occasionally a part of your image or voice might be incidentally captured. If you have questions, please contact a member of the teaching team.
</div>
<div class="section">
<a name="officehours"><span class="header">Office Hour Logistics</span></a>
<ul>
<p>
CA office hours are either in the Huang basement or online.
See the <a href="https://calendar.google.com/calendar/embed?src=v5s92jlmd4u5mo741l73hkr9ek%40group.calendar.google.com&ctz=America%2FLos_Angeles">calendar</a> for the schedule. Stanford students have in-person office hours. SCPD students have online office hours.
<ul>
<li> For in-person office hours, there will be a queue on the whiteboard where you can write your name down.
<li>For SCPD online office hours, you will need to register an account on <a href="http://queuestatus.com">QueueStatus</a>.
When you wish to join the queue, click "Sign Up" at the <a href="http://queuestatus.com/queues/129">CS 221 queue</a>.
Be sure to enter your email when you "Sign Up"; this is a way for the CA to contact you.
For online office hours, you will need to install Zoom to video call with the CA. See instructions below.
</ul>
<p class="subheader">Installing Zoom</p>
<ul>
<li><b>Linux</b>:
<ul>
<li>Go to <a href="https://stanford.zoom.us/download?os=linux">downloads</a> and download appropriate Linux package from 'Zoom Client for Linux'.</li>
<li>Open package (e.g. with 'Ubuntu Software Center' or other appropriate application) and install.</li>
</ul>
</li>
<li><b>Windows</b>:
<ul>
<li>Go to <a href="https://uit.stanford.edu/service/zoom">Stanford Zoom</a> and click 'Launch Zoom'.</li>
<li>Click 'host meeting'; nothing will launch but there will a link to 'download & run Zoom'.</li>
<li>Click on 'download & run Zoom' to download 'Zoom_launcher.exe'.</li>
<li>Run 'Zoom_launcher.exe' to install.</li>
</ul>
</li>
</ul>
</div>
<div class="section">
<a name="coursework"><span class="header">Coursework</span></a>
<p class="subheader">Grading</p>
<ul>
<li><b>Homeworks</b> (60%):
There will be weekly homeworks with both written and programming parts.
Each homework is centered around an application and will also deepen your understanding of the theoretical concepts.
Some homeworks will have a competition component; winners will receive extra credit.
Here are all the homework deadlines:
<p><div id="homeworks"></div></p>
</li>
<li><b>Exam</b> (20%): The exam is a three-hour written exam that will
test your knowledge and problem-solving skills on all preceding lectures and homeworks.
You cannot use any external aids
except one double-sided page of notes.
If you have a major conflict (e.g., an academic conference),
<a href="https://forms.gle/7SC1JzjXWKpY47BN6">submit a request</a> to take it at another (earlier) time.
Your request must be submitted by <strong>Thurs Oct 31</strong>.
<div id="exam">
<blockquote>
Date: <strong>Tuesday, November 19, 6:15 - 9:15 PM (PST)</strong></b></br>
Location: last name <strong>A-K</strong>: Hewlett 200, <strong>L-S</strong>: Cubberley Aud, <strong>T-Z</strong>: 420-040
</blockquote>
<ul>
<li>
<a href="/autumn2019-extra/exams/aut2019-exam.pdf">2019 exam</a>
[<a href="/autumn2019-extra/exams/aut2019-exam-solution.zip">solutions</a>]
</li>
<li>
<a href="/autumn2019-extra/exams/aut2018-exam.pdf">2018 exam</a>
[<a href="/autumn2019-extra/exams/aut2018-exam-solution.zip">solutions</a>]
</li>
<li>
<a href="/autumn2019-extra/exams/aut2017-exam.pdf">2017 exam</a>
[<a href="/autumn2019-extra/exams/aut2017-exam-solution.zip">solutions</a>]
</li>
<li>
<a href="/autumn2019-extra/exams/aut2016-exam.pdf">2016 exam</a>
[<a href="/autumn2019-extra/exams/aut2016-exam-solution.zip">solutions</a>]
</li>
<li>
<a href="/autumn2019-extra/exams/aut2015-exam.pdf">2015 exam</a>
[<a href="/autumn2019-extra/exams/aut2015-exam-solution.zip">solutions</a>]
</li>
<li>
<a href="/autumn2019-extra/exams/aut2014-exam.pdf">2014 exam</a>
[<a href="/autumn2019-extra/exams/aut2014-exam-solution.zip">solutions</a>]
</li>
<li>
<a href="/autumn2019-extra/exams/aut2013-exam.pdf">2013 exam</a>
[<a href="/autumn2019-extra/exams/aut2013-exam-solution.zip">solutions</a>]
</li>
</ul>
</div>
<br />
For SCPD students, your exams will be distributed through the SCPD office once you have set up an exam monitor.
<br /><br />
</li>
<li><b><a href="project.html">Project</a></b> (20%): The final project provides an opportunity for you to
use the tools from class to build something interesting of your choice.
Projects should be done in groups of up to three.
The project will be something that you work on throughout the course and we have set up some milestones
to help you along the way:
<p><div id="projects"></div></p>
See <a href="project.html">the project page</a> for more details.
<p>
Regardless of the group size, all groups must submit the same basic amount of work as detailed in each milestone.
Of course, the experiments may not always be successful,
so we will cut the smaller groups more slack,
while larger groups are expected to be more thorough in their experiments.
</p>
<p>For inspiration, we have made some <a href="https://github.com/stanford-cs221/sample-projects">previous CS221 projects</a> available for viewing.</p>
</li>
<li><b>Piazza</b>:
You will be awarded with up to 2% extra credit
if you answer other students' questions in a substantial and helpful way.
</ul>
<p class="subheader">Assignments</p>
<div class="section"><b>Written assignments:</b>
Homeworks should be written up clearly and succinctly; you may lose points if your answers
are unclear or unnecessarily complicated.
Here is an <a href="homework-example.html">example</a> of what we are looking for.
You are encouraged to use LaTeX to writeup your homeworks
(here's a <a href="homework.tex">template</a>), but this is not a requirement. You will receive
<b>one (1) bonus point</b> for submitting a typed written assignment (e.g. LaTeX, Microsoft Word).
We will accept scanned handwritten assignments but they will not receive the bonus point.
</div>
<div class="section"><b>Programming assignments:</b>
The grader runs on Python 3, which is not guaranteed to work with older versions (Python 2.7).
Please use <a href="https://www.python.org/downloads/">Python 3</a> to develop your code.
<p>
The programming assignments are designed to be run
in <b>GNU/Linux</b> environments.
Most or all of the grading code may incidentally work on other
systems such as MacOS or Windows, and students may optionally
choose to do most of their development in one of these alternative
environments. However, no technical support will be provided for
issues that only arise on an alternative environment. Moreover,
no matter what environment is used during development, students
must confirm that their code (specifically, the student's <code>submission.py</code>) runs on <a
href="https://www.gradescope.com/courses/56827">Gradescope</a>,.
<p>
The submitted code will <b>not</b> be graded if it has one of the following issues:
<ul>
<li>The original <code>grader.py</code> script (operating on the
submitted <code>submission.py</code>) <b>may not exit normally</b>
if you use calls such as <code>quit()</code>, <code>exit()</code>,
<code>sys.exit()</code>, and <code>os._exit()</code>.
Also note that Python packages outside the standard library are not guaranteed to work. This includes packages like numpy, scikit-learn, and pandas.</li>
<li>The code reads external resources other than the files given in the assignment.
<li>The code is malicious. This is considered a violation of the honor code.
The score of the assignment will be zero (0) and the incident will be reported to the Office of Judicial Affairs.
</ul>
</div>
<div class="section"><b>Collaboration policy and honor code:</b>
You are free to form study groups and discuss homeworks and projects.
However, you must write up homeworks and code from scratch independently, and you must acknowledge in your submission all the students you discussed with.
The following are considered to be honor code violations:
<ul>
<li>Looking at the writeup or code of another student.</li>
<li>Showing your writeup or code to another student.</li>
<li>Discussing homework problems in such detail that your solution (writeup or code) is almost identical to another student's answer.</li>
<li>Uploading your writeup or code to a public repository (e.g. github, bitbucket, pastebin) so that it can be accessed by other students.</li>
<li>Looking at solutions from previous years' homeworks - either official or written up by another student.</li>
</ul>
When debugging code together, you are only allowed to look at the input-output behavior
of each other's programs (so you should write good test cases!).
It is important to remember that even if you didn't copy but just gave
another student your solution, you are still violating the honor code, so please be careful.
We periodically run similarity-detection software over all
submitted student programs, including programs from past quarters and any
solutions found online on public websites.
Anyone violating the <a
href="https://communitystandards.stanford.edu/student-conduct-process/honor-code-and-fundamental-standard">honor
code</a> will be referred to the Office of Judicial Affairs.
If you feel like you made a mistake (it can happen, especially under time
pressure!), please reach out to the instructor or the head CA;
the consequences will be much less severe than if we approach you.
</div>
<p class="subheader">Submission</p>
<div class="section"><b>Electronic Submission:</b>
All assignments are due at <b><font color="red">11pm</font> (23:00, not 23:59) Pacific time</b> on the due date.
Assignments are submitted through <a href="https://www.gradescope.com/courses/52612">Gradescope</a>. Do not submit your assignment via email. If anything goes wrong, please ask a question on Piazza or contact a course assistant.
If you need to sign up for a Gradescope account, please use your @stanford.edu email address.
You can submit as many times as you'd like until the deadline: we will only grade the last submission.
<b>Submit early to make sure your submission runs properly on the Gradescope servers.</b>
Gradescope will run <code>grader.py</code> on the programming questions and give you feedback on non-hidden test cases.
<b>You are responsible for checking that your program runs properly on these cases. You will not get credit otherwise.</b>
If anything goes wrong, please ask a question on Piazza or contact a course assistant.
Do not email us your submission.
<b>Partial work is better than not submitting any work.</b>
<p>
For assignments with a programming component, we will automatically
sanity check your code in some basic test cases, but we will grade
your code on additional test cases.
<b>Important</b>: just because you pass the basic test cases, you are by no
means guaranteed to get full credit on the other, hidden test cases, so you should
test the program more thoroughly yourself!
<p>
Unless the assignment instructs otherwise, all of your code modifications
should be in <code>submission.py</code> and all of your written answers
in <code><assignment ID>.pdf</code>. Upload the former to Gradescope
under the "Programming" section, and the latter under the "Written" section.
</br>
For the project milestones, make sure the <b>all members</b> of your
group submits. The submission should include a
<code>group.txt</code> file which should contain the <b>SUNetIDs</b> of the entire
group, one per line.
</div>
<div class="section"><b>Late days:</b>
An assignment is $\lceil d \rceil$ days late if it is turned in $d$ days past the due date (note that this means if you are $1$ second late, $d = 1$ and it is 1 day late).
You have <b>seven (7) late days</b>
in total that can be distributed among the assignments (except for p-poster, p-peer, and p-final)
without penalty</b>. After that, the maximum possible grade is <b>decreased by 25% each day</b> (so the best you can do with $d = 1$ is 75%).
As an example, if you are out of late days and submit one day late, a 90 will be capped at a 75, but a 72 will not be changed.
Note that we will only allow a max of $d = 2$ late days <i>per assignment</i>, though, so if $d > 2$ then we will not accept your submission.
Gradescope is set up to accept written and programming submissions separately.
Late days are calculated per-assignment, with the number of late days used depending on the later submission.
So, if the programming part is $1$ day late and the written part is $2$ days late, then that will count as using $2$ late days.
</div>
<div class="section"><b>Regrades</b>: If you believe that the course
staff made an objective error in grading, then you may submit a
regrade request for the written part of your assignment. Remember
that even if the grading seems harsh to
you, the same rubric was used for everyone for fairness, so this
is not sufficient justification for a regrade.
It is also helpful to cross-check your answer against the released solutions.
If you still choose to submit a regrade request, click the corresponding
question on Gradescope, then click the "Request Regrade" button at the
bottom.
Any requests submitted over email or in person will be ignored. Regrade requests for a
particular assignment are due by Sunday 11:59pm, one week after the
grades are returned. Note that we may regrade your entire submission,
so that depending on your submission you may actually lose more points
than you gain.
</div>
</div>
<div class="section">
<a name="schedule"><span class="header">Schedule</span></a>
<div id="schedule"></div>
</div>
</body>