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
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
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 topics that apply to the general approach
and practice of computer science (and other) research, and a
range of particular technical topics.
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
- 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
||Various course materials will be made available on
the class website, which can be accessed at
||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
Grades will be maintained on the CS Department grades
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
Piazza, you will be expected 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
As a good rule of thumb, try to set aside two hours
sometime in the week to read the upcoming paper. (You
might allocate more time earlier in the semester: you'll
get better/faster at it the more practice you get.)
Paper comments are generally grades via scores of:
- 0: missing or showing no evidence of having read the
- 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-2 paragraphs: one or two sentences is too short to develop
an idea, but 3+ paragraphs is too long to describe a
coherent idea well.
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.
You are expected to engage in every class meeting and in
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 with me
at an arranged time. It doesn't have to be for class/project
help: we can chat about research, future plans, whatever!
Any request for reconsideration of any grading on coursework
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.
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
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.
You are not required to come to class, but not coming will
affect your class participation grade. There are several
justifications for excused
absences from class:
illness, religious observation, participation in required
university activities, or a family or personal emergency.
For details see the current
excused absence policy
. 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,
One self-signed note is permitted, during the semester.
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.
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
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
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
- Using any ideas or any part of another person's
project, or copying any other individual's work in any
- 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
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
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.
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.