Introduction CSE 373 Data Structures.

Slides:



Advertisements
Similar presentations
COMP171 Data Structures and Algorithms Spring 2009.
Advertisements

COMP171 Data Structures and Algorithms Spring 2009.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Administrivia- Introduction CSE 373 Data Structures.
COMP171 Data Structures and Algorithm Qiang Yang Lecture 1 ( Fall 2006)
EE 220 (Data Structures and Analysis of Algorithms) Instructor: Saswati Sarkar T.A. Prasanna Chaporkar, Programming.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CSCE 3110 Data Structures and Algorithm Analysis.
Data Structures and Programming.  John Edgar2.
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
Data Structures CS231 Instructor: Dr. Hammad Majeed Office: Academic Block 4 First Floor.
© 2004 Goodrich, Tamassia CS2210 Data Structures and Algorithms Lecture 1: Course Overview Instructor: Olga Veksler.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
Introduction CSE 1310 – Introduction to Computers and Programming
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
Data Structures and Programming.  Today:  Administrivia  Introduction to 225, Stacks  Course website: 
BIM213 – Data Structures and Algorithms Introduction 1.
Instructor Information: Dr. Radwa El Shawi Room: Week # 1: Overview & Review.
DATA STRUCTURES (CS212D) Week # 1: Overview & Review.
CSE 3358 NOTE SET 1 Data Structures and Algorithms.
Computer Science 102 Data Structures and Algorithms CSCI-UA.0102 Fall 2012 Lecture 1: administrative details Professor: Evan Korth New York University.
COMP2012 Object-Oriented Programming and Data Structures Fall 2015.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Introduction.
CPSC 121: Models of Computation Unit 0 Introduction George Tsiknis Based on slides by Patrice Belleville and Steve Wolfman.
CS-2851 Dr. Mark L. Hornick 1 CS-2852 Data Structures Dr. Mark L. Hornick Office: L341 Phone: web: people.msoe.edu/hornick/
CSE 3358 NOTE SET 1 Data Structures and Algorithms.
Introduction to ECE 2401 Data Structure Fall 2005 Chapter 0 Chen, Chang-Sheng
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Introduction.
Data Structures and Algorithm Analysis Introduction Lecturer: Ligang Dong, egan Tel: , Office: SIEE Building.
Course Info Instructor U.T. Nguyen Office: CSEB Office hours: Tuesday, 14:30-15:30 Thursday, 12:00-12:45 By.
Review I. Final exam Date TBD. Don ’ t be late! Open book, open notes No calculators or any electronics Worth 50% of final grade.
Data Structures and Algorithms in Java AlaaEddin 2012.
DATA STRUCTURES (CS212D) Overview & Review Instructor Information 2  Instructor Information:  Dr. Radwa El Shawi  Room: 
CC 215 DATA STRUCTURES Dr. Manal Helal - Fall 2014 Lecture 1 AASTMT Engineering and Technology College 1.
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2013.
Data Structures Dr. Abd El-Aziz Ahmed Assistant Professor Institute of Statistical Studies and Research, Cairo University Springer 2015 DS.
COMP9024: Data Structures and Algorithms Course Outline Hui Wu Session 1, 2016
Introduction toData structures and Algorithms
CS16: Introduction to Algorithms and Data Structures
CENG 707 Data Structures and Algorithms
COMP9024: Data Structures and Algorithms
CSc 1302 Principles of Computer Science II
CSc 020: Programming Concepts and Methodology II
March 27 – Course introductions; Adts; Stacks and Queues
CS 315 Data Structures B. Ravikumar Office: 116 I Darwin Hall Phone:
CENG 213 Data Structures Dr. Cevat Şener
CPSC 311 Section 502 Analysis of Algorithm
Computer Science 102 Data Structures CSCI-UA
September 27 – Course introductions; Adts; Stacks and Queues
CSE1320 INTERMEDIATE PROGRAMMING
CSE1320 INTERMEDIATE PROGRAMMING
CS 201 – Data Structures and Discrete Mathematics I
Lecture 1: Welcome to CSE 373
Data Structures (CS212D) Overview & Review.
Lecture 1: Introduction
Introduction to Data Structures
CSE1320 INTERMEDIATE PROGRAMMING
Introduction to CS II Data Structures
CSE1320 INTERMEDIATE PROGRAMMING
Ben Lerner Summer Quarter 2007 Lecture 1
Week # 1: Overview & Review
Data Structures and Algorithms for Information Processing
Data Structures (CS212D) Overview & Review.
Administrivia- Introduction
CSCE 221 Professor Lupoli TAMU CSCE 221 Intro.
Administrivia- Introduction
DS.I.1 CSE 373: Data Structures and Algorithms Autumn Quarter 2000
CSCE156: Introduction to Computer Science II
Presentation transcript:

Introduction CSE 373 Data Structures

Staff Instructor TA’s Martin Dickey dickey@cs.washington.edu Adam Carlson (carlson@cs.washington.edu) Bhushan Mandhani (bhushan@cs.washington.edu) But you don’t need to copy this down... it’s on the Web! 1 December 2018 CSE 373 Wi05 - Introduction

Web Page All info is on the web page for CSE 373 http://www.cs.washington.edu/373 also known as http://www.cs.washington.edu/education/courses/373/05sp 1 December 2018 CSE 373 Wi05 - Introduction

Office Hours My office: 640 Allen Center Office Hours: Briefly right after class MW, and other times TA office hours TBA 1 December 2018 CSE 373 Wi05 - Introduction

