Design and Analysis of Algorithms 4 th Semester Computer Engineering Spring 2015 Conf.dr.ing. Ioana Sora

Slides:



Advertisements
Similar presentations
Analysis & Design of Algorithms (CSCE 321)
Advertisements

Department of Mathematical Sciences The University of Texas at El Paso 1 Program Assessment Presentation May 15, 2009 Joe Guthrie Helmut Knaust.
CS 253: Algorithms Syllabus Chapter 1 Appendix A.
CSCE 210 Data Structures and Algorithms
Data Structures & Algorithms What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs.
CS333/ Topic 11 CS333 - Introduction CS333 - Introduction General information Goals.
CS 206 Introduction to Computer Science II 04 / 29 / 2009 Instructor: Michael Eckmann.
Data Structures, Spring 2004 © L. Joskowicz 1 DAST – Final Lecture Summary and overview What we have learned. Why it is important. What next.
CSE 589 Applied Algorithms Course Introduction. CSE Lecture 1 - Spring Instructors Instructor –Richard Ladner –206.
1 Algorithm Design Techniques Greedy algorithms Divide and conquer Dynamic programming Randomized algorithms Backtracking.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
Algorithm design techniques
Irene Díaz 1, Camino R. Vela 1 1 Computer Science Department. University of Oviedo (SPAIN) s 1.
Data Structures and Programming.  John Edgar2.
Instructor: Dr. Sahar Shabanah Fall Lectures ST, 9:30 pm-11:00 pm Text book: M. T. Goodrich and R. Tamassia, “Data Structures and Algorithms in.
1 Object Oriented Programming Computer Systems Engineering (D2) and Programming (P)
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
ISE420 Algorithmic Operations Research Asst.Prof.Dr. Arslan M. Örnek Industrial Systems Engineering.
Lecture 12-2: Introduction to Computer Algorithms beyond Search & Sort.
1 CS 233 Data Structures and Algorithms 황승원 Fall 2010 CSE, POSTECH.
COMPE 574 Fundamentals of Algorithms Spring Murat KARAKAYA Department of Computer Engineering.
Introduction to CMPT 225. What’s on the menu? Grading Course content Who’s who The story of life.
Course Web Page Most information about the course (including the syllabus) will be posted on the course wiki:
Instructor Information: Dr. Radwa El Shawi Room: Week # 1: Overview & Review.
DATA STRUCTURES (CS212D) Week # 1: Overview & Review.
10/20/20151 CS 3343: Analysis of Algorithms Review for final.
Data Structures (Second Part) Lecture 1 Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
CS-2851 Dr. Mark L. Hornick 1 CS-2852 Data Structures Dr. Mark L. Hornick Office: L341 Phone: web: people.msoe.edu/hornick/
December 4, Algorithms and Data Structures Lecture XV Simonas Šaltenis Aalborg University
CS223 Advanced Data Structures and Algorithms 1 Review for Final Neil Tang 04/27/2010.
HKOI 2005 Training Introduction to Algorithms Alan, Tam Siu Lung.
1 BIM304: Algorithm Design Time: Friday 9-12am Location: B4 Instructor: Cuneyt Akinlar Grading –2 Midterms – 20% and 30% respectively –Final – 30% –Projects.
Design and Architecture of Complex Software Systems 3 rd year, Software Engineering Conf.dr.ing. Ioana Şora
Design and Analysis of Algorithms (09 Credits / 5 hours per week) Sixth Semester: Computer Science & Engineering M.B.Chandak
1 Data Structures CSCI 132, Spring 2014 Lecture 1 Big Ideas in Data Structures Course website:
Lecture 8 CSE 331. Main Steps in Algorithm Design Problem Statement Algorithm Problem Definition “Implementation” Analysis n! Correctness+Runtime Analysis.
CSE 326 Course Review David Kaplan Dept of Computer Science & Engineering Autumn 2001.
Data Structures and Algorithms in Java AlaaEddin 2012.
DATA STRUCTURES (CS212D) Overview & Review Instructor Information 2  Instructor Information:  Dr. Radwa El Shawi  Room: 
Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi
Algorithms Design and Analysis CS Course description / Algorithms Design and Analysis Course name and Number: Algorithms designs and analysis –
Course Review Fundamental Structures of Computer Science Margaret Reid-Miller 28 April 2005.
Design and Analysis of Algorithms 4 th Semester Computer Engineering Spring 2016 Conf.dr.ing. Ioana Ṣ ora
Design and Analysis of Algorithms Faculty Name : Ruhi Fatima Course Description This course provides techniques to prove.
1 COMP9007 – Algorithms Course page: + Blackboard link Lecturer: M.Reza Hoseiny M.Reza Hoseiny Level.
RAIK 283 Data Structures and Algorithms
Advanced Algorithms Analysis and Design
Design and Analysis of Algorithms (09 Credits / 5 hours per week)
Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 1/28/04
CS 583 Fall 2006 Analysis of Algorithms
CS 3343: Analysis of Algorithms
Data Structures (CS212D) Overview & Review.
Algorithm Design and Analysis
CS 3343: Analysis of Algorithms
Definition In simple terms, an algorithm is a series of instructions to solve a problem (complete a task) We focus on Deterministic Algorithms Under the.
CS 3343: Analysis of Algorithms
Objective of This Course
CS 3343: Analysis of Algorithms
Week # 1: Overview & Review
Data Structures (CS212D) Overview & Review.
Algorithm Design and Analysis
Lecture 27 CSE 331 Nov 2, 2010.
COMPSCI 330 Design and Analysis of Algorithms
Administrivia- Introduction
COMPSCI 330 Design and Analysis of Algorithms
Review for Final Neil Tang 05/01/2008
COMP 122 – Design and Analysis of Algorithms
Advanced Analysis of Algorithms
Presentation transcript:

