Algorithm Syllabus
Algorithm Syllabus
Algorithm Syllabus
Fall 2014
Class (online): https://moodle2.uncc.edu
Instructor: Dr. Aidong Lu
Email: [email protected]
Office Hours: Monday 1:00pm - 2:00pm, Wednesday 1:00pm 2:00pm
Teaching Assistant: Mr. Kodzo Webga
Email: [email protected]
TA Office Hours: Tuesday 2:00pm 3:00pm, Wednesday 2:00pm 3:00pm
Course Objectives
Provide fundamental knowledge regarding the design and analysis of computer
algorithms, including knowledge of several useful data structures
Provide techniques of algorithm design and analysis that can be applied to new
problems
Provide tools to analyze and compare the performance of algorithms (space and time)
Demonstrate proofs of correctness of algorithms
Emphasize classes of problems that can be solved by computers
Define Hard problems (NP complete) and how to recognize them
Example Topics
Tools: Growth Functions, Summations, Recurrences, Analysis of Complexity
(asymptotic or precise)
Proof Methods: Induction, Proof by Contradiction
Sorting: Insertion Sort, Merge Sort, Heapsort, Quicksort, linear-time sorts
Searching: List, Hash Table, Binary Search Tree, Balanced Binary Search Trees
Types of Algorithms: Incremental, Divide-and-Conquer, Dynamic Programming,
Linear Programming, Greedy Algorithms
Graph Algorithms: Minimum Spanning Trees, Graph Search, Shortest Path Problems,
Maximum Flow
NP-completeness: NP-complete problems, approximation algorithms
Prerequisites
Undergraduate courses in data structures, programming, discrete mathematics, and
calculus.
Textbook
T. Cormen, C Leiserson, R. Rivest, C. Stein:
Introduction to Algorithms, Third Edition
The MIT Press, 2009
http://mitpress.mit.edu/algorithms/
Scope
I Foundations, chapters 2, 3, 4
II Sorting and order statistics, chapters 6, 7, 8
III Data structures, chapters 10, 11, 12
IV Advanced design and analysis techniques, chapters 15, 16
VI Graph algorithns, chapters 22, 23, 24, 25, 26
VII Selected topics, chapters 34, 35
Grading
Homework Assignments (30%)
Programming Projects (20%)
Two Mid-Term Exams (15% each)
Final Exam (20%)
Bonus: discussion participation, bonus questions, and bonus programming assignments
(up to 20%)
Course Structure
This course will be delivered entirely online through the course management system
Moodle. You will use your uncc account to login to the course from the Moodle login page
(https://moodle2.uncc.edu).
In Moodle, you will access online lessons, course materials, and resources. At designated
times throughout the semester, we will participate in a blend of self-paced and group-
paced activities using Moodle and alternative Internet-based technologies. Activities will
consist of chat, blogs, discussion forums, email, journaling, blogging, wikis, and web
posting.
Late Work Policy
All students are required to check the course schedule every week and keep updated with
the assignment due dates and exam dates. There will be no make up assignments or
exams, or late work accepted without an official medical/event record and instructor
approval.
About online course vs. traditional class
This online course will take all the class activities on the course website
(moodle2.uncc.edu), including course materials, assignments, discussions, Q&A, exams
and grading. Each week, we will post new course topics, assignments, and required
readings from the textbook. Each student is required to review the course materials and
finish the assignments in a timely fashion.
It is important to note that there is no schedule for the class to meet in anytime of the
semester. With this online course, you can choose your study time and location.
It is also important to understand that this online course will keep the same requirements
as the other traditional sessions in the university.
To be successful in the online course, I strongly suggest all students to keep consistent
with all the course, assignment, and exam schedule.
Policy on Academic Integrity
Students have the responsibility to know and observe the requirements of The UNC
Charlotte Code of Student Academic Integrity. (See Catalog.) This Code forbids cheating,
fabrication or falsification of information, multiple submission of academic work,
plagiarism, abuse of academic materials, and complicity in academic dishonesty. For
example, a student who copies another students work for a project, assignment, or exam,
as well as a student who intentionally or knowingly provides the work to another student
for such copying, are both in violation of the Academic Integrity Code. It is the policy of the
College of Computing and Informatics that students may not share program source codes
for computer projects and assignments unless explicitly authorized by the instructor.
Students are responsible for safeguarding their computer program source codes to
prevent copying by other students. Irresponsibility in safeguarding source code is a
violation of CCI policy and may be a violation of the Academic Integrity Code.
The University will strictly enforce the Academic Integrity Code, which is binding on
all students. Grades and academic evaluations in this course include a judgment that the
students work is free from academic dishonesty of any type. Grades in this course,
therefore, should be and will be adversely affected by academic dishonesty. Students
who violate the Academic Integrity Code may be expelled from UNC Charlotte. The
normal penalty for a first offense is zero credit on the work involving dishonesty and
further substantial reduction of the course grade. In some cases the course grade is
reduced to U, which results in the termination of a students graduate study at UNC
Charlotte. All second offenses and some serious first offenses will be sent to University-
wide Academic Integrity Board.
Copies of the Academic Integrity Code may be obtained from the Dean of Students
Office, and it is available online at http://www.legal.uncc.edu/policies/ps-105.html.
University standards of academic integrity will be enforced in this course. Students are
expected to report cases of academic dishonesty to the instructor immediately.