You are on page 1of 5

The King Hussein School for Information Technology

Computer Science Department

Course Syllabus - Spring 2023


CS11212 Data Structures and Introduc on to Algorithms

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

Prerequisite Object Oriented Programming in C++ and Discrete Math

Course Type Lecture

Required/Elec ve Required

Data Structures and Algorithms in C++; Adam Drozdek; Thomson Course


Textbook
Technology, 3rd Edi on.
- Data Structures and Algorithm Analysis in C++, Mark A Weiss, Addison Wesley
- Data Structures and Algorithms in C++, Michael Goodrich, John Wiley and
References Sons
- Data Structures Using C++, D.S. Malik; Thomson Course Technology
- Introduc on to Algorithms, Cormen et al.; MIT Press
Instructor Dr. Ibrahim Albluwi Email: i.albluwi@psut.edu.jo

Sec on 1: 11:00 – 12:00 Sun/Tue/Thu Room 206


Class Schedule Sec on 2: 13:00 – 14:00 Sun/Tue/Thu Room 205
Sec on 3: 9:30 – 11:00 Mo/We Room 205

9:30 - 10:50 (Sundays)


O ce Hours 12:30 - 13:50 (Mondays and Wednesdays)
14:00 - 15:30 (Tuesdays and Thursdays)

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

An introduc on to the analysis of algorithms: Theore cal vs


experimental running me analysis, best- and worst-case analysis, Chapter 2 5
growth rates of func ons and asympto c analysis.

Searching: Linear search and binary search. Chapter 2 2

Sor ng: Selec on Sort, Inser on Sort and Bubble Sort. Chapter 9 3

Lists: Singly-linked and doubly-linked lists, ordered lists, advantages


Chapters 3 11
and disadvantages of array lists and linked lists.

Stacks and Queues: Applica ons of stacks and queues and


Chapters 4 5
implementa ons based on arrays and linked lists.

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.

C++ Standard Template Library (STL): lists, vectors, stacks, queues,


2
priority queues, sets, unordered sets, maps and iterators.

* 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

- [1hr] Course Introduc on


1 19/2 - 23/2
- [2hr] Algorithm Analysis: Coun ng opera ons
- [2hr] Algorithm Analysis: Growth rates
2 26/2 - 2/3 Quiz 1
- [1hr] Linear and Binary Search
- [1hr] Binary Search and Intro to Sor ng
3 - [1hr] Selec on Sort 5/3 - 9/3
- [1hr] Inser on Sort
- [1hr] Bubble Sort and Summary
4 - [1hr] Singly-Linked Lists: Introduc on 12/3 - 16/3
- [1hr] Singly-Linked Lists: Adding nodes
- [1hr] Singly-Linked Lists: Traversal
5 - [1hr] Singly-Linked Lists: Removing nodes 19/3 - 23/3 HW1 Released
- [1hr] Doubly-Linked Lists: Introduc on + Templates
6 - [2hr] Doubly-Linked Lists 26/3 - 30/3 First Exam
7 - [3hr] Doubly-Linked Lists 2/4 - 6/4
- [1hr] Linked Lists: More prac ce
8 9/4 - 13/4 HW1 Due
- [2hr] Stacks
9 - [2hr] Queues 16/4 - 20/4
- [1hr] Queues Eid AlFitr
10 23/4 - 27/4
- [1hr] Binary Search Trees: Intro and De ni ons
- [1hr] Binary Search Trees: Intro and De ni ons
11 30/4 - 4/5 Labor Day
- [1hr] Binary Search Trees: Search & Inser on
- [1.5hr] Binary Search Trees: Dele on Second Exam
12 7/5 - 11/5
- [1.5hr] Trees: AVL Trees HW2 Released
- [3hr] Trees: Depth-First Traversals
13 (prin ng in-order, destructor, copy constructor, 14/5 - 18/5
compute_depths(), compute_heights(), more prac ce)
- [1hr] Trees: Breadth-First Traversal
14 21/5 - 25/5
- [2hr] Hashing
- [1hr] Hashing Independence Day
15 28/5 - 1/6
- [1hr] Priority Queues HW2 Due
- [1hr] Priority Queues
16 4/6 - 8/6 Quiz 2
- [2hr] STL
17 Final Exam
* This schedule might change slightly based on the midterm exam date, public holidays and any unforeseen circumstances.

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

6. Contribu on of the Course to the Professional Component


Computer Science Topics 100%
General Educa on 10%
Mathema cs & Basic Sciences 30%

7. Expected level of pro ciency from students entering the course


Mathema cs Discrete Math
Physics Not applicable
Technical wri ng Some
Computer programming Object Oriented Programming using C++

8. Material available to students, instructors, and department at end of course


Students Department Instructors
Course objec ves and outcomes form X X X
Lecture notes, homework assignments, and solu ons X X X
Samples of exam solu ons from 3 students X X
Course performance from student surveys X X
End-of-course instructor survey X X

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.

The following is a summary of what is allowed:

ac vity course sta classmates others


discuss concepts with ... ✔ ✔ ✔
acknowledge
collabora on with ... ✔ ✔ ✔

show solu ons to ... ✔ no no


view solu ons from ... no no no

• 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

You might also like