CSE 2320 Algorithms and Data Structures Dimitrios Kosmopoulos Introduction.

Slides:



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

Jan Welcome to the Course of Advanced Algorithm Design (ACS-7101/3)
CS 46101–600/CS Design and Analysis of Algorithms Dr. Angela Guercio Spring 2010.
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2010.
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
EE 220 (Data Structures and Analysis of Algorithms) Instructor: Saswati Sarkar T.A. Prasanna Chaporkar, Programming.
CSCE 3110 Data Structures and Algorithm Analysis.
Data Structures & Agorithms Lecture-1: Introduction.
Introduction to C++ Penn State University
Introduction Dr. Ying Lu RAIK 283: Data Structures & Algorithms.
CSE 3101E Design and Analysis of Algorithms Prof. J. Elder.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
Introduction CSE 1310 – Introduction to Computers and Programming
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
Design and Analysis of Algorithms CSC201 Shahid Hussain 1.
CS 103 Discrete Structures Lecture 01 Introduction to the Course
Course Introduction Software Engineering
ECEN 248: INTRODUCTION TO DIGITAL DESIGN
Fundamentals of Algorithms MCS - 2 Lecture # 1
Discrete mathematics Kwon, Taekyoung Courtesy of Dr. Michael P. Frank University of Florida.
DATA STRUCTURES (CS212D) Week # 1: Overview & Review.
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
Data Structures (Second Part) Lecture 1 Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
Introduction to Data Structures
1 CPRE210: Introduction to Digital Design Instructor –Arun K. Somani –Tel: – –Office Hours: MWF 10:00-11:00 Teaching Assistant.
CMSC 2021 CMSC 202 Computer Science II for Majors Fall 2002 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
CPSC 121: Models of Computation Unit 0 Introduction George Tsiknis Based on slides by Patrice Belleville and Steve Wolfman.
CS-2851 Dr. Mark L. Hornick 1 CS-2852 Data Structures Dr. Mark L. Hornick Office: L341 Phone: web: people.msoe.edu/hornick/
11/29/2015Elke A. Rundensteiner -- CS5421 Database Management Systems CS Fall 2012 Instructor: Elke Rundensteiner
ICS202 Data Structures King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science Department.
Data Structures and Algorithm Analysis Introduction Lecturer: Ligang Dong, egan Tel: , Office: SIEE Building.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2002 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2001 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2003 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
Design and Analysis of Algorithms (09 Credits / 5 hours per week) Sixth Semester: Computer Science & Engineering M.B.Chandak
C Programming Lecture 1 : Introduction Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
Data Structures and Algorithms in Java AlaaEddin 2012.
DATA STRUCTURES (CS212D) Overview & Review Instructor Information 2  Instructor Information:  Dr. Radwa El Shawi  Room: 
Algorithms Design and Analysis CS Course description / Algorithms Design and Analysis Course name and Number: Algorithms designs and analysis –
JAVA: An Introduction to Problem Solving & Programming, 7 th Ed. By Walter Savitch ISBN © 2015 Pearson Education, Inc., Upper Saddle River,
BITS Pilani Pilani Campus Data Structure and Algorithms Design Dr. Maheswari Karthikeyan Lecture1.
Introductory Lecture. What is Discrete Mathematics? Discrete mathematics is the part of mathematics devoted to the study of discrete (as opposed to continuous)
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
Computer Science I ISMAIL ABUMUHFOUZ | CS 180. CS 180 Description BRIEF SUMMARY: This course covers a study of the algorithmic approach and the object.
Scott C. Johnson Lecturer Rochester Institute of Technology Spring 2016.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
RAIK 283 Data Structures and Algorithms
Introduction to Algorithms
CSc 020: Programming Concepts and Methodology II
Data Structures and Algorithms
GC211Data Structure Lecture2 Sara Alhajjam.
CPSC 311 Section 502 Analysis of Algorithm
Principles of Computing – UFCFA Lecture-1
Data Structures (CS212D) Overview & Review.
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.
Objective of This Course
CMPT 438 Algorithms Instructor: Tina Tian.
Week # 1: Overview & Review
Data Structures (CS212D) Overview & Review.
Introduction to Algorithms
C Programming Lecture 1 : Introduction
C Programming Lecture 1 : Introduction
Principles of Computing – UFCFA Week 1
Design and Analysis of Algorithms
Introduction CSE 2320 – Algorithms and Data Structures
COMP 122 – Design and Analysis of Algorithms
Data Structures and Algorithms Lecture-1: Introduction
Advanced Analysis of Algorithms
Presentation transcript:

CSE 2320 Algorithms and Data Structures Dimitrios Kosmopoulos Introduction

General info Dimitrios Kosmopoulos Office: ERB644 (to change) Hours: TuTh 12:30pm-2:30pm GTA: 2B announced web page

General info Textbook: R. Sedgewick, Algorithms in Java, Parts 1-5, 3rd ed., Addison-Wesley, References: Al Aho and Jeff Ullman, Foundations of Computer Science, S. Baase and A. Van Gelder, Computer Algorithms: Introduction to Design and Analysis, 3rd ed., Addison-Wesley, Cormen, Leiserson, Rivest, Stein, Introduction to Algorithms, 2nd ed., MIT Press, J. Lewis and W. Loftus, Java Software Solutions: Foundations of Program Design, 6th ed., Pearson Education, 2009.

Prerequisites C programming (CSE 1320) Java programming (CSE 1325) (a) problem-> (b) algorithm-> (c) program-> (d) executable So far: (b)->(c)->(d) Here: (a)->(b)

