Presentation on theme: "PROGRAMMING LANGUAGE (JAVA) UNIT 42 BY ROBERT BUTTERFIELD TELEPHONE 01274 436413 Data Structures and Algorithms."— Presentation transcript:
PROGRAMMING LANGUAGE (JAVA) UNIT 42 BY ROBERT BUTTERFIELD TELEPHONE Data Structures and Algorithms (DSA)
What This Unit Is About This unit is about data structures and algorithms used in computer programming. Data structures are ways in which data is arranged in your computer's memory (or stored on disk). Algorithms are the procedures, the software program uses to manipulate the data in these structures.
Why use data structures Almost every computer program, even a simple one, uses data structures and algorithms. Example, consider a program that prints address labels. The program might use an array (more later) The array is the data structure, and the for loop used is the simple algorithm.
When do I need DSA For uncomplicated programs with small amounts of data, you could possibly just use an array. However: Programs that handle even moderately large amounts of data Programs that solve problems that are slightly out of the ordinary More sophisticated techniques are necessary. Simply knowing the syntax of a computer language such as Java isn't enough. This unit is about what you need to know after you've learned a programming language.
Edexcel unit description This unit provides the learner with a range of experiences in using the algorithms and data structures that underpin much of todays computing. The various techniques presented should be seen in the context of solving problems using computers. The unit aims to develop the formal concepts of data structures, algorithms and their relationships to each other and to the concepts of object-oriented programming. This should allow learners to develop solutions using data structures for a range of commercial needs.
Summary of learning outcomes 1. Apply concepts of abstraction in designing object- oriented data structures 1. Specify and implement abstract data types (ADTs) 1. Evaluate and implement data structures 2. Justify the selection of an appropriate data structure/algorithm.
Abstraction in designing object-oriented data structures Complexity: in software development, interfaces and encapsulation Definition of abstract data types: collection, structure Values, states, and objects: types and classes, encapsulation, inheritance
Abstract data types ADTs: look at examples of ADTs (stacks, queues) Implementation: look at how different data structures can implement the same ADT (arrays and single linked lists)
Data Structures Context: common complex data structures and typical applications Arrays: tables (hashed, lookup), matrices, dynamic memory, linked lists (single, double), tree (binary search trees) (Sample) Algorithms for data structures: appropriate algorithms include insert, delete, search and sort Code implementation: documented computer code that covers the range of data structures
Data structure/algorithm Applications: relevant application areas (research and review) Evaluation: criteria for the use of data structure/algorithms (selection of the most suitable data structure) Testing: algorithm, measure of efficiency
Outcomes and assessment criteria 1 Apply concepts of abstraction in designing object- oriented data structures Determine appropriate properties and methods for data structures Produce specifications for object-oriented data Structures Extend specifications of data structures to a subclass of data structure
Outcomes and assessment criteria 2 Specify and implement abstract data types (ADTs) Produce a specification of an ADT Implement ADTs Describe alternative methods of implementing the ADT
Outcomes and assessment criteria 3 Evaluate and implement data structures describe how basic operations are implemented on data structures (such as inserting into a tree) Describe a typical application where such a data structure may be found Write code to implement a selection of data structures
Outcomes and assessment criteria 4 Justify the selection of an appropriate data structure/algorithm Review current uses of data structures within application areas Perform estimates of the resource and time requirements for a data structure/algorithm Justify the selection of the most appropriate data structure/algorithm for a given application
Important You should possess significant experience in programming before attempting this unit. This unit links with: Unit 30: Java Programming, Unit 32: Maths for Software Development, Unit 36: OOP Programming, Unit 37: VB Enterprise Development, Unit 38: Visual Programming Development and Unit 39: Visual Programming Fundamentals.