© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of CHAPTER 1: Introduction Java Software Structures: Designing and Using.

Slides:



Advertisements
Similar presentations
CHAPTER OBJECTIVE: NORMALIZATION THE SNOWFLAKE SCHEMA.
Advertisements

COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Chapter 7 Queues. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter Objectives Examine queue processing Define a queue abstract.
© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Chapter 8: Arrays Problem Solving & Program Design in C Sixth Edition.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved L11 (Chapter 20) Lists, Stacks,
Chapter 15 Geography, Climate, and Natural Resources.
Chapter 2 Application Layer. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 2-2.
Chapter 12: Data Structures
Chapter 6 (cont'd) Searching for Guinea Pig B: Case Study in Online Research.
Chapter 3 Collections. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 3-2 Chapter Objectives Define the concept and terminology related.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Chapter 48 Hashing.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Chapter 13 Income Inequality. Copyright © 2005 Pearson Addison-Wesley. All rights reserved
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Chapter 14 Getting to First Base: Introduction to Database Concepts.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
Chapter 1 The Facts to Be Explained. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2.
Chapter 3 Transport Layer. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 3-2.
Chapter 6 Human Capital. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 6-2.
Chapter 13 Binary Search Trees. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Chapter Objectives Define a binary search tree abstract.
Chapter 8 The Role of Technology in Growth. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 8-2.
Chapter 8 Lists. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 8-2 Chapter Objectives Examine list processing and various ordering techniques.
Chapter 6 Stacks. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 6-2 Chapter Objectives Examine stack processing Define a stack abstract.
Automated Production Lines
Chapter 7 Multimedia Networking. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 7-2.
Chapter 16 Resources and the Environment at the Global Level.
© 2004 Pearson Addison-Wesley. All rights reserved12-1 Chapter 12 : Collections Intermediate Java Programming Summer 2007.
Data Structures and Programming.  John Edgar2.
ECE 250 Algorithms and Data Structures Douglas Wilhelm Harder, M.Math. LEL Department of Electrical and Computer Engineering University of Waterloo Waterloo,
CHP - 9 File Structures. INTRODUCTION In some of the previous chapters, we have discussed representations of and operations on data structures. These.
Comp 249 Programming Methodology Chapter 15 Linked Data Structure - Part B Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia.
Chapter 7 Queues. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 7-2 Chapter Objectives Examine queue processing Define a queue abstract.
Chapter 3 Introduction to Collections – Stacks Modified
Chapter 8 Lists. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter Objectives Examine list processing and various ordering techniques.
Comp 249 Programming Methodology Chapter 10 – Recursion Prof. Aiman Hanna Department of Computer Science & Software Engineering Concordia University, Montreal,
© Wiley 2007 Chapter 10 Facility Layout. © Wiley 2007 OUTLINE What Is Layout Planning? Types of Layouts Designing Process Layouts Special Cases of Process.
Fast Packet Classification Using Bloom filters Authors: Sarang Dharmapurikar, Haoyu Song, Jonathan Turner, and John Lockwood Publisher: ANCS 2006 Present:
Stacks and Queues Data Structures & Problem Solving Using JAVA Second Edition Mark Allen Weiss Chapter 16 © 2002 Addison Wesley.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Data Structures and Algorithms Lecture 1 Instructor: Quratulain Date: 1 st Sep, 2009.
© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of CHAPTER 12: Multi-way Search Trees Java Software Structures: Designing.
Can’t provide fast insertion/removal and fast lookup at the same time Vectors, Linked Lists, Stack, Queues, Deques 4 Data Structures - CSCI 102 Copyright.
Software Production ( ) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD)
Hashing Hashing is another method for sorting and searching data.
Chapter 6 Stacks. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter Objectives Examine stack processing Define a stack abstract.
© 2006 Pearson Education Chapter 10: Non-linear Data Structures Presentation slides for Java Software Solutions for AP* Computer Science A 2nd Edition.
ECE 250 Algorithms and Data Structures Douglas Wilhelm Harder, M.Math. LEL Department of Electrical and Computer Engineering University of Waterloo Waterloo,
© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of CHAPTER 5: Queues Java Software Structures: Designing and Using Data.
©NIIT Normalizing and Denormalizing Data Lesson 2B / Slide 1 of 18 Objectives In this section, you will learn to: Describe the Top-down and Bottom-up approach.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Chapter 2 Collections. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter Objectives Define the concept and terminology related.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 8: Recursion Presentation slides for Java Software Solutions for AP* Computer Science 3rd.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4: Events Programming with Alice and Java First Edition by John Lewis.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 23 Algorithm Efficiency.
DATA STRUCTURES (CS212D) Overview & Review Instructor Information 2  Instructor Information:  Dr. Radwa El Shawi  Room: 
© 2012 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Problem Solving & Program Design in C Seventh Edition By Jeri R. Hanly.
© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of CHAPTER 15: Sets and Maps Java Software Structures: Designing and Using.
Collections Using Generics in Collections. 2 Chapter Objectives Define the concept and terminology related to collections Explore the basic structure.
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To introduce the basic concepts of linked lists ❏ To introduce the basic concepts.
© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Appendix A: UML Java Software Structures: Designing and Using Data.
Chapter 1 Introduction.
Chapter 1 Introduction.
Introduction: Some Representative Problems
Lecture 3 – Data collection List ADT
CHAPTER 3: Collections—Stacks
Presentation transcript:

© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of CHAPTER 1: Introduction Java Software Structures: Designing and Using Data Structures Third Edition John Lewis & Joseph Chase

1-2 © 2010 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Identify various aspects of software quality Motivate the need for data structures based upon quality issues Introduce the basic concept of a data structure Introduce several elementary data structures

1-3 © 2010 Pearson Addison-Wesley. All rights reserved. 1-3 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is on controlling the development process to achieve consistently good results We want to: –satisfy the client – the person or organization who sponsors the development –meet the needs of the user – the people using the software for its intended purpose

1-4 © 2010 Pearson Addison-Wesley. All rights reserved. 1-4 Goals of Software Engineering Solve the right problem –more difficult than it might seem –client interaction is key Deliver a solution on time and under budget –there are always trade-offs Deliver a high-quality solution –beauty is in the eye of the beholder –we must consider the needs of various stakeholders

1-5 © 2010 Pearson Addison-Wesley. All rights reserved. 1-5 Aspects of software quality

1-6 © 2010 Pearson Addison-Wesley. All rights reserved. 1-6 A Physical Example Consider the problem of storage containers being unloaded at a dock Containers could immediately be loaded onto waiting trains and trucks –Efficient for the dock workers but not very efficient for the railroad and trucking companies

1-7 © 2010 Pearson Addison-Wesley. All rights reserved. 1-7 Physical Example (continued) What do we know about each container? –Same size and shape –Each has a unique ID –Dock workers do not need to know what is in each container

1-8 © 2010 Pearson Addison-Wesley. All rights reserved. 1-8 Physical Example (continued) Containers could simply be offloaded and stored on the dock as they are unloaded –Efficient for unloading –Not efficient for finding and loading storage containers onto trucks and trains –Requires a linear search of the entire storage area each time a container needs to be found

1-9 © 2010 Pearson Addison-Wesley. All rights reserved. 1-9 Physical Example (continued) What if we lay out a very large array so that each storage container is indexed by its ID? –ID is unique for all storage containers –Array would be very large –Array would mostly be empty –Significant waste of space

1-10 © 2010 Pearson Addison-Wesley. All rights reserved Physical Example (continued) What if we use that same solution but allow the list to expand and contract to eliminate empty slots? –Array would always be ordered by ID –Finding a container would be easier –However, would force containers to be moved multiple times as each new containers are added or removed

1-11 © 2010 Pearson Addison-Wesley. All rights reserved Physical Example (continued) Lets reconsider what we know about each container –The ID number also gives us the destination of each container –What if we create an array of destinations where each cell in the array is an array of containers?

1-12 © 2010 Pearson Addison-Wesley. All rights reserved Physical Example (continued) Now we can store the containers for each destination in a variety of ways –Store in the order they are unloaded with the first one unloaded being the first one shipped (Queue) –Store in the order they are unloaded with the last one unloaded being the first one shipped (Stack) –Store by ID order within each destination (Ordered List)