Presentation is loading. Please wait.

Presentation is loading. Please wait.

Data Structures and Algorithms for Information Processing

Similar presentations


Presentation on theme: "Data Structures and Algorithms for Information Processing"— Presentation transcript:

1 Data Structures and Algorithms for Information Processing
Lecture 1: Introduction Lecture 1: Introduction

2 Lecture 1: Introduction
Course Web Site Lecture 1: Introduction

3 Structure of the Course
Lectures / class participation Homeworks (programming) Quizzes (low score dropped) Midterm examination Final examination Lecture 1: Introduction

4 Lecture 1: Introduction
Readings Readings from the required text are assigned for each lecture -- read them in advance The book contains self-test exercises in each section Work these exercises (especially if you are new to the material) Lecture 1: Introduction

5 Lecture 1: Introduction
Grading Homework (5-6) 50% Quizzes (5) % Midterm Exam 20% Final Exam 25% Lecture 1: Introduction

6 Lecture 1: Introduction
Definitions A data structure is an organized collection of data with specific aggregate properties An algorithm is a sequence of program instructions designed to compute a particular result Lecture 1: Introduction

7 Five Steps per Datatype
Understand it Abstractly Write a Specification Write Applications Select an existing, or Design and Implement our own Analyze the Implementation in terms of performance Lecture 1: Introduction

8 Lecture 1: Introduction
Abstract vs. Concrete An abstract data type (ADT) specifies behavior, but not implementation An implementation uses a particular low-level datatype to implement the desired behavior Lecture 1: Introduction

9 Lecture 1: Introduction
Quick Example A stack is an abstract data type (ADT). We push and pop from the top. Consider three implementations: (1) Every push causes all elements in an array to shift down 1 before the insertion at s[0]. (2) We add at stackTop and then add one to stackTop. (3) A linked list use where the top is always at the list’s front end. Each implementation can be written correctly. Implementation (1) runs in Θ(n). Implementations (2) and (3) run in Θ(1). Lecture 1: Introduction

10 Lecture 1: Introduction
Step 1: Understanding Grasp the datatype at the level of concepts and pictures e.g., visualize a stack and the operations of pushing / popping Understand simple applications Simulate by hand e.g., use a stack to reverse the order of letters in a word Lecture 1: Introduction

11 Lecture 1: Introduction
Step 2: Specification Write a specification for a Java class that could implement the datatype (see javadoc Appendix H) Headings for constructor, public methods, public features Includes precondition / postcondition for each method Independent of implementation! Lecture 1: Introduction

12 Lecture 1: Introduction
Step 3: Application Based on the specification, write small applications to illustrate the use of the datatype “Test the specification” prior to implementation Code not yet compiled / run Lecture 1: Introduction

13 Lecture 1: Introduction
Step 4: Implementation Select appropriate data structure Implement as private class vars Write rules relating instance variables to abstract specification: the invariant of the ADT Each method knows the invariant is true when it starts Each method upholds the invariant Lecture 1: Introduction

14 Lecture 1: Introduction
Step 5: Analysis Correctness Flexibility When possible, compare different implementations of the same ADT Time Analysis number of operations big-O notation, e.g., Lecture 1: Introduction

15 Phases of Software Development
Specification of the Task Design of a Solution Implementation of the Solution Running Time Analysis Testing and Debugging Maintenance and Evolution Obsolescence Lecture 1: Introduction

16 Lecture 1: Introduction
Java Conceived in 1991 at Sun Has Similarities to C++ Is simpler than C++ Object-Oriented Programming (OOP) information hiding component re-use programs (methods) and data are grouped together into classes we will not be using the collection classes Lecture 1: Introduction

17 What You Should Know Already
How to use a Java development environment (java, javac, javadoc) How to write, compile, and run short Java programs Java primitive types (number types, char, boolean) and arrays Easy to pick up with prior programming experience Lecture 1: Introduction

18 Specifying a Java Method
Specification: what a method does not how it does it A form of information hiding called procedural abstraction Method signature public static double celsiusToFahrenheit(double c) Method call double fahrenheit = celsiusToFahrenheit(celsius); Lecture 1: Introduction

19 Elements of Specification
Short Introduction Parameter Description Returns Specify the meaning of return value Throws list error conditions (exceptions) “thrown” by this method Precondition and Postcondition Lecture 1: Introduction

20 Lecture 1: Introduction
Preconditions A precondition is a statement giving the condition that should be true when the method is called The method is not guaranteed to perform as it should unless the precondition is true. If violated, ignore (like c) or throw an exception (like Java). Lecture 1: Introduction

21 Lecture 1: Introduction
Postconditions A postcondition is a statement describing what will be true when a method call completes If the method is correct and precondition was met, then the method will complete, and the postcondition will be true when it does. Lecture 1: Introduction

22 Example Specification
celsiusToFahrenheit public static double celsiusToFahrenheit(double c) convert a temperature from Celsius degrees to Fahrenheit degrees Parameters: c - a temperature in Celsius degrees Precondition: c>= Returns: temperature c in Fahrenheit Throws: IllegalArgument Exception Lecture 1: Introduction

23 More on Pre/Postconditions
Slides from Main’s Lectures Lecture 1: Introduction


Download ppt "Data Structures and Algorithms for Information Processing"

Similar presentations


Ads by Google