Professional Documents
Culture Documents
1. Course Informa on
The purpose of this course is to introduce the students to the complexity analysis
of algorithms, the fundamental methods for represen ng data in memory and the
algorithms which access data, using the C++ language. Data structures include:
lists, stacks, queues, trees, heaps, priority queues and hashing. Algorithms include
Catalog Descrip on
searching and sor ng. Programming topics include: pointers, dynamic memory
alloca on, templates and the C++ Standard Template Library (STL). At the end of
the course, students will be equipped with the tools that will enable them to write
clear and e cient programs.
Credit Hours 3
Required/Elec ve Required
1
ffi
ti
ti
ti
ti
ti
ffi
ti
ti
ti
ti
ti
ti
ti
2. Course Topics
Reference in Teaching
Topic(s)
Text* Hours
Introduc on to Data Structure and Algorithms 1
Sor ng: Selec on Sort, Inser on Sort and Bubble Sort. Chapter 9 3
Trees: Basic concepts, binary search tree (BST), opera ons (search
inser on, dele on), tree traversals, balancing a tree (AVL trees), Chapter 5,6 9
applica ons, recursive func ons (review) and stack frames.
Priority Queues: Binary Heaps and how they compare to other naïve Chapters 4
2
implementa ons. and 6
Hashing: Hash func ons, hash tables and collision resolu on using
Chapter 10 3
separate chaining.
* Book chapters are provided for reference only. You are responsible for the material taught in class.
3. Course Outcomes
Upon comple on of this course, students will be able to:
1. Perform basic time complexity analysis of algorithms (@1).
2. Analyze and evaluate, experimentally, the running time of algorithms (@1).
3. Select the appropriate combination of data structures and algorithms for solving a problem or
implementing an abstract data type (@2).
4. Implement fundamental data structures, as well as algorithms for performing operations on
these data structures (@2).
5. Design computer programs that utilize fundamental data structures (@2).
2
ti
ti
ti
ti
ti
ti
ti
ti
ti
ti
ti
ti
ti
ti
ti
ti
ti
ti
ti
ti
4. Detailed Schedule*
Week Topic(s) Dates Notes
3
ti
ti
ti
ti
ti
ti
ti
ti
ti
ti
fi
fi
ti
ti
ti
ti
ti
5. Assessment
Assessment Tool Weight Date Descrip on/Notes
First Exam 22% Week 6
Second Exam 23% Week 12
Two assignments worth 5% each.
Lateness policy:
Programming - 1 – 23 hours late: -5%
10% Due Weeks 8 and 15
Assignments - 24 – 47 hours late: -10%
- 48 – 71 hours late: -15%
- 72 hours or more: -100%
The higher two of the three quizzes will be
considered.
Quizzes 5% Weeks 2, and 16
(No make-up quizzes. If you miss a quiz, the
other two will be considered)
Final Exam 40% Week 16 Exact date and me to be set by the university
4
ti
ti
ti
ti
ti
ti
ti
ti
ti
fi
ti
9. Academic Integrity
• Collabora on Policy: This course permits and encourages many forms of collabora on. However, you
must be careful to collaborate using the following rules:
1. No Visible Code: When discussing ideas with other students, you are not allowed to show your
code to the student you are discussing with and you are not allowed to look at code wri en by
them.
2. Hands in Pockets: When discussing ideas with others, you are not allowed to write code (or
pseudocode-like steps) on your machine, on paper or any other medium for yourself or for the
student you are discussing with.
3. You must also acknowledge any collabora on you have had with anyone while working on the
assignment.
• Outside sources.
- Copying or adap ng code that is not yours (e.g. from the internet) is permi ed only if it comes
from the course materials (i.e., textbook or class notes).
- Using the internet to look-up technical informa on is ne (example: The meaning of an error
message, youtube video explaining how linked lists work, a tutorial on dynamic memory
alloca on in C++, a stack over ow post on a C++ feature, etc.)
- Using the internet to look for code similar to what is required in the assignments is not allowed.
Simply looking at such code is a viola on of the course policy.
• Penal es.
- If we detect a plagiarism case on any assignment or part of an assignment, we will report the case
to the Deanship of King Hussein’s College of Compu ng Sciences. The penalty is determined by
the Dean and can vary from one case to another. The typical penalty for plagiarism cases on
assignments is an F in the course.
- Penal es apply not only to plagiarism but also to abe ng plagiarism (i.e. helping others
plagiarize).
• Regre ng Plagiarism. If you plagiarize code on an assignment and then regret doing so, you may send
an email to your instructor informing them about the case. If you do so before being contacted by your
instructor about the case, you will receive a 0 on the assignment but no further ac on will be taken.
5
ti
ti
ti
ti
tti
ti
ti
ti
ti
f
ti
fl
ti
ti
ti
tti
ti
fi
tt
ti
ti
tt