CSCE 210 Data Structures and Algorithms

Slides:



Advertisements
Similar presentations
Slide: 1 Interra Induction Training Data Structure ADT & Complexity.
Advertisements

Exam Review 3 Chapters 10 – 13, 15 CSC212 Section FG CS Dept, CCNY.
Prof. Amr Goneid, AUC1 Analysis & Design of Algorithms (CSCE 321) Prof. Amr Goneid Department of Computer Science, AUC Part R4. Disjoint Sets.
Analysis & Design of Algorithms (CSCE 321)
Review. What to know You are responsible for all material covered in lecture, the readings, or the programming assignments There will also be some questions.
CSCE 210 Data Structures and Algorithms
Overview CS113, Fall 2000 Gene Itkis. The Promise Heavy Fast-paced Challenging Rewarding.
CSCE156: Introduction to Computer Science II Instructor Stephen Scott Website
Data Structures & Algorithms What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs.
Graphs & Exam Review 3 Chapter 10 – 13 CS211 CS Dept, MHC.
Data Structures, Spring 2004 © L. Joskowicz 1 DAST – Final Lecture Summary and overview What we have learned. Why it is important. What next.
CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++
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.
Prof. Amr Goneid, AUC1 CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 1. Data Modeling and ADTs.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
Review for Midterm Chapter 1-9 CSc 212 Data Structures.
1 Hash Tables  a hash table is an array of size Tsize  has index positions 0.. Tsize-1  two types of hash tables  open hash table  array element type.
COMPE 226 Data Structures 2015 Fall Murat KARAKAYA Department of Computer Engineering.
Lecture 10: Class Review Dr John Levine Algorithms and Complexity March 13th 2006.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Review Midterm.
Final Review Dr. Yingwu Zhu. Goals Use appropriate data structures to solve real- world problems –E.g., use stack to implement non-recursive BST traversal,
CS Data Structures II Review & Final Exam. 2 Topics Review Final Exam.
Prof. Amr Goneid, AUC1 CSCI 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 5. Dictionaries(2): Hash Tables.
Final Exam Review CS Total Points – 60 Points Writing Programs – 50 Points Tracing Algorithms, determining results, and drawing pictures – 50.
Final Exam Tuesday, December 22nd 2:00 - 3:50pm room 102 Warren Weaver Hall.
Prof. amr Goneid, AUC1 CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 13. Abstract Data Types (ADT’s)
Course Review Fundamental Structures of Computer Science Margaret Reid-Miller 29 April 2004.
Prof. Amr Goneid, AUC1 Analysis & Design of Algorithms (CSCE 321) Prof. Amr Goneid Department of Computer Science, AUC Part R3. Priority Queues.
CISC220 Fall 2009 James Atlas Dec 07: Final Exam Review.
Week 15 – Wednesday.  What did we talk about last time?  Review up to Exam 1.
Data Structures and Algorithms in Java AlaaEddin 2012.
 Saturday, April 20, 8:30-11:00am in B9201  Similar in style to written midterm exam  May include (a little) coding on paper  About 1.5 times as long.
Final Exam Review CS Total Points – 20 Points Writing Programs – 65 Points Tracing Algorithms, determining results, and drawing pictures – 50.
Data Structures By Dr. Mehedi Masud ِAssociate Professor, Computer Science Dept. College of Computers and Information Systems Taif University 1.
Prof. Amr Goneid, AUC1 CSCI 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 5. Dictionaries(2): Hash Tables.
Data Structures Dr. Abd El-Aziz Ahmed Assistant Professor Institute of Statistical Studies and Research, Cairo University Springer 2015 DS.
Lecture 1 Data Structures Aamir Zia. Introduction Course outline Rules and regulations Course contents Good Programming Practices Data Types and Data.
Algorithm homework help For More Detail help.aspx - Phone:-
Final Exam Review COP4530.
Final Exam Review CS 3358.
Design and Analysis of Algorithms (09 Credits / 5 hours per week)
Data Structures and Algorithms
Introduction to Computers Computer Generations
CSCE 210 Data Structures and Algorithms
DDC 2423 DATA STRUCTURE Main text:
Linked Lists Chapter 6 Section 6.4 – 6.6
Midterm Review.
CSCI 210 Data Structures and Algorithms
CS 315 Data Structures B. Ravikumar Office: 116 I Darwin Hall Phone:
DATA STRUCTURES AND OBJECT ORIENTED PROGRAMMING IN C++
Exam Hints.
Final Review.
Week 15 – Monday CS221.
CSCE 210 Data Structures and Algorithms
Data Structures and Algorithms
Review for Final Exam Non-cumulative, covers material since exam 2
Review for Midterm Neil Tang 03/04/2010
Map interface Empty() - return true if the map is empty; else return false Size() - return the number of elements in the map Find(key) - if there is an.
structures and their relationships." - Linus Torvalds
original list {67, 33,49, 21, 25, 94} pass { } {67 94}
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.
Final Exam Review COP4530.
Review CSE116 2/21/2019 B.Ramamurthy.
Final Review Dr. Yingwu Zhu.
EE 312 Final Exam Review.
Final Review B.Ramamurthy 5/8/2019 BR.
EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2019
EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2019
CSCE156: Introduction to Computer Science II
structures and their relationships." - Linus Torvalds
Presentation transcript:

CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 0. Course Outline Prof. Amr Goneid, AUC

Course Resources Instructor: Prof. Amr Goneid E-mail: goneid@aucegypt.edu Office: Rm 2152 SSE Textbook:"Data Structures and Algorithm Analysis in C++" by Mark A. Weiss, Int. Ed of 4th revised Edition, 2014, Pearson, ISBN: 9780273769385 Reference: "ADTs, Data Structures and Problem Solving with C++" by Larry Nyhoff, 2nd Edition, Pearson Prentice Hall, 2005 Lab: 2174 SSE Web Site: http://www1.aucegypt.edu/faculty/cse/goneid/csci210/ Prof. Amr Goneid, AUC

Course Goals To introduce concepts of Data Models, Data Abstraction and ADTs in problem solving and S/W development To deepen the experience in Object Oriented Programming as an efficient software development methodology. To gain experience in the design of algorithms for problem solving and to introduce the concepts of algorithm analysis To gain experience in the design and implementation of various ADTs and their applications to practical problems Prof. Amr Goneid, AUC

Course Contents Revision and Expansion on CSCI 110 Material R1. ADTs as Classes (Revision of some CSCI 110 material) R2. Elementary Data Structures (Revision of some CSCI 110 material) R3. Dictionaries(1): Key Tables and Lists (Revision of some CSCI 110 material) R4. Vectors (Revision of some CSCE 110 material) Prof. Amr Goneid, AUC

Course Contents Data Modeling and ADT’s Simple Containers: Stacks and Queues Introduction to the Analysis of Algorithms Trees Dictionaries(2): Hash Tables Dictionaries(3): Binary Search Trees Priority Queues Sorting Sorting (1): Elementary Algorithms Sorting (2): (n log n) Algorithms The Set Data Structure: Disjoint Sets Graphs Prof. Amr Goneid, AUC

Course Contents R1 ADTs as Classes (Revision of some CSCE 110 material) Class Definition: Private & Public Members Constructors & Destructor Data and Function Members Accessors & Mutators Polymorphism and Overloading Example: Rational Numbers Class Example: Simple String Class Prof. Amr Goneid, AUC

Course Contents R2 Elementary Data Structures (Revision of some CSCE 110 material) Static and Dynamic Data Structures Static Arrays Pointers Run-Time Arrays The Linked List Structure Some Linked List Operations Variations on Linked Lists Prof. Amr Goneid, AUC

Course Contents(continued) R3 Dictionaries(1):Key Tables and Lists The Key Table ADT Key Table The Key Table Class Definition Key Table Class implementation Example Application The Linked List ADT Linked List The Linked List Class Definition Linked List Class implementation Prof. Amr Goneid, AUC

Course Contents R4 Vectors (Revision of some CSCE 110 material) The Standard Template Library (STL) What is a Vector Declaring a Vector Size and Accessing Elements Adding and removing Elements Emptying a Vector Other Member Functions Iterators Vectors as Function Parameters or Types Vectors of Vectors Some Matrix Operations using Vectors of Vectors Prof. Amr Goneid, AUC

Course Contents Part 1 Data Modeling and ADTs Data Modeling Abstract Data types (ADTs) A Classification of Abstract Structures Another Classification Special Data Structures OOP and Classes Examples on Modeling Prof. Amr Goneid, AUC

Course Contents(continued) Part 2 Simple Containers: Stacks and Queues Introduction to the Stack data structure Designing a Stack class using dynamic arrays Linked Stacks Some Applications of Stacks Introduction to the Queue data structure Array Models Array Based Queue ADT Linked Queues Simulation of a Waiting Line Prof. Amr Goneid, AUC

Course Contents(continued) Part 3 Introduction to the Analysis of Algorithms Algorithms Analysis of Algorithms Time Complexity Bounds and the Big-O Types of Complexities Rules for Big-O Examples of Algorithm Analysis Prof. Amr Goneid, AUC

