New Jersey
Institute of Technology
Ying Wu College of Computing
Computer Science Department
Data Structures and Algorithms
Code: CS 610-103
Semester: Fall
2019
Course Time and Location: Thursday
6:00-8:50pm (Kuprfian Hall 205)
Recitation Time and Location: TBA
Instructor:
Ioannis Koutis
Office: GITC 4314
Email: ikoutis+cs610@njit.edu [remember to include +cs610 to avoid
delivery problems]
Office Hours: Wednesday:
3:00-4:00, Thursday: 3:00-4:00 and by appointment. To
arrange for an appointment, please e-mail the instructor.
Office hours will not be held on official University
breaks and closures. In case of an unlikely office hour
cancellation, a notice will be posted on canvas, as soon
in advance as possible.
Course Assistant: Yunzhe Xue
Email:
Office Hours: TBA
Course Management
All course activities will be
managed on Canvas.
Catalog Course Description
Intensive study of the fundamentals of data structures and
algorithms. Presents the definitions, representations,
processing algorithms for data structures, general design
and analysis techniques for algorithms. Covers a broad
variety of data structures, algorithms and their
applications including linked lists, various tree
organizations, hash tables, strings, storage allocation,
algorithms for searching and sorting, and a selected
collection of other algorithms. Programs are assigned to
give students experience in algorithms, data structure
design and implementation. Prerequisites: CS 114 or CS 241
or equivalents.
Tentative Topics
1.
Asymptotic analysis, O, Ω, Θ notation,
recursion, induction, recurrences
2. How to think about data structures: a
problem-based approach. Simple data structures,
heaps, hashing, in-place algorithms.
3. Greedy algorithms, an introduction to
graphs
4. Divide-and-Conquer, geometric
Problems, matrix Multiplication
5. Connectivity, weighted spanning
trees, union-find
operations, amortized
analysis
6. Strong connectivity, graph
traversals, topological sorting
7. Dynamic programming, path discovery
and counting
8. Current and advanced topics on graph
algorithms (e.g. Page Rank, flows)
9. Data
structures supporting fast
dynamic updates (balanced binary
search trees)
10. Advanced numerical
algorithms (e.g. FFT, Primality,
Cryptography, Gradient Descent)
11. Reductions,
NP-completeness
Textbook
Algorithm
Design: "Foundations, analysis, and internet examples".
M. T. Goodrich and R. Tamassia. Wiley, 2001, ISBN
0-471-38365-1. We abbreviate it in class as
GT.
Alternative
Readings:
T.C.Cormen,
C.E.Leiserson, R.L.Rivest, and C. Stein.
“Introduction to Algorithms”, 3rd edition, MIT Press, ISBN-10 : 0262033844. We abbreviate it in
class as CLRS.
S. Skienna, "The algorithm design manual", Springer,
ISBN-10: 1849967202S.
Additional
material such as lecture slides and notes will be posted on
Canvas.
Mini-Midterm
[10%]. Open book and
notes. You can use any book and notes you
bring into the exam. You are not allowed to
use a computer or borrow notes from others.
Midterm
[20%]. Open book and notes. You
can use any book and notes you bring
into the exam. You are not allowed to
use a computer or borrow notes from others.
Final Exam [30%]. Cumulative. The final
exam will consist of two parts. Part 1 will be
closed-books and notes, but questions will come
directly from the homework assignments [10%]. Part
2 will be similar to midterms [20%].
September 26: Mini-midterm
October 24: Midterm
TBA by registrar: Final
November 26: Tuesday, but class meets.
December 12: Thursday, but class does not meet.
FYI: The NJIT academic
calendar for Fall 2019.
History of minor syllabus revisions:
08/31/18: current
Course Policies
Email
Use of your NJIT email is strongly encouraged to avoid
delivery problems.
Canvas Announcements
All course announcements will be posted on Canvas. So,
check it regularly!
Canvas Discussion
Forums
We will use Canvas to have informal and friendly
conversations about topics related to the course, including
assignments, problems, ideas, etc. You are encouraged to
participate. Please be absolutely assured that any question
or idea is welcome; even if you are afraid it may be silly,
it can lead to interesting and beneficial discussions.
Mobile Devices
Turn-off and place away any cell phones, or other mobile
devices, including laptops (unless the instructor explicitly
permits you otherwise).
Assignment Delivery
Be careful to read and follow any formatting and
delivery instructions that come with each assignment.
Grading
Written work will be graded for conciseness and
correctness. Use formal arguments. Be brief and to the point
and write clearly. Material covered in class and appearing
in the relevant notes and chapters of the designated
textbook can be used without proof.
Grade Corrections
Check the grades in course work and report errors
promptly. Please try and
resolve any issue within one week of the grade notification.
Absenteeism
If you miss a class, it’s up to you to make up for lost
time. Missing two exams leads to an automatic F in the
course. If you miss one exam you must contact the
Dean of Students (DOS) within 2 working days from the day
the reason for the absence is lifted with all necessary
documentation. If DOS approves, your missing exam grade will
be set equal to the average of the non-missing exam grades.
Incomplete
A grade of I (incomplete) is given in rare cases where work
cannot be completed during the semester due to documented
long-term illness or unexpected absence for other serious
reasons. A student needs to be in good standing (i.e.
passing the course before the absence) and receives a
provisional I if there is no time to make up for the
documented lost time; a letter (or email) with a timeline of
what is needed to be done will be sent to the student. Note
that for most cases an I would be resolved within few days,
not months and not the following semester! Not showing up in
the final will probably get you an F rather than an I.
Collaboration and
External Resources for Assignments
Some homework assignment problems will be challenging. You
are advised to first try and solve all the problems on your own. For
problems that persist you are welcome to talk to the course
assistant or the instructor. You are also allowed to
collaborate with your classmates and search for solutions
online. But you should use such solutions only if you
understand them completely (admitting that you don’t
understand something is way better than copying things you
don’t understand). Also make sure to give the appropriate
credit and citation.
Collaboration
in the mini-Project and Exams
Such collaboration is strictly prohibited. Any submitted
code (even few lines) obtained through the Internet or
otherwise, or is product of someone else’s work or is common
with another student submission, in the same or other
section/course, risks severe punishment, as outlined by the
University; all parties of such interaction receive
automatically 0 and grade is lowered by one or two levels.
Academic
Integrity
Academic
Integrity is the cornerstone of higher education and is
central to the ideals of this course and the university.
Cheating is strictly prohibited and devalues the degree that
you are working on. As a member of the NJIT community, it is
your responsibility to protect your educational investment
by knowing and following the academic code of integrity
policy that is found at:
http://www5.njit.edu/policies/
Please note that it is my professional obligation and responsibility to report any academic misconduct to the Dean of Students Office. Any student found in violation of the code by cheating, plagiarizing or using any online software inappropriately will result in disciplinary action. This may include a failing grade of F, and/or suspension or dismissal from the university. If you have any questions about the code of Academic Integrity, please contact the Dean of Students Office at dos@njit.edu