Comp 363/460 Groundrules
Groundrule
Index:
Prerequisites
- Discrete Structures 163 (induction,
formal logic, Boolean algebra, proof techniques, functions and
relations, combinations, permutations)
- Data Structures 271 (ADT's, insertion sort, selection sort,
merge
sort,
quicksort, binary search, linked lists, binary trees, binary search
trees, heaps, hash tables, finite graph basics, basic run-time
analysis, big Oh notation,
considerable experience with recursion)
- Officially Calculus 130 or 161 - I do not see where specific topics are
important with the current textbook.
Plus all of the above should give you some mathematical
sophistication. That is the hardest part, and many of you may
need more. Please see me when you have trouble.
Make sure you get the math
pretest
in the first class and turn it in at
the beginning of the next class. Read and follow the heading
of the
Pretest.
Comp 363
vs. 460
Comp 363 is a challenging introductory algorithms course required for
most of the
undergraduates. Classroom time will almost entirely be used
to
provide a course appropriate for them. Comp 460 students
should
also be expecting an introductory course, where they will be
expected to do some more advanced homework and/or projects.
Problems marked extra credit refer to 363.
Students in 460 are expected
to do those problems, unless
specially marked as extra credit for all.
Textbook
Algorithms
by Dasgupta et al., McGraw-Hill, 2008, ISBN
978-0-07-352340-8. Also see the Text
Errata What one author refers to as the penultimate
version of the book appears to be online at his web
site, http://www.cs.berkeley.edu/~vazirani/algorithms/all.pdf.
It is not a perfect match: After a very quick check I see
that
the pagination is different. Chapter 2 has two extra
exercises
in the actual text. I stopped comparing then. There
is no
guarantee how long the web version will be public this way.
It is also possible to buy electronic access to the final
text
through the book's web site.
This is a new text for me for the course.
It seems much more accessible than the previous text.
I
have not timed its use, however, so the detailed course schedule will
not be posted too far in advance. We should cover Chapters 0,
2-6, 8, and more topics if there is time at the end.
E-mail
Blackboard sends email to your university email address. If
you
do not want to look there, be
sure to have your mail forwarded
somewhere else.
In past semesters, I have used class email a number of times
noting errors or other changes, plus I will use it to distribute
quizzes.
Feedback
and questions
Please
let me
know when you need something from the course that I have not thought to
include, or not included in sufficient detail for you, or not presented
from a point of view that you can follow. We are in
this
together. For me to succeed, I need you to succeed.
You are NOT graded on help you ask for or comments you make about what
you need from the class. Lots of people have lots of
questions
about this course. It is my job to help guide your
work.
Please let me know when you do not understand something, particularly
after you have gone home and worked on it. Please ask
questions
in class and see me in office hours and send me e-mail.
Expected
Learning Outcomes
Foundation:
- Be able to use order estimates for run times
- in basic situations with loops and decisions
- in recursion (using the Master Recurence Relation Theorem)
- Use basic probability to calculate averages or expected
values
Understand important data structures such as
- Graphs, Directed Graphs, Directed Acyclic Graphs
- Priority queues
- B-trees
Understand important existing algorithms, such as:
- Merge sort
- Quicksort
- Bucket sort
- Depth-first search
- Breadth-first Search
- Dijikstra's Algorithm for shortest path
- Kruskal's and Prim's algorithms for minimum spanning trees
- Union-find algorithms
Understand these
algorithms at different levels (the central part):
- Be able to follow the algorithms in simple concrete
situations (play computer to illustrate results)
- Calculate run times and resource needs
- Recognize new scenarios where known algorithms are directly
applicable
- Given a somewhat novel situation, create solutions using
variations on algorithms discussed
Understand how many algorithms fit into a larger class of algorithms
with common properties and strategies, for example
- All sorts using key comparisons
- Divide and Conquer algorithms
- Greedy algorithms
- Dynamic programming problems
- Classes of problems P, NP (an introduction)
Grading
- Weekly homework 30% (based on your total percentage of
homework points)
- two take-home quizzes 8% each, for a
total of 16%
- Midterm exam 24%
- Final exam 30%
- Class participation (answering and
asking questions): up to 5% bonus
I am not sure at the beginning
exactly how much
homework I will give, so until the total amount of homework is
determined, a homework point cannot be translated directly into a
percentage contribution to your final grade.
I will enter your raw (not
scaled) scores into
the Blackboard gradebook for you to confirm. I base your
final
grade on separate (possibly scaled in the case of exams) percentages.
I may scale the quizzes or homework as a group after they are
all
completed.
I convert to course letter
grades with
the following minimum
requirements:
A 93 A- 90 B+ 87 B 83 B- 80 C+ 77 C 73 C- 70 D+ 67 D 60.
It
is hard to convert desired learning outcome straight into grades, with
so many course components, but look at the boldface central outcome for
different levels of understanding of algorithms: Iif you
consistently succeed at the levels up through one of the
bottom
three bullet points, then it should roughly correspond to a grade of C,
B, or A.
Homework
Most weeks there will be a written homework assignment for each student
to work on individually and pass in on paper in class. The
homework will involve following and applying important algorithms
introduced in class, writing
algorithms for new situations, proving correctness and runtime bounds
and equivalence of algorithms, and possibly some
coding of demonstration programs. There may be some
individual or
group projects. Late homework will receive a 20% penalty and
will
not be accepted for a
grade after the class period following the due date. When an
individual hands me a homework assignment, I will generally hand
the individual one set of my solutions.
Use my office hours! A
number of past students have indicated they considered the course to be
really hard before they started taking advantage of office
hours,
and much more accessible with frequent contact. Take
advantage of
office hours! Let me know if the posted hours do not work for
you. I encourage you to engage with the homework between the
class when it is introduced and Monday or Tuesday office hours the next
week. Do what comes smoothly, and note what does not. Then come in and
see where you could use some help breaking things into steps, or go
over something that made sense when I did but is not when you do it, or
....
Unless an assignment is specifically given as a group project, You may
NOT work with other students on the assignments - see the section
below on
Academic Dishonesty.
Exams and
quizzes
Tentative Exam Schedule See the course schedule for updates:
- Takehome quiz due Feb19
- In-class Midtern Mar12
- Takehome quiz due Apr 16
- Final Exam Apr 30
For
the quizzes and midterm you may prepare up to two 8.5 x 11" sides of
notes. For the final you may have up to four sides.
Takehome quizzes are posted to the internet by the previous
Sunday morning. You are to chose a chunk of time up to 2
hours
long in which to do it before the next class, when it is due.
Quizzes
are
not cumulative (except as the material is naturally
cumulative).
Exams are
cumulative.
Exams and quizzes will not include material from the class immediately
before the test. Exams will generally cover through the last
homework previously due. For all homework you have passed in,
you
should have the solutions that I passed out, and for all but the most
recently due homework you should have the graded results back.
Exam Grading : Do
not write down things on
exams that you can see are incomplete or incorrect without making some
comment acknowledging this -- it is better to know you are wrong or
incomplete than
to
be wrong and think you are right.
Missed Exams : If
you
must miss an exam, let me know well in advance. Then if you have a good
reason we can possibly make other arrangements. I have little sympathy
for people who inform me after the fact for no good reason. I may
completely
excuse you from an exam if you were sick or unable to attend for long
enough.
Most often if you cannot take an exam at the usual time, I will want
you
to take it a little later, BUT I WILL NOT LET ANYONE TAKE A LATE EXAM
AFTER
THE NEXT CLASS PERIOD. If you somehow fail to let me know in a timely
fashion
that you have an excuse and want to take the exam late, appear at my
office
hours before the NEXT class after the exam, and I may be able to give
you
the exam.
IMPORTANT POLICY:
If you have an
excuse
for not being prepared to take an exam, but decide to take it anyway,
you
don't get to change your mind after you see a poor grade. In certain
circumstances
I may allow you to delay an exam due to illness, but I will not let you
be reexamined due to a poor grade.
Academic
Dishonesty
The penalty
for cheating may be anywhere from a 0 on an assignment to a grade of
"F"
in this course. The appropriate dean will be informed in writing of any
cheating incidents.
Cheating consists of, but is not limited to:
- Using or copying another person's work on an exam or
assignment
in any
fashion.
- Work includes outlines, algorithms, pseudocode, code, and
analyses.
- Allowing your own work to be copied or used by another
student
- Submitting as your own work something that has been written
by
another
person
- Using any unauthorized reference on an exam or assignment
Any
collaboration among students on homework or on exams
constitutes cheating for all of the students involved. If I
explicitly assign a group project, another person or student refers
only to people outside your assigned group.
Help from any source is fine concerning
- Course prerequisites, necessary math
- The meaning of a problem (not the plan for the solution or
the actual solution).
- The restrictions of programming language syntax.
I have needed to give out 0's on exams and homework in past semesters,
with
accompanying
referrals to the students' deans.
Campus Network, Rights and Responsibilities
As a user of the campus network, you should be aware of your
rights
and
responsibilities in
http://www.luc.edu/its/policy_acceptableuse_public.shtml
Course Materials
Private information between professor/TA and individual
students will be handled through the University Blackboard
system.
It will mostly be used for grades and possibly some homework
submissions.
The public course materials will all be posted directly on
the web under http://www.cs.luc.edu/~anh/363.
Class/study
Approach
The class involves basic facts, processes, and analysis methods, plus
creative combinations of solution ideas.
I assume you are a reader, and can get many basic facts and process
recipes from reading assignments before
class. I see the most fruitful use for our time together in
overviews, supplimenting your reading, going over questions you raise
in reading and homework, the analysis of problems, and creatively
applying basic ideas you are learning to somewhat novel
situations. I am not
trying
to produce lecture notes in class
that are a substitute for your reading. I will try to produce
notes from class. I
will try to have notes
available before class to follow in class, and when class takes a
different turn than I predicted, I will try to make updates to the
notes after class.
Cell Phones
I assume that my class is not the most important
thing in your life. Only you know the relative importance of
any particular connection through your cell phone, and
whether it is important for you to answer a call
imediately rather than later. I do
want you to be respectful of my class and disrupt it as little as is practical.
If you get cell phone calls with fair frequency, be
sure to have the ring muted before coming to class. If you
rarely get calls, you might not mute it ahead, and your cell phone may happen to ring. Get rid of the noise as
soon as possible, and do not get flustered. I assume you will
move outside the classroom for a conversation. If you get
fairly frequent calls that you are likely to consider important
answering, sit in a place where your exit and re-entrance are as
unobtrusive as possible.