Objectives To become capable of developing, applying, and evaluating algorithmic solutions. Intuition about particular algorithms and data structures that have wide applicability. Understanding of classic approaches to algorithm design – decomposition, dynamic programming, and greedy methods. Understanding of basic algorithm analysis concepts by applying math skills to worst-case and expected time using recurrences and asymptotic notation. Improved programming skills - especially data structures, recursion, and graphs.

Grading Based on the following weights: Exams: 65% divided evenly among 3 exams. Programs: 15% divided evenly among three assignments. Homework assignments: 10% Practice homeworks with answers, will be available on the course web page ABET Outcome B (Experimentation) Assessment Project: 10%

Grading (cont.) Students achieving a semester grade of C or better, but failing the experimentation assessment (below 60%) and documenting their circumstances will be assigned a semester grade of I (incomplete) and may re-attempt the assessment in the next semester. If the assessment is then passed, the semester grade will be changed from I to the achieved grade.

Policies (selection) Regular attendance expected Surprise quizzes an option, each quiz being 2% of the semester grade taken from the 65% allocated to exams Lecture notes and sample code for various algorithms are on the course web page Cheating - You Are Expected To Know University Policies

Policies (selection) Labs are due at 10:45 am on the due date, not midnight. Homeworks are due before class. After the due time, assistance will not be provided. Degree of lateness penalty –Up to 10:45 next day 10 pts –Up to 10:45 two days 30 pts –Up to 10:45 three days 60 pts Resubmissions before the due time are penalized 10 points each. No resubmissions after the due time.

Lab grading a. Output/Code 60% b. Internal Comments 6% c. Modularity 6% d. Structure 6% e. Names 6% f. Spacing 6% g. Generality 10%

Lab submission All programs must be written in Java to compile and execute using a recent version of the JDK. Details for program submission will be included with each assignment. You are responsible for correctly sending each programming assignment to the GTA as an attachment. (cc: yourself) No points will be awarded for programs that do not compile. Points for b-g will not be awarded to submissions that are not substantially complete.

Lecture structure Abstraction Data models Data structures Algorithms

Abstraction Computer science: The science of abstraction: creating the right model for thinking about a problem and devising the appropriate mechanizable solution to solve it Different degrees of complexity: Digital electronic circuit Behavior of robotic agent

Example 1 abstraction: directed graph Knowledge can be inferred through “formal logic” If Fluffy is a cat then Fluffy is an animal

Example 2 Exams scheduling: assignment to time slots, avoid conflict No student takes both exams => can have the same time slot Model: graph –Node<-course –edge<-student in common

Example 2 (cont.) Algorithm: a. Find the maximum set of courses with no common students (maximal independent set) b. Assign to first slot c. Continue until no courses are left Solution not optimal, but close to optimal, and simple More complex representations possible (e.g. constraints in number of student’s sequential exams)

Important concepts Data models: the abstractions to describe the real world or specific problems (e.g., a mathematical model) Data structures: programming language constructs used to represent data models (e.g., pointers, trees) Algorithms: the techniques to solve problems by manipulating data structures Program: the implementation of an algorithm in a programming language

How are these related to the course? New data structures How these can be used by various algorithms Typical applications

Data model- Data structure The data model has two aspects: The values that it can assume (properties) – static aspect The operations that can be executed on these data – dynamic aspect / behavior –Can be, e.g., the boolean algebra, the algebra of sets, or any other mathematical theory The data structure is the computer language-specific implementation

Example 1 AND- gate Data model: Static: the values 0,1 Operation: “and” as defined in the truth table Data structure: variables in java: boolean x, y, z; Operator “ && ”

Example 2 Data model List: (a 1,a 2,…,a n ) –Values: sets of integers in specific order –Operation: merge (a 1,a 2 )+(a 3 )=(a 1,a 2,a 3 ) Data structure class Node { int a; Node next; Node merge(Node node1, Node node2) { …}; }

Algorithm A problem solving method suitable for implementation as a computer program How are the algorithm related to the data structures? –They organize and generally use the data structures Algorithms and data structures go together

Greatest Common Divider Algorithm The GCD of two numbers is the largest number that divides both of them without leaving a remainder. The algorithm is based on the principle that the greatest common divisor of two numbers does not change if the smaller number is subtracted from the larger number. For example, 21 is the GCD of 252 and 105 (252 = 21 × 12; 105 = 21 × 5); since 252 − 105 = 147, the GCD of 147 and 105 is also 21. Since the larger of the two numbers is reduced, repeating this process gives successively smaller numbers until one of them is zero. When that occurs, the GCD is the remaining nonzero number.

Algorithmic problem Infinite number of input instances satisfying the specification e.g., a sorted non-decreasing sequence of integers of finite length -12, -5, -3, 15, 40, 56, , 2 Specification of input Specification of output as function of input ?

Algorithmic problem Algorithm describes the processing of the input instances Many algorithms may solve the same problem in a different way -12, -5, -3, 15, 40, 56, , 2 Specification of input Specification of output as function of input Algorithm

What is a good algorithm? Efficient –Space –Time running Efficiency measured as function of input –Number of data elements

How do we measure efficiency? Write a program that implements the algorithm Run the program with input of various values and size Measure the time using system routines

What are the limitations? The algorithm has to be implemented Experiments can be done on a limited set of data The hardware/software configuration must be the same Generic analysis methodology will be discussed in this course