Design and Analysis of Algorithms 4 th Semester Computer Engineering Spring 2015 Conf.dr.ing. Ioana Sora

design algorithms that are correct and efficient Our goal:

The Need for Correctness Much too often, algorithms are designed in an ad-hoc manner and “validated” through testing on a few particular data sets …

Example of a “sorting algorithm” The algorithm: A:array[1..n] of integer for i=1 to n-1 do if A[i]>A[i+1] swap(A[i], A[i+1]) The “tests”: But it does not work for 3, 2, 1, 5, 4 ! 5, 1, 2, 7, 6 15, 2, 4, 17,16

The Need for Correctness Much too often, algorithms are designed in an ad-hoc manner and “validated” through testing on a few particular data sets … The fact that an algorithm passed a number of tests on certain data sets DOES NOT guarantee that the algorithm is correct The fact that an algorithm fails a test on ONE data set proves that it is NOT correct

The Bubblesort Algorithm A:array[1..n] of integer for l:=n downto 1 for i=1 to l-1 do if A[i]>A[i+1] swap(A[i], A[i+1]) How can we know for sure that the algorithm is correct ? (Other than simply believing the programming textbooks ;-))

Analyzing Algorithms We need methods and metrics to analyze algorithms for: –Correctness Methods for proving correctness –Efficiency Time complexity, Asymptotic analysis

Designing Algorithms Ok, so you will know (will learn) how to analyze a given algorithm. But where do these algorithms come from ? –Clever people already designed a plethora of solutions (algorithms) for different problems and we find them in textbooks, internet, etc. –But how will you design solutions for new problems ?

How to learn algorithms ?

Prim’s algorithm Dijkstra’s algorithm Tarjan’s algorithm Floyd’s algorithm Kruskal’s algorithm Design methods: Greedy Design by Induction Divide and Conquer Dynamic Programming

What about data structures ? Fundamental data structures: –Model fundamental data lists, queues, graphs Special data structures: –Created to optimize a specific (set of) operation(s) for a specific context Search trees, balanced trees Optimal trees Disjoint sets

Course Goals Learn to design algorithms that are correct and efficient –How do we know that: an algorithm is correct ? -> correctness proofs an algorithm is efficient ? -> analysis of algorithms (time complexity) –How to design solutions for new problems ? Learning general techniques for design Studying a set of well-known algorithms, to serve as examples of success stories for applying general design techniques Become aware that good algorithms are key parts of software engineering practice !

Course Schedule Review: Analysis Proving Correctness of Algorithms. Induction Design of Algorithms by Induction Dynamic Programming Graphs Data structures: Search Trees, Balanced trees, Augmented data structures Great algorithms in real life problems: –Data compression –Search engines

Textbooks

Course Webpage All official information related to the Algorithm Design and Analysis classes:

Lab Assignments Comprise different types of exercises: –Questions - to be solved with pen on paper –Simple implementation problems - implement something that was described in the course –Algorithm design problems This kind of assignments require to: –Describe the proposed algorithm –Analyze your algorithm (prove correctness and efficiency) –Implement the algorithm –Tool projects Complex projects containing also a part of algorithm design and implementation They are optional, but: in order to get a 10 for the lab activity, you have to do at least one tool project

Examination and Grading Final grade = 2/3 final written exam + 1/3 work during the semester Written exam: – Questions and Algorithm design problems (such as these the lab description above) Work during the semester: –Lab assignments –Lab quizzes –Tool project (for 10) Optional bonus points: for exceptional activity = doing more than one optional tool project during the semester, you can gain extra-points to the grade of your final written exam