1.1 CONTACT INFORMATION

Instructor: Alex Gerbessiotis
E-mail: alexg+cs610@njit.edu
Tel: (973)-596-3244
Office: GITC 4213, 4th floor
@NJIT ”Office” Hours:Mon and Wed 4:10pm-5:30pm
Assistant: Check course web-page
Class Hours: See Registrar course schedule; designated classroom
LMS: Learning Management System to be used is canvas.njit.edu
Web-Page:
http://www.cs.njit.edu/~alexg/courses/cs610/index.html
Web-Page:
http://web.njit.edu/~alexg/courses/cs610/index.html

1.2 COURSE ADMINISTRATION

CourseWork: 

2 exams ; 5 Homeworks (HW) ; Programming project (aka PrP).

 

Points: 1000points=PrP(130)+Ex1(360)+ Ex2(360)+HW(150)

HW:  

Five homeworks due before noon (12 o’clock i.e. 12PM for Canvas) and submission through canvas.njit.edu; see calendar for dates.

PrP:  

A programming project (PrP) with 2 options each one worth 130 points. A student may submit one or two options per Document 4 AND SUBMITTED VIA Canvas BEFORE 12-o’clock noon / 12PM of the date specified in the Calendar.

Exams:  

Dates for Exam 1, 2 in Course Calendar and on a class day in designated classroom. Exam1 is midterm and 120min. Exam2 is the final and 120min. All Exams are closed everything and cumulative. See Document 0 for further information and also Document 3 for the following discussion; both available in Canvas Announcements. In case NJIT declares an emergency (eg Covid), a paper exam might become a canvas exam using ProctorU Record+ for proctoring. It is thus imperative that you acquire a ProctorU account/credentials and also test your equipment before the end of day of the 3rd Friday of the semester. Even if you have obtained a ProctorU account elsewhere (eg Rutgers) you still need to connect it with your NJIT credentials (myUCID). Hopefully this option will not be exercised. But you and I should be prepared for the possibility of using it!
NJIT computer policies: https://ist.njit.edu/student-computers.

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:  

[Recommended, designated] Algorithm Design: Foundations, analysis, and internet examples. M. T. Goodrich and R. Tamassia. Wiley, 2001, ISBN 0-471-38365-1.
Referred to hereafter as GT.

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 chapters of the designated textbook):

T1. 

Ch1,2.1-2.2,4.1-4.2,5.1-5.2: Introduction. Algorithm Analysis. Asymptotic notation. Sorting. Algorithm Design Techniques. Elementary data structures.

T2. 

Ch1,5.2: Asymptotic growth of functions and Recurrence relations.

T3. 

Ch2.3,5,6.1-6.4: Graphs and their representation. Traversals. Union-find.

T3. 

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

T4. 

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

T5. 

Ch2.4,5.1,9.3: Heaps and Priority Queues. Greedy Method. Huffman codes.

T6. 

Ch4: QuickSort. Complexity of sorting. Linear-time sorting.

T7. 

Ch4: Selection; Order statistics

T8. 

Ch4.2,6,7: Graphs and their representation. Graph traversals. Strong connectivity. Topological sorting. Shortest paths. Minimum cost spanning trees.

T9. 

Ch5.2-5.3: Integer and Polynomials. Matrices. The WORD and BIT models.

T10. 

Ch3: Binary Search Trees and Balanced Binary Search trees.

T11. 

Ch3.3, 14.1.2: Search Trees of Bounded Depth (and Height)

T12. 

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

T13. 

Ch13.1-13.2: The theory of NP-completeness: P, NP, co-NP, NPC, NP-hard.

1.4 CALENDAR






Fall 2021





Week
M
W
Out
In/Comments





W01 —- 09/01HW 1 out on 9/1
W02 LABD—– No class on Wed Wed 9/8 is Mon for NJIT
W03 09/13 09/15HW 2 out on 9/15 HW1 in 9/15 before noon
W04 09/20 09/22
W05 09/27 09/29HW 3 out on 9/29 HW2 in 9/29 before noon
W06 10/04 10/06HW 4 out on 10/06 HW3 in 10/06 before noon
W07 10/11 10/13 HW4 in 10/13 before noon
W08 10/18 10/20
W09 10/25 10/27Exam 1 on Wed 10/27
W10 11/01 11/03
W11 11/08 11/10HW 5 out on 11/10 Opt 1 of PrP 11/10 before noon
W12 11/15 11/17 HW5 in 11/17 before noon
W13 11/22 11/24
W14 11/29 12/01 Opt 2 of PrP 12/01 before noon
W15 12/06 12/08
W16 12/15Exam 2 on Wed 12/15(Check with Registrar)





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

OARS:  

If you need special accommodations, contact the Office of Accessibility Resources and Services, KUPF 201, to discuss your specific needs. A Letter of Accommodation Eligibility from OARS authorizing your accommodations will be required and should be received by us at least two weeks plus two days before the first exam, if it also relates to a ProctorU exam, otherwise seven days before the first non ProctorU exam.

MISSING:  

If you miss a class, you make up for lost time. No PrP extensions for any reason, medical or otherwise; 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 and email the instructor of your intent and absence. Do not submit documentation to the instructor: it is a private matter between you and the Dean of Students. 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. No makeup exam for a ProctorU exam.

Devices:  

Power down and switch off (not just silence) mobile and other devices 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, the exam receives a 0. DEVICES MUST BE OFF and NOT ON YOU. For ProctorU exams ”ON YOU” means anywhere viewable including at a distance of less than 6ft. A not completely powered down device of yours is assumed to be ”ON YOU” independently of proximity.

1.5 COURSE POLICIES (continued)

Grading:  

For paper exams, if any, do not use pencils to write down your answers. If you do use a pencil do not complain about grading after an exam. Scratch paper is forbidden. Work submitted will be graded for conciseness and correctness; 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. Everything else requires a proof (justification) of solution. For PrP-grading see Document 4 for details (section Testing and Grading). On the sum of the grades of the options, a 0-60 grade is accounted as 0; an over-60 grade is cut-off at 130 points. Over-130 points are excess points.

Grades:  

Check marks and report errors promptly. Resolve any issues WITHIN 2 CALENDAR WEEKS and before the first Reading Day starting from the day an exam or homework is released or returned. For PrP or the Final exam, within 5 calendar days from the day grades are posted on canvas or Banner, as applicable. Talk to the grader first, and then to the instructor (if different). The final grade is decided on a 0 to 1000 point scale. If you get less than 500 points in the class, expect an F. If you 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. (All these assuming no violation of the Collaboration policy.) After letter grades are decided, excess points are then applied to determine if an upgrade by one level (eg B to B+ ) is possible.

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 email (in lieu of a written letter) 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 (in HW, Exams, PrP) is PROHIBITED. Students must turn in work that has fully been composed and written by them and no-one else. Finding an answer on the Internet, Web, or otherwise, or it is product of someone else’s work, or it is common with another student submission, in the same or other section/course risks punishment as outlined by the University. All parties of such interaction receive a 0 and letter grade is lowered by one or two levels. The work you submit must be the result of your own mental effort.

Email/SPAM: 

Use an NJIT email address or your email might not reach us. Send email to the designated course email address per FAQ (Document0) instructions!

Canvas Note: 

Canvas assigns points (eg to the Verification of Presence i.e. VoP) to non CourseWork. Because canvas has synchronization issues, all point-assigned material released through canvas will be of limited availability and visibility. Make backups if needed (e.g. take screenshots).

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