Cse317 Spring2023 Daa
Cse317 Spring2023 Daa
Cse317 Spring2023 Daa
Spring 2023
Institute of Business Administration
School of Mathematics and Computer Science
1 Logistics
TBA
2 Course Objectives
This is a fundamental course on Algorithms in Computer Science. The main goal of the course
is to develop tools and techniques that aid in designing correct and efficient algorithms for
computational problems and analyzing their correctness and running time. We will study pow-
erful design techniques, such as dynamic programming and randomization, and useful analytical
tools, such as recurrence relations and average case analysis. The algorithms under study are
either quite useful, instructive, beautiful or any combination thereof. After taking this course,
the student will be conversant in the language of algorithms, which is a chief component of
technical interviews and software related jobs.
2
3 Program Learning Outcomes/Graduate Attributes
PLO-7. Communication
[Level of communication according to type of activities performed]
Communicate effectively with the computing community and with society at large about
complex computing activities by being able to comprehend and write effective reports,
design documentation, make effective presentations, and give and understand clear in-
structions
3
PLO-8. Computing Professionalism and Society
[No differentiation in this characteristic except level of practice]
Understand and assess societal, health, safety, legal, and cultural issues within local and
global contexts, and the consequential responsibilities relevant to professional computing
practice
PLO-9. Ethics
[No differentiation in this characteristic except level of practice]
Understand and commit to professional ethics, responsibilities, and norms of professional
computing practice
The LMS site will be used to share the syllabus, give out assignments, and to share other course
resources.
1
Anderson, Lorin W.; Krathwohl, David R., eds. (2001). A taxonomy for learning, teaching, and assessing:
A revision of Bloom’s taxonomy of educational objectives. Allyn and Bacon
4
The University’s standard policies on attendance, inclusivity, office hours, and academic in-
tegrity apply in this course. These are described in later sections below.
6 Course Requirements
• Class participation policy: Background reading for next session and active participation
in class discussions.
• Course readings will be made available online through the course website and LMS as
classes progress. The following are good references for the material that will be covered.
• Supplemental reading:
8 Grading Procedures
Tentative
Problem sets 20%
Weekly quizzes 20%
Midterm 25%
Final 35%
We expect participation and engagement from all students and therefore will be flexible for
deadlines but we will expect that students will generally follow the deadlines.
All quizzes will be in-person and on-campus. Midterm and final exam will follow the University’s
policy and will be scheduled by appropriate offices, separately.
No late solutions will be accepted and no make-up for exams or any of the quizzes will be given.
If you have a valid medical excuse (for any of the quizzes, problem sets, midterm exam, etc.),
5
the percentage of your grade corresponding to the missed work will be shifted to the final exam.
Valid excuses require supporting documentation from a doctor.
10 Attendance Policy
11 Academic Integrity
Each student in this course is expected to abide by the IBA Code of Conduct. Scholastic
dishonesty shall be considered a serious violation of these rules and regulations and is subject
to strict disciplinary action as prescribed by IBA regulations and policies. Scholastic dishonesty
includes, but is not limited to, cheating on exams, plagiarism on assignments, and collusion.
Kindly refer to https://examination.iba.edu.pk/CheatingPlagiarism.php for more de-
tails.
• PLAGIARISM: Plagiarism is the act of taking the work created by another person
or entity and presenting it as ones own for the purpose of personal gain or of obtaining
academic credit. Plagiarism includes the submission of or incorporation of the work of
others without acknowledging its provenance or giving due credit according to established
academic practices. This includes the submission of material that has been appropriated,
bought, received as a gift, downloaded, or obtained by any other means. Students must
not, unless they have been granted permission from all faculty members concerned, submit
the same assignment or project for academic credit for different courses.
• CHEATING: The term cheating shall refer to the use of or obtaining of unauthorized
in- formation in order to obtain personal benefit or academic credit.
• SHARING CREDENTIALS: It has been observed that some students share their
credentials (log in id’s and passwords) of LMS, portal, email, etc., with with other students.
These credentials are private and confidential and not to be shared with anyone. Any
violation will be considered as aiding in plagiarism/collusion/cheating and appropriate
action might be taken against such students.
12 Office hours
Office hours will be scheduled, circulated, and posted soon. During these hours the course
instructors will be available to answer questions or provide additional help.
6
2. Sorting and searching
5. Dynamic programming
6. Graphs algorithms
7. Greedy algorithms
8. Randomized algorithms
7
14 Weekly breakdown of classes
Introduction
Week 1: Lecture 1 16-Jan-23 Introduction, course syllabus
Lecture 2 18-Jan-23 Basics of oh-notations
Search and Sorting
Week 2: Lecture 3 23-Jan-23 Linear search, binary search
Lecture 4 25-Jan-23 Selection sort, insertion sort
Recursion and Induction
Week 3: Lecture 5 30-Jan-23 Integer exponentiation, polynomial evaluation
Lecture 6 01-Feb-23 Generating permutations, finding major. element
Divide and Conquer Algorithms
Week 4: Lecture 7 06-Feb-23 Merge sort, master theorem
Lecture 8 08-Feb-23 Recurrences
Week 5: Lecture 9 13-Feb-23 Integer multiplication
Lecture 10 15-Feb-23 Maximum subarray sum
Dynamic Programming
Week 6: Lecture 11 20-Feb-23 Matrix-chain multiplication
Lecture 12 22-Feb-23 Longest common subsequence
Week 7: Lecture 13 27-Feb-23 Shortest paths
Lecture 14 15-Mar-23 Edit distance, knapsack problem
Greedy Algorithms
Week 8: Lecture 15 20-Mar-23 Single source shortest path: Dijkstra’s algo.
Lecture 16 22-Mar-23 Minimum spanning trees: Prim’s algo.
Randomized Algorithms
Week 9: Lecture 17 27-Mar-23 Introduction to randomized algorithms
Lecture 18 29-Mar-23 Basic probability theory
Week 10: Lecture 19 03-Apr-23 Quick select, quick sort
Lecture 20 05-Apr-23 Pattern matching, random sampling
String Matching Algorithms
Week 11: Lecture 21 10-Apr-23 Rabin-Karp and naive algos.
Lecture 22 12-Apr-23 Knuth-Morris-Pratt and Beyer-Moore algos.
Computational Complexity
Week 12: Lecture 23 17-Apr-23 Class P, class NP
Lecture 24 19-Apr-23 NP-hard and NP-complete problems
Approximation Algorithms
Week 13: Lecture 25 24-Apr-23 Approximation algorithms for hard problems
Lecture 26 26-Apr-23 Approximation algorithms for hard problems
Parallel Algorithms/Computation
Week 14: Lecture 27 01-May-23 Introduction to parallel algorithms
Lecture 28 03-May-23 Models of parallel computation
Revision
Week 15: Lecture 29 08-May-23 Revision8
Lecture 30 10-May-23 Revision