Comp 285

Design and Analysis of Algorithms

Fall 2019

Course Logistics

Blackboard: NC A&T uses the Blackboard course management system. You will find official announcements, course slides, additional lecture notes and practice programs on Blackboard. Blackboard is also where you will submit assignments.

Lectures: Lectures occur on M/W from 11:00 to 12:15 pm in Graham Hall 210

Textbook: The main text is: J. Kleinberg and E. Tardos. Algorithm Design. Addison Wesley, 2005.

Course Description

Overview: This course covers analysis of efficient algorithms for sorting, searching, dynamic structure manipulation, path- finding, fast multiplication, and other problems. It introduces algorithmic techniques such as recursion, divide- and-conquer, and dynamic programming. It develops the following tools for algorithmic analysis: correctness proofs, algorithm synthesis, and discusses issues in non- computability. This course also overviews non-deterministic algorithms, and develops techniques to classify computationally hard problems. The concept of non- deterministic polynomial (NP)-completeness is introduced, and basic issues related to NP-completeness are discussed.

Prerequisites: Comp 280 (data structures) and Math 131 (Calc I)

Policies

Quizzes: A quiz of great similarity to the homework will be given every week. The intention is that, if you have done the homework assignment, the quiz should be straightforward. The solution to the quiz will be discussed after all quizzes are collected. Therefore, no late quizzes will be administered. While the homework assignments are not collected and graded, you should do them on time and on your own. This will be essential to mastering the course material.

Collaboration - Written homework: you should try to solve the problems by yourself first. We recommend that you start early and get help in office hours if needed. You are encouraged to also form study groups, to try and work through the problems together. Conceptual collaboration and group problem solving is a part of computer science. However, make sure you're getting something out of a group study session, as the quizzes will be individual assignments.

Collaboration - Programming assignments: these are to be done individually. You may discuss the problem and general concepts with other students, but there should be no sharing of code, and you should sit down to write your program independently. You may not submit code other than that which you write yourself or is provided with the assignment. This restriction specifically prohibits downloading code from the Internet. If any code you submit is in violation of this policy, you will receive no credit for the entire assignment. Plagiarism and other forms of cheating and academic dishonesty will be dealt with severely.

Use of Email: You cannot expect to get last-minute help on assignments by email. Although it's easy for you to dash off an email question, it takes time to answer it. In general, you should not ask email questions to which you can find the answer somewhere else (e.g., class notes, web page). If you must send an email, spend extra time to ensure that you are both brief and clear. Please include your name in the "From:" line of the email message, not just your email address. Email is a valuable tool for communicating with the instructional team. But be sure to use it properly, and follow the rules of good email etiquette (e.g., no flaming, spamming, etc.). Email messages will be sent to the student's A&T email address. It is the student's responsibility to regularly check their A&T email account.

Grade Disputes: If you are dissatisfied with a grade you receive, you must submit your complaint briefly in writing or by email, along with supporting evidence or arguments, within one week of the date that we first attempted to return the exam or assignment to you.
     The grade you are given on an exam, a quiz, an assignment, or as your final grade, is not the starting point of a negotiation. It is your grade unless a concrete error has been made. Do not come to the instructors or TAs to ask for a better grade because you want one or you feel you deserve it. Come only if you can document a specific error in grading or in recording your scores. Errors can certainly be made in grading, especially when many students are involved. But keep in mind that errors can be made either in your favor or not. So it is possible that if you ask to have a piece of work re-graded your grade will go down rather than up.
     Remember that the most important characteristic of any grading scheme is that it be fair. Keep this in mind if you're thinking of asking, for example, for more partial credit points on a problem. The important thing is not the exact number of points that were taken off for each kind of mistake. The important thing is that that number was the same for everyone.