Mansoura University
Faculty of Computers and Information Sciences
Course Specifications of
Algorithm Analysis and Design
University: Mansoura University Faculty: Computer and Information Sciences
Program on which the course is given: General Program Department offering the
course: Department of Computer Science
Academic year/ Level: Third Year – First Semester– 2017-2018
Date of specification approval:
A- Basic Information
Title : Algorithm Analysis and Design Code :
Credit Hours : 3 Lecture : 2 Tutorial : 2 Practical : 0
B- Professional Information
1- Overall Aims of the Course
This course aims to:
Upon completing this course, the student should understand the solid theoretical
background in analyzing and designing computer algorithms. The student should be
able to use critical thinking in applying suitable algorithms design techniques to solve
problems encountered either in some real problems in different domains or in advanced
level courses. Also, the student will able to analyze the time and space complexities of
those various problems.
Page 1 of 5
2- Intended Learning Outcomes of the course (ILOs)
By completing this course successfully, the student will be able to:
a- Knowledge and Understanding
a1 Essential facts, concepts, principles and theories relating to computing and information and
computer applications as appropriate to the program of study.
a2 Modeling and design of computer-based systems bearing in mind the trade-offs.
a3 Tools, practices and methodologies used in the specification, design, implementation and
evaluation of computer software systems.
a4 Criteria and specifications appropriate to specific problems, and plan strategies for their
solution.
a14 Demonstrate basic knowledge and understanding of a core of analysis, algebra, applied
mathematics and statistics.
b- Intellectual Skills
b1 Analyze computing problems and provide solutions related to the design and construction
of computing systems.
b2 Realize the concepts, principles, theories and practices behind computing and information
as an academic discipline.
b4 Analyze, propose and evaluate alternative computer systems and processes taking into
account limitations, and quality constraints.
b10 Define traditional and nontraditional problems, set goals towards solving them, and observe
results.
b11 Perform comparisons between (algorithms, methods, techniques...etc).
b12 Perform classifications of (data, results, methods, techniques, algorithms..etc.).
b15 Restrict solution methodologies upon their results.
b16 Establish criteria, and verify solutions.
b17 Identify a range of solutions and critically evaluate and justify proposed design solutions.
c- Professional and Practical Skills
c6 Design, implement, maintain, and manage software systems.
c15 Specify, design, and implement computer-based systems.
c16 Evaluate systems in terms of general quality attributes and possible tradeoffs presented within the
given problem.
.
d- General and Transferable Skills
d1. Demonstrate the ability to make use of a range of learning resources and to manage one's own
learning.
Page 2 of 5
3- Contents
No Course Content Lecture Tutorial Total
1 Introduction and Getting Started: Algorithms, Life cycle of solving
problems, Algorithms as technique, Insertion sort , Analyzing
4 4 8
algorithms, Designing algorithms
2 Growth of Functions: Asymptotic notation, Standard notations and
common functions 2 2 4
3 Divide and Conquer: Binary Search Algorithm, Merge Sort, The
recursion-tree method for solving recurrences, Iteration method for
solving recurrences, Matrix multiplication, Strassen’s algorithm for
6 6 12
matrix multiplication, The master method for solving recurrences –
Some related Problems
4 Heapsort: Heaps, Maintaining the heap property, Building a heap, The
heapsort algorithm, Priority queue
Quicksort: Description of quicksort Performance of quicksort, A
randomized version of quicksort Analysis of quicksort 4 4 8
Sorting in Linear Time: Counting sort, Radix sort, Bucket sort
Medians and Order Statistics
5 Greedy algorithms: Elements of the greedy strategy, Coin changing, 01
knapsack, Huffman codes, Minimum Spanning Trees: The algorithms of
Kruskal and Prim
7 7 14
Introduction to Dynamic Programming: Introduction to Shortest Path
problem
6 Representations of graphs: Introduction to graphs, Some common
graphs. 2 2 4
7 Introduction to NP Completeness 1 1 2
Total Hours 26 26 52
4- Assessment Schedule
Assessment Method No. Description Week No. Weight (%)
Assignment 1 Sheet no. 1 5 2.00 %
Written Exams 2 Midterm Exam 7 15.00 %
Assignment 3 Sheet no. 2 12 2.00 %
Quiz 4 Quiz 3, 10 2.00 %
Term project 5 Program 13 4.00 %
Assignment
Written Exams 6 Final Exam 14 75.00%
Page 3 of 5
Total 100
5- List of references
5.1 Course Notes
- Slides delivered to students at the end of some lectures.
5.2 Essential Books (Text Book)
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest,
“Introduction to Algorithms”, 3rd Edition, MIT Press, 2009.
6- Facilities Required for Teaching and Learning -
Data show.
- Blackboard.
Course Content/ILO Matrix
Course Content a a a a a b b b4 B b b b b b c c c d
1 2 3 4 14 1 2 10 11 12 15 16 17 6 15 16 1
Introduction and
Getting Started:
Growth of Functions
Divide and Conquer:
Solving recurrences
Heapsort-Quicksort:
Sorting in Linear Time-
Medians and
Order Statistics
Greedy algorithms -
Introduction to
Dynamic Programming
Representations
of graphs.
Introduction to
NP Completeness
Page 4 of 5
Learning Method/ILO Matrix
Course Content A a a a a b b b b b b b b b b c c c d
1 2 3 4 14 1 2 4 10 11 12 13 15 16 17 6 15 16 1
Lectures
Tutorials
Assessment Methods/ILO Matrix
Assessment a 1 a a 3a 4 a b b2 b b b b b b b b c c c d1
2 14 1 4 10 11 12 13 15 16 17 6 15 16
Assignment
Midterm Exam
Quizzes
Term project
Final Exam
Course Coordinator: Assistant Prof. Samir Elmougy
Head of Department: Assistant Prof. Samir Elmougy
Date: 27/1/2018
Page 5 of 5