THIS INFORMATION IS PROVISIONAL. File hand1.pdf contain the latest
information about this course.
DISCLAIMER/NOTE: This is an automatic conversion of the PDF document hand1.pdf; in case there
are inconsistencies between this online document and hand1.pdf/hand1.ps the latter will
be followed and considered correct.
Sequential and parallel algorithms for numerical and
combinatorial problems will be discussed. The use of randomization
in the solution of algorithmic problems will be explored. Applications
to be considered will include string matching, polynomials and FFT algorithms,
sorting networks, algebraic computations and primality testing and factoring,
matrix operations, randomized algorithms for sorting and selection,
and data compression. Search-indexing data structures (inverted lists)
will be examined. Web ranking algorithms such as Google's PageRank,
and Kleinberg's HITS will also be discussed. Topics in computational
geometry will be examined.
1.1 Contact Information
INSTRUCTOR: |
Alex Gerbessiotis |
E-MAIL: |
alg667@cs.njit.edu |
OFFICE: |
GITC 4213, 4th floor |
TEL: |
(973)-596-3244 |
OFFICE HOURS: |
Tue 4:00-5:30pm, Thu 4:00-5:30pm |
|
|
OFFICE HOURS: |
By appointment some other time on
Tue/Wed/Thu |
|
|
CLASS HOURS: |
Thu 6-9:05pm, Room: TIERN 114 |
|
|
Course Web Page: http://www.cs.njit.edu/~alexg/courses/cs667/index.html
1.2 Course Administration
- Prerequisites
- CS 610 or an undergraduate course on algorithms equivalent to CS 435.
- Textbook
- T.C.Cormen, C.E.Leiserson, R.L.Rivest, and C. Stein.
``Introduction to Algorithms'', 3rd edition, MIT Press, ISBN-10 : 0262033844
(ISBN-13: 978-0262033848).
We abbreviate it in class as CLRS.
Note that a 2nd edition is also available; Differences between the two are minor,
and mainly on page numbers.
- CourseWork:
- Five homeworks HW1 to HW5 each one worth 200 points.
The best 4 of 5 only count, so you can miss one. Programming problems related
to the material covered in class will be given; you can substitute points
gained from programming for regular points. Bonus points can also be gained.
- Exam:
- A take-home final exam (you can also call it a required homework) that will
be posted at 6pm on Fri May 3, 2013 and due
by 6pm on Thu May 9, 2013. It is worth 200 points (one homework worth of points).
- Grading scheme:
- 1000 points is the target maximum collected from the best 4 of 5 homeworks
(800 points max) plus the take-home final (200 points). You are to be given at least
a C if you collect at least 500 points, at least 850 or more points are needed for an A.
If more points are given, scale accordingly.
- Extra work
- Bonus points, when (and if) assigned in the 5 homeworks.
- Due Dates
- Written homeworks are due by the beginning of a class.
Programs must be received by email by NOON the same day.
- Late work
- 25% per day starting from 6:01pm for homeworks and 12:01 for
programming assignments. No exceptions (only 4 of the 5 count towards the final
grade). No emailing of late homeworks! No late exams.
Tentative Course Calendar (Spring 2013)
|
Week |
Thu |
HW out |
HW in |
Comments |
W1 |
1/24 |
|
|
|
W2 |
1/31 |
HW1 out |
|
|
W3 |
2/7 |
|
|
|
W4 |
2/14 |
HW2 out |
HW1 in |
|
W5 |
2/21 |
|
|
HW1 returned |
W6 |
2/28 |
HW3 out |
HW2 in |
|
W7 |
3/7 |
|
|
HW2 returned |
W8 |
3/14 |
HW4 out |
HW3 in |
|
W- |
3/21 |
|
|
Spring Break! |
W9 |
3/28 |
|
|
HW3 returned |
W10 |
4/4 |
|
HW4 in |
|
W11 |
4/11 |
HW5 out |
|
|
W12 |
4/18 |
|
|
HW4 returned |
W13 |
4/25 |
|
HW5 in |
|
W14 |
5/2 |
|
|
HW5 returned |
W15 |
5/9 |
Exam |
|
(See page 1) |
The following describes a tentative list of topics that is intended to
be covered in class.
The code Ti refers to a topic. A topic may spread over one or more lectures.
The code ALi refers to the ACM Computing Curricula 2001
topic description code. In parentheses, we provide an approximate
number of hours per topic. Hour coverage may change depending on demand
and circumstances (eg. weather).
AL3 : Fundamental Computing Algorithms (15 hours)
AL8 : Advanced Algorithmic Analysis (13 hours)
AL6 : Complexity ( 3 hours)
AL9 : Cryptographic Algorithms ( 5 hours)
AL11: Parallel algorithms ( 6 hours)
Topics to be covered
T1 : AL3 : Representation of Polynomials, Polynomial evaluation with and without preprocessing.
Lower bounds for polynomial evaluation. Exponentiation. Polynomial algorithms for multiplication (Karatsuba's Algorithm).
T2 : AL8 : Polynomial Interpolation and Convolution. DFT and FFT and FFT implementations. Applications to information hiding.
T3 :AL8/9 : Arithmetic algorithms (eg. Euclid's algorithm) and the bit model, solution of modular equations,
Chinese Remainder Theorem, Power raising through repeated squaring, primality testing (Miller-Rabin algorithm),
Pollard's rho method for integer factorization. Public key cryptography and the RSA cryptosystem.
T4 : AL11 : Comparison networks, zero-one principle for sorting, bitonic and odd-even merge sort.
T5 : AL11 : The PRAM model for parallel computation. Parallel algorithms for arithmetic problems and sorting. Parallel prefix.
T6 : AL3 : Matrix operations, Strassen's algorithm for matrix multiplication, boolean matrix multiplication,
solution of linear equations and matrix inversion. Complexity Results.
T7 : AL3 : Algorithms for string matching. Rabin-Karp. Knuth-Morris-Pratt. Boyer-Moore.
T8 : AL9 : Randomization and its application: Sorting, Selection and Number Theory
T9 : AL3 : Data Compression (Huffman coding).
T10: AL8 : A quick overview on hashing.
T11: AL6 : Complexity classes (P,NP,RP,BPP,ZPP)
T12: AL10 : Geometric Algorithms
T13: AL8 : Google's PageRank and Kleinberg's HITS algorithms; Inverted Indexes.
Any modifications or deviations from the posted dates, will be done in
consultation with the attending students and will be posted on the course Web-page.
It is imperative that students check the Course Web-page regularly and frequently.
Course Policies
- Grading
- Written work will be graded for conciseness and
correctness. Use formal arguments. Be brief and to the point.
Label solutions with problem/subproblem number clearly.
Programming problems will be graded based on test instances
decided by the grader on a test platform of
his choice (most likely, an AFS machine).
Do not expect partial credit if your code fails to run on all test instances, and
you do not provide a bug report.
- Written Work
- Handwritten or typed solutions must be readable, clear, concise and complete for
the homeworks. DO NOT USE pencils to write down your solutions; if you decide to
use a pencil do not complain about grading.
- Programs
- Code must be ANSI C/C++ compliant and
compile on the test platform/compiler; for Java the AFS environment should
compile your code.
For Java, do not use packages that are not available on AFS.
- Extension policies
- Discussed on page 1. Note that 4 out of 5 homeworks only count.
- Grade questions
- Check the marks in a written work and
report errors promptly. Make sure you report such problems to the
grader or the instructor within two weeks from receipt but no later than the Reading Day.
- Final Grade
- The final grade is decided based on a 0 to
1000 point performance with an adjustment made based on programming assignment
performance. A student who collects at least 500 points should expect a passing
grade (C). At least 850 or more points may be needed for an A.
- Collaboration
- Students who turn in solutions (programming or otherwise) that
are derived from solution outlines of past assignments/homeworks,
were obtained through the Internet, or are
a product of another student's work, risk severe punishment,
as outlined by the University.
The work you turn in MUST BE your own personal work, composed and written
by you. If you talk a problem with a fellow student
cite this clearly in your homework (name the fellow student before the
solution of the problem in question). Your work will then be
compared to the other student's work to verify that your solution was
written by you and reflect your own personal effort.
If you don't report it, it will be considered a violation of the course rules.
You are not allowed to exchange code for the programming part of a
homework.
- Mobile Devices
- Mobile phones/devices and/or laptops/notebooks MUST BE SWITCHED OFF
during class or be made noise-free.
- Email/SPAM
- Send email from an NJIT email address. NJIT spam filters
or us will filter other email address origins. Do not send course email
to the instructor's email address unless there is a good reason
(eg. you don't want the grader to read the email).
Include CS 667 in the subject line then.
The NJIT Honor Code will be upheld; any violations will be
brought to the immediate attention of the Dean of Students.
Read this handout carefully!