Course Contents(continued) Part 4 Trees General Binary Trees Tree Traversal Prof. Amr Goneid, AUC

Course Contents(continued) Part 5 Dictionaries(2): Hash Tables Hash Tables as Dictionaries Hashing Process Collision Handling: Open Addressing Collision Handling: Chaining Properties of Hash Functions Template Class Hash Table Performance Prof. Amr Goneid, AUC

Course Contents(continued) Part 6 Dictionaries(3): Binary Search Trees The Dictionary Data Structure The Binary Search Tree (BST) Search, Insertion and Traversal of BST Removal of nodes from a BST Binary Search Tree ADT Template Class Specification Self-Balancing Binary Search Trees: AVL Trees Red-Black Trees Prof. Amr Goneid, AUC

Course Contents(continued) Part 7 Priority Queues Definition of Priority Queue The Binary Heap Insertion and Removal A Priority Queue Class Analysis of PQ Operations Heapify: A Modified Insertion Algorithm Prof. Amr Goneid, AUC

Course Contents(continued) Part 8a Sorting(1): Elementary Algorithms General Selection Sort Bubble Sort Insertion Sort Prof. Amr Goneid, AUC

Course Contents(continued) Part 8b Sorting(2): (n log n) Algorithms General Heap Sort Merge Sort Quick Sort Prof. Amr Goneid, AUC

Course Contents(continued) Part 9 The Set Data Structure: Disjoint Sets What are Disjoint Sets? Tree Representation Basic Operations Parent Array Representation Simple Find and Simple Union Disjoint Sets Class Some Applications Prof. Amr Goneid, AUC

Course Contents(continued) Part 10 Graphs Basic Definitions Paths and Cycles Connectivity Other Properties Representation Examples of Graph Algorithms: Graph Traversal Shortest Paths Minimum Cost Spanning Trees Prof. Amr Goneid, AUC

Summary Parts R1,R2,R3, R4 are revisions of CSCE110 material Part No. Subject Book Chapter R1 ADTs as Classes 1 R2 Elementary Data Structures R3 Dictionaries(1): key Tables and Lists 1 , 3 R4 Vectors Data Modeling and ADTs 2 Simple Containers: Stacks and Queues 3 Introduction to the Analysis of Algorithms 4 Trees 5 Dictionaries(2): Hah Tables 6 Dictionaries(3): Binary Search Trees 7 Priority Queues 8a Sorting(1): Elementary Algorithms 8b Sorting(2): (n log n) Algorithms 9 The Set Data Structure: Disjoint Sets 8 10 Graphs Parts R1,R2,R3, R4 are revisions of CSCE110 material Prof. Amr Goneid, AUC

Lab Assignments Hands-on experience will be gained through programming projects that cover the course material. Design documents are required for all the problems given. Design Document: The basic items in the design document will include: Problem Definition Requirement Specifications Solution Strategy S/W Design for the whole problem: Structured (Top-Down) Design in the form of modules (C++ functions) in which each module is associated with a given subproblem. Prof. Amr Goneid, AUC

Lab Assignments S/W Design for Each Module: Functional Specifications: the purpose of the module and what it is supposed to do (What to do) Data Specifications: the data resources needed by the module to achieve it functionality (with what) Precondition: the state of processing or data before the module is executed (state before) Postcondition: the state of processing or data after the module is executed (state after) Algorithm Specification: the algorithm or methodology used by the module (How to do it) Prof. Amr Goneid, AUC

Coursework Grading 30% Programming Assignments. 5 % Quizzes, class participation and attendance 20% Midterm Exam (1) 20% Midterm Exam (2) 25% Final Exam Prof. Amr Goneid, AUC

Course Outcomes After completing the CSCE 210, students should be able to: Demonstrate knowledge and understanding of Data Models, Data Abstraction and ADTs and their role in problem solving and S/W development. Choose the appropriate data structure for modeling a given problem. Design and implement various ADTs in a high level language (C++) using Object Oriented Concepts. Topics include Linked lists, Simple Containers (Stacks, Queues), Dictionaries (Key Tables and Lists, Binary Search Trees, Hash tables), Priority Queues and Heaps, Disjoint Sets and Graphs. Prof. Amr Goneid, AUC

Course Outcomes Compare alternative implementations of data structures with respect to performance. Demonstrate experience in the design of algorithms for solving problem that use the above data structures. Demonstrate knowledge of common applications for each data structure in the topic list. Practice basic algorithm analysis using complexity bounds (Big-Oh, Big-Theta and Big-Omega). Applications include Quadratic Sorting methods and Divide & Conquer recursive sorting (n log n) examples (Merge Sort and Quick Sort). Prof. Amr Goneid, AUC