Description
The goal of this course is to prepare undergraduate students to do
research in any area of computer science, collaborating with
students and faculty to: perform experiments, read and write
research papers, and give presentations to an academic audience.
We plan look at good research in diverse areas of computer science
so that students can both choose an area of research wisely and
recognize fruitful research questions within larger projects.
The course will also cover tools and techniques for collaborative
authoring and typesetting of research papers.
In sum, the goal is to convey knowledge such that students can meaningfully
contribute to research projects of their own and with research groups in
the computer science department.
Prerequisites
The prerequisites for this course are admission to the CS
Departmental Honors program, which in turn requires completion of
216 and 250 (or exemption) and a CS GPA at or above 3.5 and an
overall GPA at or above 3.25. Alternatively, permission from the
instructor can be given on a case by case basis.
Please try to include senior and junior students in each group;
there are students without 330 or 351 who may be interested in
projects that rely on languages included in 330 or theory in 351.
List of topics (tentative)
This course covers a very broad range of topics within computer security, with the
goal of instilling a
security mindset, and teaching some of the core
principles of security that will allow students to pursue expertise in the
field upon completion.
The following list of lecture topics will vary in terms of pace and project
emphasis:
- What is CS research?
- How to to read a paper and understand what it means
- How to to identify CS research in the wild and view “real problems” through a researcher’s critical eye
- How research ideas make their way into practice/adoption
- How to critically analyze and review a paper
- How to come up with new research ideas
- How to perform research
- How to write up new research ideas/findings (with the various tools required)
- What are some of the active areas of CS research? (multiple guest lectures)
- Group presentations
Online resources
Website |
Various course materials will be made available on the class
website, which can be accessed at
http://www.cs.umd.edu/class/spring2016/cmsc396h/ |
Piazza |
Class help and details will also be posted on Piazza. This
provides a forum for you to post questions (and answer those
from others), as well as share insights and engage on all
things CS/research-related. Keep in mind, however, that even though this
is a class-specific forum, cheating or facilitating cheating is
not allowed there (or anywhere): do not post project code or
pseudocode. This particular section's Piazza page can be found at
https://piazza.com/umd/spring2016/cmsc396h/. |
Grading
Grades will be maintained on the CS Department
grades server. You can always see
your current grade here.
You are responsible for all material discussed in lecture and
discussion section and posted on the class web page, including
announcements, deadlines, policies, etc. During the semester we may
provide ungraded practice homework exercises and solutions. While we
will not collect these exercises, completing them is essential
preparation for exams. You may work together on these ungraded
homeworks, and you may of course come to office hours for additional
help.
Your final course grade will be determined according to the following
percentages:
Paper comments: 20%
The papers presented in class will be posted to the
course schedule website.
On Piazza, you will be excpted to post an insightful comment or question about the paper to promote
discussion
by 9am the morning of the class . Consider posting early, as redundant posts are
not particularly insightful! A "good question" can point out things not made clear in the paper, or
seek a connection to a topic not directly discussed in the paper.
As a good rule of thumb, try to set aside two hours sometime in the week to read the upcoming paper (more
time earlier in the semester: you'll get better/faster at it the more practice you get).
Paper comments are generally given scores of:
- 0: missing or showing no evidence of having read the paper
- 1: minimal effort or non-insightful summary (anybody can copy an abstract)
- 2: actively insightful (it often takes grad students a couple stabs at it to get to consistent 2's)
To give an idea of what I'm looking for in terms of length:
There is a sweet spot of comment length that approximates 1-1.5 paragraphs: one or two sentences is too short
to develop an idea, but 3+ paragraphs is too long to describe a coherent idea well.
Homework: 15%
There will be a few homework assignments, typically to demonstrate an understanding of general purpose
tools such as latex, bibtex, git, gnuplot, etc. Homework may also involve writing up reports from attending
research talks given on campus.
Participation: 14%
You are expected to engage in every class meeting and in Piazza discussions.
Group project report: 20%
You will complete a project report by the end of class. The project report will be graded by
adherence to format and content guidelines from the class, including, for example, whether the
introduction answers key questions about the motivation for the project, whether the results section
provides and interprets a key result, whether the related work section distinguishes current effort
from prior work, and so on.
Group project presentation: 20%
You will also present your project as a group. The presentation should rotate among students, and, like
the report, will be scored based on format and content matching guidelines given in class (one of the
things you'll be learning is what it means to give a good talk, write a good report, and so on).
Group project advisor feedback: 10%
This is the content- and area-dependent section of the project grade: whether the project was performed using
good practices for the area. For example, whether the proof was actually correct, whether the simulation
was believable, whether the user study was performed correctly, etc.
Meet your instructor: 1%
At least one time during the semester, you must meet wwith me at an
arranged time. It doesn't have to be for class/project help: we can
chat about research, future plans, whatever!
Regrading
Any request for reconsideration of any grading on coursework
must be
submitted within
two weeks of when it is returned. Any
coursework submitted for reconsideration may be regraded in its
entirety, which could result in a lower score if warranted.
Project/homework policies
All projects and homeworks will be due 11:59:59pm EST of the day given in the project
description for full credit.
Projects may be submitted up to 24 hours late for a 10% penalty. (For example,
a project that would have earned 90 points for an on-time submission will earn
81, that is, 90 times 0.90.) If you submit both on-time & late, your
project will received the maximum of the penalty-adjusted scores.
Project extensions will not be granted due to system problems, network
problems, power outages, etc., so do not wait to submit a project until the
night it is due. You may submit multiple times up to the deadline, and only
your last on-time submission is graded. Similarly, if you submit late, only
your last submission before the deadline will be graded. No consideration in
grading will be made for errors made in transferring files or submitting the
wrong version of your project. Having a working, unsubmitted version will not
count; only submitted code will be be counted.
Finally, any "hard coding" in a project assignment may result in a score of
zero for that project, and is considered a bad-faith effort. Hard coding refers
to attempting to make a program appear as if it works correctly, when in fact
it does not. One example of hard coding would be printing the desired output
instead of computing it. This is only one example, and if you have any
questions as to what constitutes hard coding, be sure to ask ahead of time.
Excused absences
You are not required to come to class. That said, there will be a lot of
material taught in class, and I often write on the board (as opposed to using
slides). So it is in everyone's best interest to attend and engage during
lectures.
You are, however required to attend scheduled project
presentations. There are several excused absences from an
exam: illness, religious observation, participation in required
university activities, or a family or personal emergency. We will
work with you to make sure that you have a fair amount of time to
make up for excused absences. The best way that we can help is if
we know about absences as well in advance as possible.
- Provide a request for absence in writing.
- Provide appropriate documentation that shows the absence qualifies as
excused.
- Provide as much advance notice as is possible, safe, and appropriate.
Please note that, because exams are considered "Major Scheduled Grading
Events," a self-signed note may not be sufficient: For medical absences, you
must furnish documentation from the health care professional who treated you,
which must verify the timeframe that the student was unable to meet academic
responsibilities. In addition, it must contain the name and phone number of
the medical service provider to be used if verification is needed. No
diagnostic information will ever be requested.
It is the University's policy to provide accommodations for students with
religious observances conflicting with exams. You must inform the instructor
prior to the end of the first two weeks of the class if you have a religious
observation that conflicts with an exam,
The policies for excused absences do not apply to project
assignments. Projects will be assigned with sufficient time to be completed by
students who have a reasonable understanding of the necessary material and
begin promptly. In cases of extremely serious documented illness of
lengthy duration or other protracted, severe emergency situations, the
instructor may consider extensions on project assignments, depending upon the
specific circumstances.
Besides the policies in this syllabus, the University's policies apply
during the semester. Various policies that may be relevant appear in the Undergraduate Catalog.
Students with disabilities
Students with disabilities who have been certified by Disability
Support Services as needing any type of special accommodations should
see the instructor as soon as possible during the schedule adjustment
period (the first two weeks of class). Please provide DSS's letter of
accommodation to the instructor at that time.
All arrangements for exam accommodations as a result of disability
must be made and arranged with the instructor at least
three business days prior to the exam date; later requests (including
retroactive ones) will be refused.
Academic integrity
The Campus Senate has adopted a policy asking students to include the
following statement on each examination or assignment in every course:
"I pledge on my honor that I have not given or received any
unauthorized assistance on this examination (or assignment)."
Consequently, you will be requested to include this pledge on each
exam and project. Please also carefully read the Office of
Information Technology's
policy
regarding acceptable use of computer accounts.
Programming projects are to be written individually, therefore
cooperation or use of unauthorized materials on projects is a
violation of the University's Code of Academic Integrity. Any
evidence of this, or of unacceptable use of computer accounts, use
of unauthorized materials or cooperation on exams or quizzes, or other
possible violations of the Honor Code, will be submitted to the
Student Honor Council, which could result in an XF for the course,
suspension, or expulsion.
-
For learning the course concepts, students are welcome to study together or to
receive help from anyone else. You may discuss with others the project
requirements, the natures of the attacks covered, what was discussed in class
and in the class web forum, and general syntax errors. Examples of questions
that would be allowed are "Does a Java class definition end in a semicolon?"
or "What does a 'class not found' error indicate?", because they convey no
information about the contents of a project.
-
When it comes to actually writing a project assignment, other than
help from the instructional staff a project must solely and entirely
be your own work. Working with another student or individual, or
using anyone else's work in any way except as noted in this
paragraph, is a violation of the code of academic integrity and
will be reported to the Honor Council. You may not discuss
design of any part of a project with anyone except the
instructor or teaching assistants. Examples of questions you may
not ask others might be "How did you implement this part of
the project?" or "Please look at my code and help me find my stupid
syntax error!". You may not use any disallowed source of information
in creating either their project design or code. When writing
projects you are free to use ideas or short fragments of code
from published textbooks or publicly available
information, but the specific source must be cited in a comment in the
relevant section of the program.
Violations of the Code of Academic Integrity may include, but are
not limited to:
-
Failing to do all or any of the work on a project by yourself, other
than assistance from the instructional staff.
-
Using any ideas or any part of another person's project, or copying
any other individual's work in any way.
-
Giving any parts or ideas from your project, including test data, to
another student.
-
Allowing any other students access to your program on any computer
system.
-
Transferring any part of a project to or from another student or
individual by any means, electronic or otherwise.
If you have any question about a particular situation or source then
consult with the instructors in advance. Should you have difficulty
with a programming assignment you should see the instructional
staff in office hours, and not solicit help from anyone else in
violation of these rules.
It is the responsibility, under the honor policy, of anyone who
suspects an incident of academic dishonesty has occurred to report it
to their instructor, or directly to the Honor Council.
Every semester the department has discovered a number of students
attempting to cheat on project assignments, in violation of academic
integrity requirements. Students' academic careers have been
significantly affected by a decision to cheat. Think about whether
you want to join them before contemplating cheating, or before helping
a friend to cheat.
Students are welcome and encouraged to study and compare or discuss their
implementations of the programming projects with any others after they are
graded, provided that all of the students in question have received nonzero
scores for that project assignment, and if that project will not be extended
upon in a later project assignment.
Course evaluations
If you have a suggestion for improving this class, don't hesitate to
tell me or TAs dring the semester! At the end of the semester, please don't
forget to provide your feedback using the campus-wide
CourseEvalUM system.
Your comments will help make this class better. CourseEvalUM is
generally open the first couple weeks of December, but this is
subject to change by campus.
Right to change information
Although every effort has been made to be complete and accurate, unforeseen
circumstances arising during the semester could require the adjustment of any
material given here. Consequently, given due notice to students, the
instructor reserves the right to change any information on this syllabus or in
other course materials.