CS 324 Syllabus
Overview
Instructor Information
Student Grader
- Will Schifeling (schifelw)
Textbook
Mining
of Massive Datasets by Jure Leskovec, Anand Rajaraman, and Jeff Ullman, in
part. We'll also use some other references as well.
Exam schedule
- Exam 1: Friday, January 23
- Exam 2: Friday, February 13
- Exam 3: Friday, March 6
Grading
- Assignments: 45%
- Exams: 40%
- Final project: 15%
Homework Policy
- Each assignment will have a specific time for which it will be
due. For each deadline, an assignment turned in late within one day
of the due time will be docked 25%. An assignment turned in later
than one day of the due date but within two days will be docked
50%. An assignment turned in later than two days of the due date but
within three days will be docked within 75%. After that, you won't
receive any credit. With a large class like this one, this is the
only way that the graders can stay sane; it is important that I put
some mechanism in place to discourage people from submitting work at
arbitrary times.
Getting Help
- If you need help with a project, you can consult with other
students, talk to the prefect, ask a lab assistant, post to Piazza,
or come to me. I am unlikely to answer detailed questions about bugs
via email, as it's much easier and more fun for me to answer those
kinds of questions in person.
Working Together
- Non-computer assignments: You should turn in your own
assignment. You may verbally discuss ideas with other people, but each of you
should be writing up and turning in these assignments on your own.
- Computer assignments: You may work together on these
in pairs, if you wish. Include everyone's names in documentation at
the top. Make sure to cite any ideas you get from other people,
websites, books, papers, or any other references.
- Final project: You must do this in pairs. We have a large
class, and for spring term the College gives me only a day after the end of
exams to submit final grades for seniors.
Programming Environment
You may use any programming language that you wish, so long as it
is supported on our departmental machines and you provide us with
ample instructions on how to compile, run, and test your code.
Topics we'll be covering, approximately
- Finding similar items via k-nearest neighbor and locality sensitive hashing (chap 3)
- Relevant web content: PageRank and variations (chap 5)
- Frequent itemsets and association rules (chap 6)
- Clustering: small, big, partitional, agglomerative (chap 7)
- Recommendation systems (chap 9)
- Time series methods, including dynamic time warping
Topics we might or might not do
- Advertising on the web (chap 8)
- Mining social-network graphs (chap 10)
- Dimensionality reduction (chap 11)
- Support vector machines (some mention in chap 12)
Collaboration, Cheating, and the Difference Between the Two
There are two different kinds of working together: collaborating and plagiarism.
Collaborating
- Collaborating is good.
- You are encouraged to collaborate on ideas and program design.
- Programming is often a social effort, and there is much you can learn
by talking out the ideas in this class with each other.
- If a piece of your program utilizes someone else's idea, i.e., someone other than the program author(s), you must give that person credit in program comments.
Plagiarism
- Plagiarism is bad. DON'T DO IT!
- Any programs that you turn in should be your work of the
author(s) only.
- Even if the program author(s) share ideas with others, the
program itself must be written by the author(s).
- If a piece of your program utilizes someone else's idea, you
must make sure to give that person credit in program comments.
The following are examples of plagiarism.
- Taking someone else's program, changing the variables and comments
around, putting your name at the top, and turning it in.
- Finding a similar program on the internet, changing the variables
and comments around, putting your name at the top, and turning it in.
- Finding a similar program in a book, changing the variables and comments
around, putting your name at the top, and turning it in.
I sometimes use software to discover plagiarism, and I am compelled
by Carleton policy to notify the College if I find evidence of
plagiarism.
Note that academic dishonesty includes not only cheating,
fabrication, and plagiarism, but also includes helping other students
commit acts of academic dishonesty by allowing them to obtain copies
of your work. You are allowed to use the Web for reference purposes,
but you may not copy material from any website or any other source
without proper citations. In short, all submitted work must be your
own.
Cases of academic dishonesty will be dealt with strictly. Each such
case will be referred to the Academic Standing Committee via the
Associate Dean of Students or the Associate Dean of the College. A
formal finding of responsibility can result in disciplinary sanctions
ranging from a censure and a warning to permanent dismissal in the
case of repeated and serious offenses.
The academic penalty for a finding of responsibility can range from
a grade of zero in the specific assignment to a F in this course.