THIS PAGE IS PROVISIONAL and is BEING UPDATED. Document h1435s17.pdf contains the LATEST information about this course. Content might change through the first day of classes!


A course on algorithms and data-structures. Advanced topics in data structures and algorithms, involving sequences, sets, and graphs such as searching, sorting, order statistics, balanced search tree operations, hash tables, graph traversals, graph connectivity and path problems. Algebraic and numeric algorithms. Performance measures, analysis techniques, and complexity of such algorithms. Greedy algorithms and dynamic programming-based techniques. String matching algorithms. Introduction to NP-completeness.

1.1 Contact Information

INSTRUCTOR: Alex Gerbessiotis E-MAIL: alexg+cs435@njit.edu
OFFICE: GITC 4213, 4th floor TEL: (973)-596-3244
OFFICE HOURS: Tue 4:00-5:30pm and Wed 4:30- 5:30pm Else, by appointment Mon/Tue/Wed
Assistant: TBA on WEB (Recitation Room is CKB 206)    
Class Hours: Wed 6:00-9:05pm, CKB 206 (Cahnged 1/18)    

Web Page: http://www.cs.njit.edu/~alexg/courses/cs435/index.html

Web Page: https://web.njit.edu/~alexg/courses/cs435/index.html

Print Handout 1 (the PDF) from Web-page and compare it to the hardcopy received in class! They must be identical.


1.2 Course Administration

Prerequisites
CS 241, CS 288.

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.

CourseWork:
3 exams (including the final); Programming assignments (aka MiniProject) ; If the Exam1 day is a snow day, then Exam1 will be held a week later; if that day is also a snow day it will be scheduled for April 12 as Exam 2.5.

Grades:
1000 points = MP(160)+ Ex1 (150) + Ex2 (345) + Ex3 (345) + 40?

MP
A programming mini-project (MP) with 3 options each one worth 120 points per Handout 2 and MP guidelines. A student may submit one or two options; both options must be submitted in one email per Handout 2. Test (and we shall do so) on one of the machines of Handout 2 to avoid problems; if code fails to dearchive, or compile, or run you will get a 0. So will get you the presence of binary/class/jar files or directories. On the sum of the grades a lateness penalty will be applied (see below), if necessary. A 0-60 grade for the resulting grade is accounted as 0; an over-60 grade is cut-off at 160 points. Do not expect partial credit without a DETAILED BUG REPORT (Handout 2). MP submitted by email AND RECEIVED BEFORE NOON-TIME of the date specified in the Calendar. 30pts lateness penalty at noon-time and every noon-time thereafter.

PS
Approximately eight problem sets PS1-8 will be periodically posted along with their solutions. Exams may draw from these problem sets.

Exams
Dates in Course Calendar. Exam 1 (or 2.5) is closed-everything. The other exams (midterm and final) are open-textbook only. You may bring a hard-copy of the textbook but you are not allowed to borrow one during the exam. For the final, you may also bring in class a clean copy of Handout 4 on red-black trees in addition to the textbook. Exam1 is on Wed Feb 8 , 45min, 150 points. Exam2 is on Wed Mar 1, 2hrs, 345 points. Exam3 is on Wed May 10, 2hrs, 345 points.

Exam Conflicts
This is a high-numbered required course. In case of multiple exams on a same day, this exam has priority even if it is the last exam of the day.


2.1 Course Objectives and Outcomes

A1.
Learn how and be able to asymptotically compare functions using $o,O,\omega,\Omega, \Theta$, and be able to solve recurrences using the master, the iteration/recursion tree, and the substitution method
A2.
Learn how and be able to describe the asymptotic performance of algorithms and data structure operations.
A3.
Learn how and be able to understand fundamental algorithms and data structures and be able to trace their operations for problems such as sorting, searching, selection, operations on numbers, polynomials and matrices, and graphs.
B1.
Learn how and be able to understand the input and output specifications of a problem, the relationship between input and output and identify, define, and describe the algorithmic requirements that formulate a solution for those problems.
C1.
Learn and be able to identify the performance characteristics of algorithms and data structures for problems such as sorting, searching, selection, operations on numbers, polynomials and matrices, and graphs; be able to select among multiple available solutions to meet desired needs.
C2.
Learn how fundamental algorithm design techniques work and be able to understand how to use them to design, implement and evaluate a variety of algorithmic problems.
F1.
Learn how and be able to describe in writing algorithm operations and reason about their behavior and performance succinctly.
I1.
Learn how and be able to effectively apply the knowledge gained in the course in dealing and interacting with software libraries that offer same or alternative implementations of algorithms and data structures.
J1.
Learn how and be able to model, design, and construct algorithms and data structure operations and analyze and derive their asymptotic performance and provide tradeoff solutions (eg. space vs time)
J2.
Learn how and be able to understand the operations of fundamental algorithms and data-structures, their characteristics, and be able to choose among a variety of similar ones based on problem/program specification and requirements in building more complex algorithms and data structures, and deciding trade-offs between space and time requirements.
K1.
Learn how and be able to compose more complex algorithms and data structures using as building blocks the fundamental algorithms and data structures introduced in class.
K2.
Learn how and be able to compose more complex algorithms using the algorithmic design techniques introduced in class.


