Download presentation
Presentation is loading. Please wait.
Published byAbraham Carr Modified over 9 years ago
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 ?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.