- What can I do if I have a question that is not answered on this
This semester we will be using Piazza
for class discussion.
The system provides a nice environment for discussing class-related
questions and getting help efficiently from classmates, the teaching
assistant, and the instructor.
Rather than emailing questions to the
teaching staff, we encourage you to post your questions on Piazza.
All 683 students should enroll in Piazza during the first week of
classes. Here is the signup link:
- Can I use an older edition of the textbook for the reading
The second edition has significant overlap with the third edition, so it
is acceptable. The schedule shows the assigned readings both
referring to the third edition (3e) and the second edition (2e).
- How do I access the Edlab account?
The EdLab page is: http://www-edlab.cs.umass.edu/.
You should each have an EdLab account. Your username is generally the
same as your UMass username (not the CS department username). If you had an
account last semester, your password should be unchanged.
Otherwise, the initial password will be given to you in class or
by a TA. If you cannot log in send email to system at cs.
The Linux EdLab machines are
called elnux1.cs.umass.edu, elnux2, elnux3, elnux7 .
Use one of these machines for any remote session. Please refer to
the EdLab page for more details.
- Can I work with others on a homework assignment?
Working in pairs is encouraged, but larger groups are
You can team up with one other student on each homework assignment.
Gradescope allows you to identify the other student and to upload the
completed homework only once.
- How do I hand in homework assignments?
This semester we will use an online tool called
for collecting and grading homework assignments.
Information on how to enroll in this class in gradescope will be
provided duing the first week of classes. You will be notified when the
system is ready for accepting the first homework assignment.
Here are a few guidelines regarding the preparation of homework
- Submissions have to be in portrait letter paper format and submitted
as a single PDF file. No other format is accepted, including any kind of
compressed file containing the PDF.
- When you upload a submission to Gradescope, it requests that you
identify which page contains the answer for each part. This can take
around 2 minutes, but some students wait until the very last minute to
submit and then rush through this process by selecting all pages for
every question. Please do not do this, as it makes grading much more
difficult. Please only assign the relevant pages for each part when
prompted. You may find it easiest (and it is certainly easiest for us)
if you answer each part of each question on a separate page, which is
quite easy to do in LaTeX with only a marginal increase in submission
- Please ensure the readability of your submissions. Typesetting
submissions (LaTeX, LyX, etc.) is strongly encouraged.
- Do not submit completely handwritten solutions, or solutions written
in a pure text editor, please! This makes it really hard for us to
grade, and more often leads to incorrect grades. Exceptions are complex
graphs, where hand drawing makes everything that much easier.
- Scanned portion of the homework assignment are
acceptable, provided that they are clear and well-organized.
Cell phone pictures are unacceptable. If you use your cell phone to
generate the PDF, use a scanning app such as
Dropbox or CamScanner, which
produce high quality results.
- Once a submission has been uploaded, we strongly recommend that you
verify the uploaded file.
- Sharing or copying solutions is unacceptable and could result in
- What programming languages are allowed for the homework assignments?
You can use C++, Java, or Python to complete the programming parts of
the homework. If you are interested in using another language, you must
obtain prior permission from the TAs. In any event, your code must run
on the Edlab machines.
- How do I hand in the programming portion of the homework?
Programming portions should be submitted electronically via the Edlab. Please
don't print out your code.
Upload the whole code through the
Edlab. The area for this course on the Edlab machines is located at
/courses/cs600/cs683. Each student has a
subdirectory, accessible only to that student and the course
administrators. In your directory, please create a subdirectory called hw_x, and use it to place code that you used for
Assignment x and the output. On linux, you can use scp to upload the files. For
will copy a file from your current directory to the Ed
You can use WinSCP with Windows.
Note that you will be depositing the code to
/courses/cs600/cs683/username/hw_x directory, not your home
directory. Please follow the hw_x naming convention because the
contents of this directory will be collected automatically. When
working in pairs, only one student needs to upload the code.
- What are the guidelines for the programming parts of the homework?
Here are a few guidelines regarding the programming portions of homework
- You must confirm that your code runs on the edlab
machine before submission. You should include
an example of how to run the code in a
file called README.txt
- In addition to submitting code for your problem via the Edlab please
indicate in the Gradescope submission the relative paths of the files
and which functions correspond to each part. We prefer that you follow
useful naming conventions, use one file per question, and
We need to be able to find your code in order to grade it,
so the easier you make this the better it is for us all.
- You may use public implementations of standard algorithms as long as
they do not reduce the problem to a triviality. In particular, you may
use the code provided by the
textbook, and this serves as a useful benchmark
for what sort of other public implementations would be considered
acceptable. If you think some third-party code answers too much of the
question you should check with the TAs well before the assignment
- Whenever you are using third-party code you must clearly cite your
source in the relevant parts of the Gradescope submission and indicate
which parts of your code are not your original work.
- Please reduce the submissions to contain only the code
solving the problem. Submitting an entire Github repo from the above
link with each homework assignment would be unnecessary and further
complicate locating your code.
- If you rely on public implementations of the code, be sure that it
passes a reasonably sanity check. For example, although most of the code
provided by the book is quite good the Python implementation of the
backtracking algorithm is not optimal (or perhaps even buggy).
It is up
to you to verify the correctness of any third-party code you rely on;
you may receive points off if the third party code contains errors which
negatively impacts your answer.
- What is the late policy?
Assignments are to be turned in by 11:59 PM on the due date. Gradescope
will automaticaly disable turning in homework after the deadline and no
parts of a programming assignment should be modified on the EDLAB. No
exception will be made.
If you cannot meet a deadline, you need to discuss that with the
in advance and make alternate arrangements for turning in your
- Can I use the AIMA code that came with the textbook?
This is generally permissible, but you must state clearly which parts of
the code were taken from the textbook.
You must follow the general guidelines listed above.
- Is it necessary to complete the optional parts of homework assignments?
Optional parts are exactly that -- entirely optional.
You can get an
"A" in the class without doing any of the optional work. However,
optional work will be graded and recorded separately, and will count
as bonus points when the final letter grade is determined.
© 2018 Shlomo Zilberstein.