Quizzes
Quiz questions will be given each week. Some will be emailed
as take-home questions and some will be done in class. Any
students not present for class must complete the in-class
questions as take-home quiz questions. Take-home questions
must be completed prior to the start of the next
class. Students may collaborate on take-home questions as
long as it is clearly documented.
Problem Sets
More extensive non-programming problems, that require
significant time, effort, and care, will be assigned in
problem sets due every 4 weeks or so. Problem sets may be
completed in groups up to a certain size. Solutions will be
presented orally, in person with the instructor. Each group
is also required to hand in a written outline of their
solutions. Each group member is responsible to understand
and explain any solution. More details on this process are
available on the course webpage. No collaboration or
discussion is allowed outside of the group. Any outside
resources used must be clearly documented.
Programming Projects
There will be 3 programming projects in this class, spaced
out between the due dates of the problem sets. Details on
electronic submission will be published along with the
projects and must be followed. Programming projects in this
class will require not only coding skills, but also
algorithmic development skills, and therefore starting early
is extremely important. For programming projects, informal
discussion between students is allowed, but not
collaboration (see definitions below). All discussion and
outside resources must be clearly and specifically
documented.
Exams
There will be two midterm exams and one final exam. The final
exam will be cumulative. Students will be allowed one "crib
sheet" for the midterms and two for the final.
Final Grade
- 15%: Quizzes
- 20%: Problem sets (4)
- 20%: Programming projects (3)
- 15%: Midterm exams (2)
- 30%: Final exam
For the purposes of this class, we make a distinction between:
- Discussion means talking between
classmates about how to tackle a particular (written or
programming) problem. Anything that is written down
in a discussion (including code) must be erased or
destroyed, and cannot be submitted. Students must
wait at least one hour after any discussion before
they sit down to write up their own solutions.
- Collaboration means actually sitting
down and working together on a problem. This is beyond
discussion because the written materials are not
destroyed. However, each student must still write up
their own solution in their own words.
Discussion is allowed on any take-home quiz or
programming project, as long as it is clearly
documented. However, collaboration is only allowed on
the take-home quizzes. The only help permitted on problem sets
is within a student's group. At all times, help from
any human not currently enrolled in SI 335 is never
permitted. This includes other students not in the
class, parents, friends, other faculty members, and even
online humans (e.g., asking questions in an online
forum or discussion board). The only exceptions are the
current instructor and SI335 MGSP leader(s).
Any resources other than those on the course website must
also be documented clearly and specifically. For example, if a
website is used, the full address of the web page in question
must be listed, along with what in the assignment that page
was used for. Just saying "Wikipedia" is not enough,
but something like
"en.wikipedia.org/wiki/Big_O_notation
example used in problem 2" would be good.