Académique Documents
Professionnel Documents
Culture Documents
CS-318 Analysis of Algorithms B.Sc. Computer Science (Honours) Fall Semester, 2011
Faculty: Credit hours: Core/Elective: Course level: Campus/Location/Instruction Mode: Course Convenor: Consultation hours: Pre-requisite: Timing This document was last updated:
GIFT School of Computing Science 3 Core Undergraduate GIFT University/On Campus/In Person Muhammad Shakeel During office hours CS-214: Data Structures and Algorithms Please see the timetable 26 October, 2011
BRIEF COURSE DESCRIPTION This is an introductory course in algorithms. We will cover standard topics such as definitions of algorithmic complexity (worst case, average case); basic tools such as sorting, searching and dynamic programming; graph algorithms and searching techniques such as minimum spanning trees, depth-first search, shortest paths; and more advanced topics. Emphasis will be given to arguing the correctness of algorithms and performing an analysis of their running time.
COURSE AIMS This course aims to impart knowledge of basic data structures and their role in solving programming tasks. It also shows how to design correct and efficient algorithms by describing their steps precisely and understandably, and to code them in simple programming contexts. The understanding of running time analysis techniques is also an important feature of this course.
LEARNING OUTCOMES The goal of this course is to provide a strong foundation in algorithms and data structures in preparation for jobs in industry or for more advanced courses. Algorithms are the basic language of computer science. After taking this course, you, the student, should be able to: Have a good understanding of how several fundamental algorithms work, particularly those concerned with sorting and searching; Have a good understanding of the fundamental data structures used in computer science; Be able to analyse the space and time efficiency of most algorithms; Be able to design new algorithms or modify existing ones for new applications and reason about the efficiency of the result. Prove the correctness of, and analyse the running times of, different algorithms. Use different algorithm-design techniques, including, but not limited to, greedy, divide-and conquer, and dynamic programming techniques, to solve particular problems. Model real problems abstractly using the language of graphs and ows. Solve problems by reducing to other problems whose solution is known, and show that problems are hard by reducing from other problems. Make intelligent decisions about alternative data structures and algorithmic techniques in the context of practical software problems, choosing from existing data structures and algorithms or designing your own when necessary.
CONTENT SUMMARY
SESSIONS
TOPICS
1 2 2 2
Mathematical analysis of nonrecursive algorithms Mathematical analysis of recursive algorithms Brute-force algorithms Exhaustive search
3.5
4.1,4.2
MID-SEMESTER EXAMINATION
4.4
Variable-size-decrease algorithms.
4.5
5.1-5.2
Instance simplification: presorting, Gaussian elimination, Balanced search trees. Representation change: heaps and heapsort.
6.1-6.3
6.4
Problem reduction.
6.6
7.2-7.3
8.1-8.4
9.1-9.4
Please note: This is a proposed schedule only and may be varied at the discretion of the Course Convenor to give a greater or lesser degree of emphasis to particular topics. ASSESSMENT
Item 1. 2. 3. 4.
Due Day and Time In class as per schedule Arranged Notified in due course During formal examination period
Please note: 1. A best of 5 quizzes will be taken in the final assessment. 2. Retake of any quiz is not permissible. 3. Assignments must be submitted in due time. Late submissions will attract penalty. Further information will be notified in the subsequent assignments. 4. There will be ONE midterm examination.
ACADEMIC HONESTY Students are encouraged to discuss material presented in lectures and the textbook and discussion of concepts involved in assignments. However, every student will submit his/her own assignment/quiz/exam. Copying someone elses solutions to any of the testing instrument will be considered as plagiarism and the case will be sent to the disciplinary committee. Also, if the assignment solution involved collaboration with a friend or referencing a website, you must give references and acknowledge the sources.
TEACHING TEAM
Convenor Details Course Convenor Email Office Location Phone Consultation times
GIFT University Muhammad Shakeel m.shakeel@gift.edu.pk Faculty 1 floor Ext.179 on GIFT no. During office hours
st
COURSE COMMUNICATIONS The lecturer will communicate with students through announcements in lectures and via emails only to the respective students university email accounts. Students requiring an appointment should email the lecturer.
TEXTBOOK Introduction to the Design and Analysis of Algorithms, Second Edition by Anany Levitin, Pearson, 2012
REFERENCES
Introduction to Algorithms, 3rd Edition by Cormen, Leiserson, Rivest, and Stein (CLRS), 2009. Algorithm Design by Kleinberg and Tardos, 2006. Algorithms by Dasgupta, Papadimitriou, and Vazirani, 2006