Course Web Page Most information about the course (including the syllabus) will be posted on the course wiki:

Slides:



Advertisements
Similar presentations
Lecture 12: Revision Lecture Dr John Levine Algorithms and Complexity March 27th 2006.
Advertisements

Chapter 9: Searching, Sorting, and Algorithm Analysis
CS4413 Divide-and-Conquer
Introduction to Computer Programming in C
CS Section 600 CS Section 002 Dr. Angela Guercio Spring 2010.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2009 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Th. 9/3/2009.
Data Structures & Algorithms What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs.
CSE 830: Design and Theory of Algorithms
Administrivia- Introduction CSE 373 Data Structures.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 1 Introduction/Overview Wed. 9/5/01.
CS 206 Introduction to Computer Science II 04 / 29 / 2009 Instructor: Michael Eckmann.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
CS 206 Introduction to Computer Science II 12 / 10 / 2008 Instructor: Michael Eckmann.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2005 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 9/7/05.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2001 Lecture 1 Introduction/Overview Wed. 1/31/01.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2000 Lecture 1 Introduction/Overview Wed. 9/6/00.
Algorithms. Introduction Before writing a program: –Have a thorough understanding of the problem –Carefully plan an approach for solving it While writing.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
The Design and Analysis of Algorithms
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
TK3043 Analysis and Design of Algorithms Introduction to Algorithms.
Unit 1. Sorting and Divide and Conquer. Lecture 1 Introduction to Algorithm and Sorting.
Chapter 1 Introduction Definition of Algorithm An algorithm is a finite sequence of precise instructions for performing a computation or for solving.
Data Structures Lecture-1:Introduction
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 What NOT to do I get sooooo Frustrated! Marking the SAME wrong answer hundreds of times! I will give a list of mistakes which I particularly hate marking.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
HOW TO SOLVE IT? Algorithms. An Algorithm An algorithm is any well-defined (computational) procedure that takes some value, or set of values, as input.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
CS1101: Programming Methodology Aaron Tan.
Array Processing Simple Program Design Third Edition A Step-by-Step Approach 7.
Lecture 10: Class Review Dr John Levine Algorithms and Complexity March 13th 2006.
Course ‘Data structures and algorithms – using Java’ Teaching materials and presentation experience Anastas Misev Institute of Informatics Faculty of Natural.
Chapter 12 Recursion, Complexity, and Searching and Sorting
ECOE 456/556: Algorithms and Computational Complexity Lecture 1 Serdar Taşıran.
 2006 Pearson Education, Inc. All rights reserved Searching and Sorting.
Array Processing.
CS 61B Data Structures and Programming Methodology July 28, 2008 David Sun.
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.
December 4, Algorithms and Data Structures Lecture XV Simonas Šaltenis Aalborg University
By: Lokman Chan Recursive Algorithm Recursion Definition: A function that is define in terms of itself. Goal: Reduce the solution to.
Data Structure Introduction.
Lecture 11 Data Structures, Algorithms & Complexity Introduction Dr Kevin Casey BSc, MSc, PhD GRIFFITH COLLEGE DUBLIN.
ALGORITHMS.
LIMITATIONS OF ALGORITHM POWER
1 Ch. 2: Getting Started. 2 About this lecture Study a few simple algorithms for sorting – Insertion Sort – Selection Sort (Exercise) – Merge Sort Show.
Data Structures and Algorithms in Java AlaaEddin 2012.
Copyright © 2014 Curt Hill Algorithms From the Mathematical Perspective.
Lecture 2 What is a computational problem? What is an instance of a problem? What is an algorithm? How to guarantee that an algorithm is correct? What.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy.
BITS Pilani Pilani Campus Data Structure and Algorithms Design Dr. Maheswari Karthikeyan Lecture1.
1 i206: Lecture 17: Exam 2 Prep ; Intro to Regular Expressions Marti Hearst Spring 2012.
Introduction to Algorithms
The Design and Analysis of Algorithms
Unit 1. Sorting and Divide and Conquer
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 8 Arrays Objectives
CS 583 Fall 2006 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
Algorithms Chapter 3 With Question/Answer Animations
Objective of This Course
Introduction to Algorithms
Administrivia- Introduction
Administrivia- Introduction
Chapter 8: Overview Comparison sorts: algorithms that sort sequences by comparing the value of elements Prove that the number of comparison required to.
Algorithm Course Algorithms Lecture 3 Sorting Algorithm-1
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Presentation transcript:

Course Web Page Most information about the course (including the syllabus) will be posted on the course wiki: Check your frequently for course announcements.

Algorithms Algorithm: a computational procedure that takes input and produces output. Algorithmic problem statement must specify the complete set of possible input instances and the desired output from each input instance. The distinction between a problem and an instance of a problem is fundamental.

Problem and Instances The sorting problem is defined as follows: INPUT: An array A[1…n] of n comparable items {a 1, a 2,..., a n } OUTPUT: A permutation of the input array {a 1, a 2,..., a n } such that a 1  a 2 ...  a n. An instance of the sorting problem might be an array of names, such as {Mike, Sally, Herbert, Tony, Jill}, or a list of numbers, {154, 245, 100, 987, 444}, etc.

Algorithm Correctness A correct algorithm is one in which every valid input instance produces the correct output. Proving correctness cannot be done by implementing and testing the algorithm. The correctness must be proved mathematically.

Algorithm Complexity Algorithm complexity is a measure of the resources an algorithm uses. The 2 resources we care about are: ??? and ??? We express each of these quantities in terms of the input size.

Data Structures Covered previously: Arrays 2-D Arrays Stacks Queues Lists Presented in 241: Rooted trees Adjacency lists (lists of lists) Hash tables Binary search trees Graphs, directed and undirected

Practical Applications Most real-world problems require some combination of solutions to smaller problems. Many of the algorithms we will study must be used in combination to solve more complex problems. Eg, sorting is a fundamental subproblem for applications ranging from search engines to finding the smallest enclosing polygon of a set of points. But it is not the whole solution to most.

Hard Problems Problems are separated into categories according to whether or not an efficient solution can be found. Most of the problems presented in the book have efficient solutions; those that do not are called ???. We will spend the last part of the semester studying NP-complete problems.

Lecture topics Introduction and Mathematical Fundamentals - Chapters 1, 2, 3, and 4 Probabilistic Analysis and Randomized Algorithms – Chapter 5 Sorting - Chapters 6, 7, and 8 Selection - Chapter 9 Hash Tables - Chapter 11 Basic Graph Algorithms - Chapters 22, 23, and 24 Data Structure for Disjoint Sets - Chapter 21 Dynamic Programming, Greedy Algorithms - Chapters 15 & 16 Aggregate Analysis - Chapter 17 Geometric Algorithms - Chapter 33 NP-Completeness - Chapters 34, 35 Exam 1 Exam 2

Book Pseudocode Conventions In ed. 2 of our textbook, assignment is indicated by a left-pointing arrow and comparison is a single = In ed. 3 assignment is = and comparison is == Arrays are usually assumed to be numbered starting at 1, not 0. A[j] indicates element j of array A and A[1…j] indicates a subarray of elements 1 through j in A Indentation is the only indication of block structure.

Book Pseudocode Conventions (cont) In ed. 2, loops end with a “do” and if statements end with “then” on the following line. In ed. 3, there are no “do”s or “then”s. In both books: “and”s and “or”s are “short-circuiting” “return” statements immediately exit the current procedure and may return more than one value variables are never declared unless passed in to a procedure See rest of pseudocode conventions in Section 2.1.

End of Lecture 1