Design and Analysis of Algorithms
Lecture 1: Introduction to Algorithms and Problem Solving
Tauseef Iftikhar
Department of Computer Science
Government College University, Lahore.
Todays Agenda
Introduction to Course
Logistics
Nature of course
Todays Agenda
Introduction to Course
Logistics
Nature of course
Meet me!
Office: Room No. 103
Office visiting hours:
Tuesday 2:00pm to 3:30pm Friday 2:00 to 03:30
Blog:www.lecturercs.wordpress.com
Email:tauseef.iftikhar@ gcu.edu.pk
phone calls are not allowed
Course Introduction
Course Title: Design and Analysis of Algorithms
Course Code: CS-3108
Course Introduction
Course Title: Design and Analysis of Algorithms
Course Code: CS-3108
Recommended Book
I
Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest
Clifford Stein Introduction to Algorithms 3rd Edition, The
MIT Press Cambridge
Reference Books
I
Robert Sidgewick, Kevin Wayne, Algorithms 4th ed.
Knuth, Donald Ervin, The Art Of Computer Programming (3
volumes) Addison-Wesley, 1977.
Todays Agenda
Introduction to Course
Logistics
Nature of course
Course Description
The design and analysis of algorithms is the core subject matter of
Computer Science. Given a problem, we want to (a) find an
algorithm to solve the problem, (b) prove that the algorithm solves
the problem correctly, (c) prove that we cannot solve the problem
any faster, and (d) implement the algorithm. Designing an
algorithm for a computational problem involves knowledge of the
problem domain, a thorough knowledge of the data structures that
are available and suitable and no small measure of creativity. This
course concentrates on the above problems, studying useful
algorithm design techniques, and methods for analyzing algorithms.
Why Analysis of Algorithms?
First step to be a scientist
Its your toolkit
Not an ordinary programmer
Knowing the results before doing
Course Objectives
The objective of the course is to develop following skills in the
students of computer science:
I
developing the problem solving skills,
getting to the mathematical core of problems,
improving mathematical and algorithmic writing,
enhancing programming skills,
identifying appropriate algorithms and data structures,
analysis of algorithms for time and space complexity,
understanding of algorithm design methodologies,
identification of difficult questions and finding strategies to
cope with them.
Course Strategy
prerequisite: Data Structures and Algorithms
Course Strategy
prerequisite: Data Structures and Algorithms
Some sound mathematical skills from discrete math
Course Strategy
prerequisite: Data Structures and Algorithms
Some sound mathematical skills from discrete math
extensive exercises and programming to compare different
algorithms
Course Strategy
prerequisite: Data Structures and Algorithms
Some sound mathematical skills from discrete math
extensive exercises and programming to compare different
algorithms
quiz after almost every lecture.
Course outline
Credit Hours:
Lecture
Lecture 1
Lecture 2
Lecture 3
Lecture 4
Lecture 5
Lecture 6
Lecture 7
Lecture 8
Lecture 9
Lecture 10
Lecture 11
Lecture 12
Lecture 13
Lecture 14
3
Topics
Course logistics and Introduction
Introduction to algorithms and problem solving
Some algorithms -examples
Some algorithms -examples
Correctness verification
Correctness verification
Analysis of Algorithms -order of growth
Analysis of Algorithms -asymptotic notations
Asymptotic notations
Sorting algorithms -insertion sort
Selection sort bubble sort
Recursive Equations
Solving Recursive Equations -iterative method
Solving Recursive Equations -recursion tree
Course outline
Lectures
Lecture 15
Lecture 16
Lecture 17
Lecture 18
Lecture 19
Lecture 20
Lecture 21
Lecture 22
Lecture 23
Lecture 24
Lecture 25
Lecture 26
Lecture 27
Lecture 28
Topics
Solving Recursive Equations -substitution method
Solving Recursive Equations -master theorem
Merge sort
Merge sort analysis
Quick sort
Quick sort analysis
Heap sort
Heap sort analysis
Binary search sort
Binary search sort analysis
Lower bound for comparison base sort
Linear time sorting -counting sort
Linear time sorting -radix and bucket sort
AVL trees
Course Work and Grading
Quizzes 10%
Assignments 10%
Mid Term 20%
Final Exam 60%
It is tentative distribution of marks which may vary depending on
circumstances
Course Policy
Attendance and preparation
Lecture attendance is mandatory and students are expected to
come well prepared for every class. Note taking is encouraged
to help understand ideas more deeply.
Course Policy
Attendance and preparation
Lecture attendance is mandatory and students are expected to
come well prepared for every class. Note taking is encouraged
to help understand ideas more deeply.
Assignment Submission
All assignments should be submitted by or on the due dates
and due time. Students are responsible for making sure that I
receive their assignments by or on the due dates. All
assignments, hardcopy as well as email must be clearly marked
with the student name, student roll number, course name and
assignment title, and section number.
Course Policy
Academic honesty
You are expected to do all of your work on assignments and
examinations individually. That is, collaboration on the
assignments and/or plagiarism is not accepted; what you turn
in should be your own work. Anyone found cheating on any
graded assignment or examination will get no points at
all for that homework assignment or question in exam.
The instructor reserves the right to assign anyone involved in
cheating a failing grade (F-). This will be irrespective of who
cheated from whom. In other words, you are responsible to
protect your work from others.