1.1 CONTACT INFORMATION

Instructor: Alex Gerbessiotis E-mail: alexg+cs610@njit.edu
Office: GITC 4213, 4th floor Tel: (973)-596-3244
Office Hours:Tue 4:15-5:30pm and Wed 4:15-5:30pmElse, by appointment Thu/Wed
Assistant: TBA on WEB
Class Hours: W 6:00-8:50pm, CKB 217
Web-Page:
http://www.cs.njit.edu/~alexg/courses/cs610/index.html
Web-Page:
http://web.njit.edu/~alexg/courses/cs610/index.html

Print Handout 1 (PDF) from Web-Page and compare it to this document! They must be identical (in content, if not in layout).

1.2 COURSE ADMINISTRATION

CourseWork: 

3 exams (including the final); 3 Homeworks (HW) ; Programming project (aka PrP).

 

Points: 1000 points = PrP(134)+ Ex1(140)+Ex2(333) + Ex3(333) + HW(60)

PrP:  

A programming project (PrP) with 2 options each one worth 134 points. A student may submit one or two options in ONE archive per Handout 2 AND SUBMITTED VIA MOODLE BEFORE NOON-TIME of the date specified in the Calendar.

HW, PS:  

Approximately six problem sets PS1-6 will be periodically posted along with their solutions. 3 practice Homeworks (HW1-HW3) with will be given out (submission through moodle). PSes are not for credit; HWs are. Exams may draw from these.

Exams:  

Dates in Course Calendar; all exams in classroom unless otherwise noted. Exam1 is closed-everything. Exam2 and Exam3 are open-designated-textbook only; you may bring a hard-copy of the textbook but you are not allowed to borrow one during the exam. Exam1, 60min, Exam2, 120min, Exam3, 120min.

1.3 BASELINE COURSE SYLLABUS

Course:  

CS610. Data structures and algorithms.

Credits:  

3 credits.

Prerequisites: 

(CS506 or CS241) and (CS505 or CS114).

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.

Textbook:  

(a) [Recommended, designated] Algorithm Design: Foundations, analysis, and internet examples. M. T. Goodrich and R. Tamassia. Wiley, 2001, ISBN 0-471-38365-1.
(b) [Other book, optional] 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),

Learning Outcomes:

1.  

Learn how and be able to understand and formulate the input-output relationship of computational problems, and formulate the requirements, data and operations of abstract data types (ADT).

2.  

Learn how and be able to asymptotically compare functions using o,O,ω,Ω,Θ, and be able to solve recurrences using the master, iteration/recursion tree, and the substitution methods.

3.  

Learn how and be able to describe, derive and determine, the asymptotic performance of algorithms for computational problems and operations on elementary and more advanced data structures.

4.  

Learn how they operate and be able to understand fundamental algorithms and data-structures, and understand their characteristics for problems related to searching, sorting, selection, operations on numbers and polynmials and matrices and graphs. Be able to choose among a variety of similar ones based on problem/program specification and requirements.

5.  

Learn how and be able to compose more complex algorithms using as building blocks the fundamental algorithms introduced in class.

6.  

Learn how and be able to compose more complex algorithms using the algorithmic design techniques introduced in class.

7.  

Learn how and be able to compose advanced data structures using as building blocks the elementary data structures introduced in class.

8.  

Learn how and be able to implement in a high-level imperative language some of the algorithms and data structures introduced in class in the form of a programming project of considerable complexity.

9.  

Learn how and be able to understand and possibly identify that some problems are complex and are not susceptible to ’easy’ solutions. Learn how and be able to understand the benefits and complexities of using randomness in computation.

Topics (with references to designated textbook):

T1. 

Ch1,5.2: Introduction, Algorithm Analysis (Asymptotic Growth of functions, recurrences).

T2. 

Ch1,4.1,5.2: Algorithm Design Techniques (Incremental, Divide-and-Conquer), Sorting.

T3. 

Ch2.1-2.3: Elementary Data Structures and Trees. Tree traverals. (Review material.)

T4. 

Ch2.5-2.7: Hashing (by chaining and open-addressing). Google Example.

T5. 

Ch2.4,9.3: Heaps and Priority Queues. Greedy Algorithms and Huffman coding.

T6. 

Ch4: Complexity of sorting. Distribution-based sorting. Selection. Randomization in computation.

T7. 

Ch6,Ch4.2: Graphs and their representation. Graph traversals. Strong connectivity. Topological sorting. Union-find operations.

T8. 

Not in GT: Graphs and Web-page Ranking: Google’s PageRank, Kleinberg’s HITS algorithm.

T9. 

Ch7: Weighed graph problems. Shortest-path problems. All-pairs shortest paths and transitive closure (Floyd-Warshall). Spanning trees (Prim’s and Kruskal’s algorithms).

