1 CS 311 Data Structures. 2 Instructor Name : Vana Doufexi Office : 2-229, Ford Building Office hours: By appointment.

Slides:



Advertisements
Similar presentations
Data Structures.
Advertisements

COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
Classes and Object- Oriented... tMyn1 Classes and Object-Oriented Programming The essence of object-oriented programming is that you write programs in.
CMPT 225 Data Structures and Programming. Course information Lecturer: Jan Manuch (Jano), TASC TAs: Osama Saleh,
© Janice Regan Problem-Solving Process 1. State the Problem (Problem Specification) 2. Analyze the problem: outline solution requirements and design.
1 Problem Solving Abstraction Oftentimes, different real-world problems can be modeled using the same underlying idea Examples: Runtime storage, Undo operation.
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2010.
Chapter 3 Data Abstraction: The Walls. © 2005 Pearson Addison-Wesley. All rights reserved3-2 Abstract Data Types Modularity –Keeps the complexity of a.
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
© 2006 Pearson Addison-Wesley. All rights reserved4-1 Chapter 4 Data Abstraction: The Walls.
CS261 Data Structures Winter 2011 Professor Timothy Budd.
1 Data Structures A program solves a problem. A program solves a problem. A solution consists of: A solution consists of:  a way to organize the data.
Abstract Data Types (ADT)
Compiler Construction
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Coursenotes CS3114: Data Structures and Algorithms Clifford A. Shaffer Yang Cao Department of Computer Science Virginia Tech Copyright ©
Introduction - The Need for Data Structures Data structures organize data –This gives more efficient programs. More powerful computers encourage more complex.
1 A Introduction to Data Structures and Algorithm Analysis Data Structures Asst. Professor Kiran Soni.
DATA STRUCTURE Subject Code -14B11CI211.
C o n f i d e n t i a l Developed By Nitendra NextHome Subject Name: Data Structure Using C Title: Overview of Data Structure.
Algorithm analysis and design Introduction to Algorithms week1
WEEK 1 CS 361: ADVANCED DATA STRUCTURES AND ALGORITHMS Dong Si Dept. of Computer Science 1.
1 EECS 231 ADVANCED PROGRAMMING. 2 Staff Instructor Vana Doufexi Ford Building, 2133 Sheridan, #2-229 Teaching Assistant.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Data Structures and Programming.  Today:  Administrivia  Introduction to 225, Stacks  Course website: 
Data Structures Lecture 1: Introduction Azhar Maqsood NUST Institute of Information Technology (NIIT)
Chapter 11 Introduction to Classes Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg.
CSCA48 Course Summary.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
CSE-C1 Algs & DS 1 CSE–C1 Algorithms and Data Structures 1 lecturer Dr.Matthew Montebello office CB 409 credit 1 lectures 10.
1 CS 350 Data Structures Chaminade University of Honolulu.
Introduction to Data Structures
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
OBJECT-ORIENTED PROGRAMMING (OOP) WITH C++ Instructor: Dr. Hany H. Ammar Dept. of Electrical and Computer Engineering, WVU.
Chapter 1 Data Structures and Algorithms. Primary Goals Present commonly used data structures Present commonly used data structures Introduce the idea.
C++ and Ubuntu Linux Review and Practice CS 244 Brent M. Dingle, Ph.D. Game Design and Development Program Department of Mathematics, Statistics, and.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
1 Section 2.1 Algorithms. 2 Algorithm A finite set of precise instructions for performing a computation or for solving a problem.
Algorithm Analysis CS 400/600 – Data Structures. Algorithm Analysis2 Abstract Data Types Abstract Data Type (ADT): a definition for a data type solely.
CS 210 DATA STRUCTURES AND ALGORITHIMS Fall 2006.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
1 CS 211 Computer Programming II. 2 Staff Instructor Vana Doufexi Ford Building, 2133 Sheridan, #2-229 Teaching Assistant.
Or how to work smarter when building solutions.  2:30 – 3:30 Mondays – focus on problem solving (with some terminology thrown in upon occasion)  All.
Teaching Abstract Data Type Semantics with Multimedia* Glenn D. Blank, Edwin J. Kay, William M. Pottenger Jeffrey J. Heigl, Soma Roy and Shreeram A. Sahasrabudhe.
Object Oriented Programming. OOP  The fundamental idea behind object-oriented programming is:  The real world consists of objects. Computer programs.
1 A Practical Introduction to Data Structures and Algorithm Analysis Chaminade University of Honolulu Department of Computer Science Text by Clifford Shaffer.
Chapter 2 Principles of Programming and Software Engineering.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (2/2)
BITS Pilani Pilani Campus Data Structure and Algorithms Design Dr. Maheswari Karthikeyan Lecture1.
Prof. I. J. Chung Data Structure #1 Professor I. J. Chung.
KWIC example The KWIC [key word in context] system accepts an ordered set of lines; each line is an ordered set of words, and each word is an ordered set.
Data Structures Dr. Abd El-Aziz Ahmed Assistant Professor Institute of Statistical Studies and Research, Cairo University Springer 2015 DS.
Maitrayee Mukerji. INPUT MEMORY PROCESS OUTPUT DATA INFO.
Lecture 1 Data Structures Aamir Zia. Introduction Course outline Rules and regulations Course contents Good Programming Practices Data Types and Data.
Introduction To Algorithm and Data Structures Course Teacher: Moona Kanwal -Algorithm Design -Algorithm Analysis -Data structures -Abstract Data Type.
Mohammed I DAABO COURSE CODE: CSC 355 COURSE TITLE: Data Structures.
CS240: Data Structures And Algorithms
Advanced Data Structures Lecture 1
Introduction toData structures and Algorithms
GC211Data Structure Lecture2 Sara Alhajjam.
Data Abstraction: The Walls
About the Presentations
Algorithm An algorithm is a finite set of steps required to solve a problem. An algorithm must have following properties: Input: An algorithm must have.
Introduction to Data Structure
Compiler Construction
Presentation transcript:

