You are on page 1of 20

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.