2.2 Topics to be covered

Section 2.2 of the previous page contains 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 $\mathrm{AL}i$ refers to the ACM Computing Curricula 2013 topic description code. In parentheses, we provide an approximate number of hours per topic. Hour coverage may change depending on circumstances (eg. class pace, weather). Minimum time requirements of the topics covered are. AL1 (basic analysis):4, AL2 (algorithmic strategies): 6, AL3 (fundamental data structures and algorithms):12, AL4 (basic automata, computability and complexity) optional:2, AL7 (advanced data structures, algorithms and analysis): elective, DS3 (proof techniques):1, DS5(graphs and trees):1.


3.1 Tentative Course Calendar

Week**     Wed   PS with Solutions MP                  Comments
*******************************************************************************
W1 ......  1/18  PS1* ...........  MP out  
W2 ......  1/25  PS2* 
W3 ......  2/1   PS3* 
W4 ......  2/8   .... ...........  Exam1           
W5 ......  2/15  PS4* 
W6 ......  2/22  PS5* 
W7 ......  3/1   .... ...........  Exam2        
W8 ......  3/8        
W- ......  3/15  .... ...........  Spring Break                         
W9 ......  3/22  PS6*            
W10......  3/29                        
W11 ...... 4/5   PS7*                 
W12 ...... 4/12  PS8*                
W13 ...... 4/19  .... ...........  MP in BEFORE noon 
W14 ...... 4/26                         
W-- ...... 5/3   .... ...........  5/3 is a Reading Day     
W15 ...... 5/10  Exam3...........  Final Examination       

* Problem Sets (PS) with solutions are not for credit. ** In this calendar, a week starts on a Tuesday

Any modifications or deviations from these 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.


3.2 Absenteeism

Makeup
It's up to you to make up for lost time; no make up if we give the quiz, for any reason (including DOSS justified one). No MP extensions for any reason, medical or otherwise; you have 3 months to submit it. If you miss an exam and there is a valid documentation for your absence, such documentation must be presented to the Dean of Student Services (DOSS) within 2 working days from the day the reason for the absence is lifted with all necessary documentation. The maximum accommodation will be the number of missing days to the exam date; it is imperative then that you contact DOSS even before the 2 working day period has expired if the accommodation period would be shorter. For Exam1, a DOSS approval will get you a scaled Exam2 grade for Exam1. For the unannounced quiz and a DOSS approval, Exam1 stays as is or Exam2 gets scaled.

4.1 Course Policies
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. Programming points discarded may be used, at the discretion of the instructor, to remove a student from a fail zone (assuming no violation of the Collaboration policy). DO NOT USE PENCILS to write down your solutions; if you do use a pencil do not complain about grading after an exam.
Grades
Check the marks in 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; for MP or Exam3, within 5 calendar days from the day grades were emailed or posted on Banner. Talk to the grader first and then to the instructor (if different). The final grade is decided based on a 0 to 1000 point scale. A 25\% or less in the final exam 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 but this threshold can vary (be lower). If you score less than 500 points the only way to avoid a D or F is to do well in the cumulative final (say more than half of the points) or have leftover programming points. (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) and receives a provisional I if there is no time to makeup 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
Collaboration of any kind is PROHIBITED in the in-class exams and the mini-project. For MP, a student must turn in code that has fully been written by him/her. 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. 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.
Mobile Devices
Switch off (not just silence) mobile devices before class.

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 Honor Code will be upheld; any violations will be brought to the immediate attention of the Dean of Students. Read this handout carefully!
A. V. Gerbessiotis 2017-01-19