1 CS 311 Data Structures

2 Instructor Name : Vana Doufexi Office : 2-229, Ford Building Office hours: By appointment ( me)

3 Resources class webpage : –Use it to download class notes, handouts and assignments look up your grades access online tutorials and references look up course policies on –grading –late homework –collaboration

4 Resources class newsgroup : –The class newsgroup is cs.311 at news.cs.northwestern.edu –Use it to discuss class material, discuss the assignments (but NEVER post solutions)

5 Problem Solving Problem solving = –Understanding the problem –Designing a solution –Implementing the solution What exactly is a solution?

6 Problem Solving An algorithm is a computational method for solving a problem. It is a sequence of steps that take us from the input to the output. An algorithm must be –Correct It should provide a correct solution according to the specifications. –Finite It should terminate. –General It should work for every instance of a problem –Efficient It should use few resources (such as time or memory).

7 Problem Solving Any algorithm we come up with will have to manipulate data in some way –The way we choose to organize our data directly affects the efficiency of our algorithm Solution = algorithm + data organization –Both components are strongly interconnected.

8 What this class is about Classic data structures. –Design, implementation and use How to choose or devise the appropriate data structures for a problem. Classic algorithms and how the choice of data structure affects their efficiency. More C++ programming experience. Programming in the Linux/Unix environment

9 Problem Solving Key characteristic: Abstraction –Oftentimes, different real-world problems can be modeled using the same underlying idea Examples: Runtime storage, Undo operation. In both cases we have a sequence of data items (activation records, actions) and we can only add and remove items from one end of the sequence. –We can design a data organization scheme that retains the general characteristics of this "data and operations" model (without any dependences on the type of data or method of implementation). –This is called data abstraction. Big advantage: code reuse. We can use the same scheme for both problems.

10 Problem Solving Key characteristic: Encapsulation –The way the data is organized and the operations that can be performed on it are implemented should be hidden. Its properties are separated from the implementation –Data can be manipulated in a controlled way, only through an interface. The internal details are hidden. In-class example: library reserve desk –This is called encapsulation. Big advantage: The code has higher maintainability. The internal organization/implementation can be modified/improved without changing the interface. Big advantage: Outside objects cannot interfere with the internal organization, inadvertently corrupting it.

11 Problem Solving Key characteristic: Information hiding –A solution typically consists of different modules that interact with one another. –Information hiding is the idea of concealing details from other modules that do not need to know those details.

12 Data organization Major components: –The data –The operations allowed on it These make up an Abstract Data Type A Data Structure is a construct that implements a particular ADT. Example: An indexed-list ADT.

13 Data organization Example: An indexed-list ADT. –DATA: An indexed sequence of items of some type The lower index The upper index –OPERATIONS: Access item at position (index) i Add an item at position i Remove an item at position i Change the bounds Make it more abstract by not assuming it's 0 Make it more abstract by not assuming a type Note that there is no mention of how this might be implemented.