Presentation is loading. Please wait.

Presentation is loading. Please wait.

Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Introduction.

Similar presentations


Presentation on theme: "Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Introduction."— Presentation transcript:

1 Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Introduction

2 Course Introduction Course Information  Who am I?  Teaching Assistants  Course Logistics  Evaluation and Grading  Assignments  Exams  Course Expectations Course Overview Questions

3 Who Am I? Dr. Nirmalya Roy  MS in CSE: UT-Arlington, 2004  PhD in CSE: UT-Arlington, 2008  Postdoc in ECE: UT-Austin, 2010  Research Scientist at Institute for Infocomm Research (I2R), Singapore, 2010-2011  Research Interest: Mobile, Pervasive and Ubiquitous Computing (MPSC) http://eecs.wsu.edu/~nroy/mpsc.htmlhttp://eecs.wsu.edu/~nroy/mpsc.html Email: nroy@eecs.wsu.edunroy@eecs.wsu.edu Office: EME 127 Office Hours: W&F 2:00 pm – 3:00 pm or by appointment

4 Teaching Assistant Mr. Shervin Hajiamini  Office Hours:  Tuesday 3:00 pm – 4:30 pm  Friday 1:00pm - 2:30pm  Location: Sloan 343

5 Course Logistics Time and Location  Monday and Wednesday and Friday 12:10pm - 1:00pm  Sloan 175 Course description  This course is about data structures, methods of organizing large amounts of data so they can be used efficiently, and algorithm analysis, the estimation of the running time of algorithms. Course website  http://eecs.wsu.edu/~nroy/courses/spring2013/cpts223/ http://eecs.wsu.edu/~nroy/courses/spring2013/cpts223/ Prerequisites  Cpt S 122 (Data Structures), Math 216 (Discrete Structures) or equivalent Make up classes  Will be occasionally necessary due to travel

6 TextBook Textbook:  Data Structures and Algorithm Analysis in C++, Third Edition by Mark Allen Weiss Reference Textbook (Optional):  P.J. Deitel & H.M. Deitel, C++: How to Program (8th ed.), Prentice Hall, 2012. ISBN-10: 0132662361; ISBN-13: 9780132662369  Andrew Koenig and Barbara E. Moo, Accelerated C++: Practical Programming by Example, Addison-Wesley, 2000

7 Evaluation and Grading Evaluation  Homeworks and Pop Quizzes: 25% of grade  Programming Assignments: 30% of grade  Exams: 45% of grade (2 Midterms 12.5% each & Final 20%) Grading Scale  90-100%: A  80-89%: B  70-79%: C  60-69%: D  0-59%: F

8 Assignments Quizzes (# 6)  5-6 objective questions  delivered mostly at the end of the class Homeworks (# 5)  7-8 problem sets, assigned on class  due after one week  no late assignments will be accepted Programming Assignments (# 4)  4 programming assignments  due two weeks later electronically by 11:59pm (mechanism to be described in advance of the first assignment)  no late assignments will be accepted

9 Exams Tentative exam dates:  Midterm 1: February 27, 2013  Midterm 2: April 3, 2013  Final: May 2, 2013 All exams are cumulative.

10 Course Expectations Attendance  You should attend class.  Lecture notes will be made available, but they should not be considered a substitution for attending class Collaboration  You can discuss both homework problems and programming assignments with other students at a conceptual level  Do not write or program while talking to a fellow student  Do not use any other resources without citation

11 Course Overview Math and C++ Review Algorithm development and analysis  Running time Abstract Data Types  Linked Lists, Stacks and Queues  Insert, delete, search, sort Advanced data structures  Trees, hash tables, heaps, disjoint sets, graphs Applications and Object-oriented implementation in C++

12 Advanced Data Structures “Why not just use a big array?” Example problem  Search for a number k in a set of N numbers Solution # 1: Linear Search  Store numbers in an array of size N  Iterate through array until find k  Number of checks Best case: 1 (k=15) Worst case: N (k=27) Average case: N/2 15 10 22 3 12 19 27

13 Advanced Data Structures Solution # 2: Binary Search Tree (BST)  Store numbers in a binary search tree Requires: Elements to be sorted  Properties: The left subtree of a node contains only nodes with keys less than the node's key The right subtree of a node contains only nodes with keys greater than the node's key Both the left and right subtrees must also be binary search trees  Search tree until find k  Number of checks Best case: 1 (k=15) Worst case: log 2 N (k=27) Average case: (log 2 N) / 2 15 22 2719 10 123

14 Example Does it matter? Problem Artifacts  N = 1,000,000,000 1 billion (Walmart transactions in 100 days)  1 Ghz processor = 10 9 cycles per second Solution #1 ( assume 10 cycles per check)  Worst case: 1 billion checks = 10 seconds Solution #2 (assume 10 cycles per check)  Worst case: 30 checks = 0.0000003 seconds

15 Analysis Does it matter?  N vs. (log 2 N)

16 Insights Moral  Appropriate data structures ease design and improve performance Challenge  Design appropriate data structure and associated algorithms for a problem  Analyze to show improved performance

17 Next Class—Math Review Analyzing data structures and algorithms  Deriving formulae for time and memory requirements  Will the solution scale? Proving algorithm correctness

18 Questions ?


Download ppt "Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Introduction."

Similar presentations


Ads by Google