THIS PAGE IS PROVISIONAL as of Dec 23, 2016. Document h1610s17.pdf contains the LATEST information about this course. Content might change through the first day of classes!


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.

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:00-5:30pm and Wed 4:30-5:30pm Else, by appointment Mon/Tue/Wed
ASSISTANT: TBA on course web-page    
CLASS HOURS: Tue 6:00-9:05pm, KUPF 209    

COURSE WEB PAGE: http://www.cs.njit.edu/~alexg/courses/cs610/index.html

COURSE WEB PAGE [ALTERNATE]: https://www.cs.njit.edu/~alexg/courses/cs610/index.html

Print Handout 1 (the PDF) from Web-page and compare the printout to the hard-copy received in class! They must be identical.
1.2 Course Administration

Prerequisites
Per catalog: CS 505 or CS 335. What this means: Completion of all bridge course requirements such as CS 505 and CS 506, if any. (The 335 is a relic from the past.)

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.

CourseWork:
3 exams (including the final). Programming project. Potentially one more unannounced quiz (To be determined). If Exam1 day is a snow day it gets cancelled, and an Exam 2.5 would be given instead (see Exams below).

Grading Scheme:
1000 points = PrP(134) + Ex1 (200) + Ex2 (333) + Ex3(333).

PrP
A programming project (PrP) with 2 options, each one worth 134 points per Handout 2 and PrP 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-50 grade for the resulting grade is accounted as 0; an over-50 grade is cut-off at 134 points. Do not expect partial credit without a DETAILED BUG REPORT (Handout 2). PrP 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 therafter.

Practice PS
Five comprehensive problem sets PS1-5 will be periodically posted along with their solutions. Exams may be based on these problem sets.

Exams
Dates in Course Calendar; all exams in classroom. Exams are open-textbook only; you may bring a hardcopy of the textbook but you may not borrow one during the exam. Exam1 (quiz) is on Feb 7, 60mins, 200 points. Exam2 (midterm) is on Feb 28, 2hours, 333 points. Exam3 (final) is on May 9, 2hours, 333 points. A second quiz might be given around Apr 11; in that case Exam1's grade gets halved and this quiz will count for the cut 100 points. Or it becomes Exam2.5.


2.1 Course Objectives and Outcomes

Objective 1
Understand and formulate the input-output relationship of computational problems, and formulate the requirements, data and operations of abstract data types (ADT). data structures.
Objective 2
Learn, Understand and be able to describe data structures that represent the mathematical model underlying an ADT.
Objective 3
Learn how to describe, derive and determine, the asymptotic performance of algorithms and data structures.
Objective 4
Learn how fundamental algorithms and data-structures operate, and understand their characteristics. Be able to choose among a variety of similar ones based on problem/program specification and requirements.
Objective 5
Learn how to compose more complex algorithms using as building blocks the fundamental algorithms introduced in class.
Objective 6
Learn how to compose more complex algorithms using the algorithmic design techniques introduced in class.
Outcome 1
Be able to accurately specify the input/output relationship of computational problems, and describe correctly fundamental ADTs.
Outcome 2
Be able to accurately specify the operations of fundamental ADTs and the data structures underlying them; be able to correctly describe the performance of algorithms for the operations on these data structures.
Outcome 3
Be able to asymptotically compare functions using $o,O,\omega,\Omega, \Theta$.
Outcome 4
Be able to solve recurrences using the master, the iteration/recursion tree, and the substitution methods.
Outcome 5
Become familiar with a variety of algorithms for sorting, selecting and searching data and their performance characteristics (eg, running time, stability, space usage) and be able to choose the best one under a variety of requirements.
Outcome 6
Be able to understand fundamental algorithms and data structures and their performance and be able to trace their operations for problems such as sorting, searching, selection, operations on numbers, polynomials and matrices, and graphs.
Outcome 7
Be able to understand fundamental algorithm design techniques and understand how to use them to solve algorithmic problems.
Outcome 8
Be able to use the fundamental algorithms introduced in class to design algorithms for more complex problems and analyze their performance.
Outcome 9
Be able to use the design techniques and algorithms introduced in class to design algorithms for more complex problems and analyze their performance.


3.1 Tentative Course Calendar

Fall 2016
Week Tue Exams PrP or PS Comments
W01 1/17   PPout,PS1*  
W02 1/24      
W03 1/31   PS2*  
W04 2/07 Exam1    
W05 2/14   PS3*  
W06 2/21      
W07 2/28 Exam2   aka Midterm
W08 3/7   PS4*  
W-- 3/14     Spring Break
W09 3/21      
W10 3/28   PS5* March 27 : Withdrawal deadline
W11 4/4      
W12 4/11     Exam2.5 possible?
W13 4/18   PrPin  
W14 4/25      
W-- 5/2   No-class It's an NJIT-Friday
W15 5/9 Exam 3   Final Exam
Topics to be covered

* Problem Sets (PS) with solutions are not for credit. The following describes a tentative list of topics that is intended to be covered in class with indicative chapter pointers to GT. The lecture summaries contain detailed correspondence to chapters of the textbook.

** Time permitting.

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.


Course Syllabus: Policies

MISSING
If you miss a class, it's up to you to make up for lost time. For any exam, you MUST CONTACT 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 period 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.
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 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; for PrP 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 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-900 points or more are usually needed for an A including robust programming work but this varies and may 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 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 PrP. For PrP, 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 Student Services (DOSS). Read this handout carefully!
Alexandros Gerbessiotis 2016-12-23