T10. 

Ch5: Integer operations. The WORD and BIT models. Straight line programs. Matrix operations. Strassen’s method. Dynamic Programming and chained matrix multiplication.

T11. 

Ch3: Binary Search Trees and Balanced Binary Search trees.

T12. 

Ch9: String and Pattern matching algorithms (if time permits).

T13. 

Ch13: The complexity classes P and NP. NP-completeness.

1.4 CALENDAR

Fall 2019








Week
Wed
Item Out
Item In




W01 09/04PrP out,PS1
W02 09/11HW1 out,
W03 09/18PS2 HW1 in before noon
W04 09/25Exam1
W05 10/02HW2 out,PS3
W06 10/09 HW2 in before noon
W07 10/16Exam2
W08 10/23PS4
W09 10/30PS5
W10 11/06HW3 out
W11 11/13Nov 11 (Mon)is Drop Date; HW3 in before noon
W12 11/20PS6
W– 11/27 No class; It’s an NJIT Friday
W13 12/04 PrP is due BEFORE NOON
W14 12/11
W15 12/18Exam3 Final Exam is Exam3




Any modification/deviation from the calendar and its items will be done in consultation with the attending a class students and be posted on the course web-page. It is imperative that students check the course web-page regularly and frequently. Exceptions are as announced by the Provost’s Office.

1.5 COURSE POLICIES

DSS:  

If you need accommodations due to a disability please contact Office of Accessibility Resources and Services, KUPF 201, to discuss your specific needs. A Letter of Accommodation Eligibility from the Disability Support Services office authorizing your accommodations will be required.

MISSING:  

If you miss a class, you make up for lost time. No PrP extensions for any reason, medical or otherwise; you have 3 months to submit it: submit EARLY. If you miss an 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. The maximum accommodation period will be the number of missing days to the exam date: it is imperative then that you contact DOS even before the 2 working day period has expired if the accommodation period would be shorter. For Exam1, a DOS approval will get you a scaled Exam2 grade for Exam1. Likewise for Exam2. A makeup for Exam 2 will be given in the rarest of cases that the procedure above is completed early on and the makeup is to be completed before end-of-day Friday, i.e. within two days.

Devices:  

Power down and switch off (not just silence) mobile and other devices before class and place them in a bag or backpack or on the floor screen facing down. IF A STUDENT GETS CAUGHT HAVING A DEVICE (on or off) ON HIM/HER DURING an exam, the exam receives a 0. DEVICES MUST BE OFF and NOT ON YOU.

1.5 COURSE POLICIES (continued)

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. DO NOT USE PENCILS to write down your solutions; If you do use a pencil do not complain about grading after an exam. Scratch paper is forbidden.

PrP-grading: 

See Handout 2 for details (section Testing and Grading). On the sum of the grades of the options submitted lateness points are applied. 30 lateness points deducted at noon-time of due date and every noon-time thereafter. A 0-60 grade for the resulting grade is accounted as 0; an over-60 grade is cut-off at 134 points. Over-134 points are excess points.

Grades:  

Check the marks in a written work and report errors promptly. Resolve any issues WITHIN 2 CALENDAR WEEKS and definitely before the first Reading Day from the day an exam is returned in class or homework graded in moodle; for PrP or Exam3, within 5 calendar days from the day grades were emailed or posted on Banner respectively. Talk to the grader first and then to the instructor (if different). The final grade is decided on a 0 to 1000 point scale. A 25% or less in the final will get you an F. If you get more than 25% in the final and collect at least 500 points you should expect a C or better. 850 points or more are usually needed for an A including robust programming work but this threshold can be lower. If you score less than 500 points the only way to avoid an F is to do well in the cumulative final (say more than half of the points) or to have more than 500 points including excess points and a final more than 25%. (All these assuming no violation of the Collaboration policy.)

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 absence (e.g. unexpected national guard duty). A student needs to be in good standing (i.e. passing the course before the absence). An meail with a timeline of what is needed to be done will be sent to the student and the Department Chairperson. Not showing up in the final will probably get you an F rather than an I.

Collaboration: 

Collaboration of any kind is PROHIBITED in the exams, HWs, and the PrP. Students must turn in code or work that has fully been written by him/her and no-one else. 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. Likewise for HWs and Exams, if applicable. The work you submit must be the result of your own mental effort and you must safeguard it from other parties; if you can’t protect your home computer, use a Lab (AFS) machine.

Email/SPAM: 

Use an NJIT email address or your email might not reach us. Send email to the designated course email address per Handout 0 instructions!

The NJIT Academic Integrity (Honor) Code will be upheld; violations will be reported to the Dean of Students (DOS). Read this handout carefully! ___.