CSE 373 E-mail List Not quite set up yet. Announcements can be seen on the Web site, too. E-mail list is used for posting announcements by instructor and TAs. 1 December 2018 CSE 373 Wi05 - Introduction

Computer Lab Math Sciences Computer Center Communications Building B022 http://www.ms.washington.edu/ We’ll be using Java for the programming assignments. Supports sharing on the web (with applets), Makes it easy to display data structures graphically. PS: General campus labs have Java, too. 1 December 2018 CSE 373 Wi05 - Introduction

Textbook Data Structures and Algorithms in Java, by Goodrich and Tamassia, 3rd edition. Either buy it at the U. Bookstore for $92 or read it free online after joining the IEEE Computer Society (see our home page). 1 December 2018 CSE 373 Wi05 - Introduction

Grading Assignments Projects Two Midterms Service and Participation Peer evaluations, selected class activities, assisting staff, etc. Final Exam 2:30-4:20 p.m. Wed. June 8 Be there or be square! 1 December 2018 CSE 373 Wi05 - Introduction

Class Overview Introduction to many of the basic data structures used in computer software Understand the data structures Analyze the algorithms that use them Know when to apply them Practice design and analysis of data structures. Practice using these data structures by writing programs. Data structures are the plumbing and wiring of programs. 1 December 2018 CSE 373 Wi05 - Introduction

Goal You will understand So that you will be able to what the tools are for storing and processing common data types which tools are appropriate for which need So that you will be able to make good design choices as a developer, project manager, or system customer 1 December 2018 CSE 373 Wi05 - Introduction

Course Topics Introduction to Algorithm Analysis Lists, Stacks, Queues Search Algorithms and Trees Hashing and Heaps Sorting Disjoint Sets Graph Algorithms 1 December 2018 CSE 373 Wi05 - Introduction

First Reading Handout on Math Background for CSE 373 (Wednesday) Chapters 1 of Data Structures and Algorithms in Java, by Goodrich and Tamassia (a review of basic Java material) Also read Chapter 2 to refresh your knowledge of CSE 143 OO material Think some more about how you would write a Spell Checker... 1 December 2018 CSE 373 Wi05 - Introduction

Activities Homework Projects Quizzes! Service and Participation Exams 1 December 2018 CSE 373 Wi05 - Introduction

Brainstorming How would you design a __________________? What features would you have? What data structures? What algorithms? 1 December 2018 CSE 373 Wi05 - Introduction

Data Structures: What? Need to organize program data according to problem being solved Abstract Data Type (ADT) - A data object and a set of operations for manipulating it List ADT with operations insert and delete Stack ADT with operations push and pop Note similarity to Java classes private data structure and public methods 1 December 2018 CSE 373 Wi05 - Introduction

Data Structures: Why? Program design depends crucially on how data is structured for use by the program Implementation of some operations may become easier or harder Speed of program may dramatically decrease or increase Memory used may increase or decrease Debugging may be become easier or harder 1 December 2018 CSE 373 Wi05 - Introduction

Terminology Abstract Data Type (ADT) Algorithm Data structure Mathematical description of an object with set of operations on the object. Useful building block. Algorithm A high level, language independent, description of a step-by-step process Data structure A specific family of algorithms for implementing an abstract data type. Implementation of data structure A specific implementation in a specific language 1 December 2018 CSE 373 Wi05 - Introduction

Algorithm Analysis: Why? Correctness: Does the algorithm do what is intended. Performance: What is the running time of the algorithm. How much storage does it consume. Different algorithms may correctly solve a given task Which should I use? 1 December 2018 CSE 373 Wi05 - Introduction

Iterative Algorithm for Sum Find the sum of the first num integers stored in an array v. sum(v[ ]: integer array, num: integer): integer{ temp_sum: integer ; temp_sum := 0; for i = 0 to num – 1 do temp_sum := v[i] + temp_sum; return temp_sum; } Note the use of pseudocode 1 December 2018 CSE 373 Wi05 - Introduction

Programming via Recursion Write a recursive function to find the sum of the first num integers stored in array v. sum (v[ ]: integer array, num: integer): integer { if num = 0 then return 0 else return v[num-1] + sum(v,num-1); } base case recursive case 1 December 2018 CSE 373 Wi05 - Introduction

Pseudocode In the lectures algorithms will be presented in pseudocode. This is very common in the computer science literature Pseudocode is usually easily translated to real code. This is programming language independent 1 December 2018 CSE 373 Wi05 - Introduction

Proof by Induction Basis Step: The algorithm is correct for the base case (e.g. n=0) by inspection. Inductive Hypothesis (n=k): Assume that the algorithm works correctly for the first k cases, for any k. Inductive Step (n=k+1): Given the hypothesis above, show that the k+1 case will be calculated correctly. 1 December 2018 CSE 373 Wi05 - Introduction

Program Correctness by Induction Basis Step: sum(v,0) = 0.  Inductive Hypothesis (n=k): Assume sum(v,k) correctly returns sum of first k elements of v, i.e. v[0]+v[1]+…+v[k-1] Inductive Step (n=k+1): sum(v,n) returns v[k]+sum(v,k) which is the sum of first k+1 elements of v.  1 December 2018 CSE 373 Wi05 - Introduction

Algorithms vs Programs Proving correctness of an algorithm is very important a well designed algorithm is guaranteed to work correctly and its performance can be estimated Proving correctness of a program (an implementation) is fraught with weird bugs Abstract Data Types are a way to bridge the gap between mathematical algorithms and programs 1 December 2018 CSE 373 Wi05 - Introduction