Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
CSIEB0100 Data Structures Lecture 0: Course Information CSIEB0100 Data Structures Shiow-yang Wu 吳秀陽 Department of Computer Science and Information Engineering National Dong Hwa University What is Data Structures A data structure is a way of organizing and storing data so that it can be processed efficiently by a computer program. This course is therefore about the organization, storage and effective processing of data for computer programs. CSIEB0100 Data Structures Course Information 2 Note 1 CSIEB0100 Data Structures Lecture 0: Course Information Learning Objectives Understand the concept of abstract data types. Familiar with different types of data structures and the algorithms that operate them. Learn how to choose appropriate data structures and algorithms for solving a problem. Learn to evaluate the impacts of data structure and algorithm selection on the performance of a program. CSIEB0100 Data Structures Course Information 3 Lecture and Lab This is a lecture-oriented course with associated lab course CSIE@0700. It is strongly recommended that you take both courses at the same time. The sample code will be presented in C++. It is a prerequisite of this class to be familiar with the C++ programming language. We will use the free Code::Blocks IDE for demo. You may choose any C++ compiler you like. CSIEB0100 Data Structures Course Information 4 Note 2 CSIEB0100 Data Structures Lecture 0: Course Information Topics 1 Data structures and abstract data types C++ review and algorithms Arrays and strings Stacks and queues Linked lists (single and doubly linked) Trees (basic facts, binary trees, search, heap) Graphs (basic facts, representations, shortest paths, spanning trees) CSIEB0100 Data Structures Course Information 5 Topics 2 Internal sorting (insertion, quick, merge, heap, radix) External sorting** Hashing Priority queues Efficient search structures** CSIEB0100 Data Structures Course Information 6 Note 3 Lecture 0: Course Information CSIEB0100 Data Structures Administrative Information 1 Course Title: Data Structures Course Number: CSIEB0100 Lecture Time: Tue 09:10~12:00 Classroom: Engineering Building C309 (工C309) Office Hours: Tue 17:00~18:00 Grading Policy: Assignments Midterm Exam Final Exam 30% 35% 35% CSIEB0100 Data Structures Course Information 7 Administrative Information 2 Course Homepage: http://www.csie.ndhu.edu.tw/~showyang/DS2015 f/index.html Instructor's Homepage: http://www.csie.ndhu.edu.tw/~showyang/index.ht ml CSIEB0100 Data Structures Course Information 8 Note 4 CSIEB0100 Data Structures Lecture 0: Course Information Textbook Ellis Horowitz, Sartaj Sahni and Dinesh Mehta. Fundamentals of Data Structures in C++, 2nd Edition, Silicon Press, Summit, New Jersey, 2007. (http://www.silicon-press.com/books/isbn.0929306-37-6/index.html) (http://www.amazon.com/Fundamentals-DataStructures-Ellis-Horowitz/dp/0929306376) CSIEB0100 Data Structures Course Information 9 References Wikibooks. Fundamental Data Structures, http://en.wikipedia.org/wiki/Book:Fundamental_Dat a_Structures. Open Content. Open Data Structures, http://opendatastructures.org/. Clifford A. Shaffer. Data Structures and Algorithm Analysis, Edition 3.2.0.10. March 28, 2013. (http://people.cs.vt.edu/~shaffer/Book/) All available online. CSIEB0100 Data Structures Course Information 10 Note 5 CSIEB0100 Data Structures Lecture 0: Course Information Course Outline Introduction Part 1: Basic Concepts and Abstract Data Types What is a data structure? Why do we study data structures? What is an abstract data type(ADT)? Relationship between data structures and ADTs Algorithms and performance analysis Complexity and asymptotic notations CSIEB0100 Data Structures Course Information 11 Course Outline Part 2: OO and C++ Review Object orientation Object-oriented design(OOD) Object-oriented programming(OOP) C++ review C++ templates OOP with C++ CSIEB0100 Data Structures Course Information 12 Note 6 CSIEB0100 Data Structures Lecture 0: Course Information Course Outline Part 3: Linear Data Structures Arrays and strings Stacks and queues Linked lists Part 4: Non-linear Data Structures Trees Graphs CSIEB0100 Data Structures Course Information 13 Course Outline Part 5: Sorting Internal sorting External sorting Part 6: Hashing Associative arrays Hash functions CSIEB0100 Data Structures Course Information 14 Note 7 CSIEB0100 Data Structures Lecture 0: Course Information Course Outline Part 7: Priority Queues Priority queues Double-ended priority queues Part 8: Search Structures** CSIEB0100 Data Structures Course Information 15 Problem Solving with Data Structures CSIE is about computer problem solving. Computers need programs to operate. Programs = Data Structures + Algorithms Data structures are the means and tools to reach our goal. It is a good idea to always keep in mind that the theme of the course is Problem Solving with Data Structures CSIEB0100 Data Structures Course Information 16 Note 8 CSIEB0100 Data Structures Lecture 0: Course Information Homework and Programming Assignments There will be several homework and programming assignments to give you hands on experience on computer problem solving with data structures. Late submission will only get partial credit. We will use C++ and Code::Blocks. CSIEB0100 Data Structures Course Information 17 Course Requirements Read the book(s) before the class, participate in the discussion, ask questions! Learning by doing. Practice makes perfect. Grading policy revisited: Assignments (30%) Midterm exam (35%) Final exam (35%) CSIEB0100 Data Structures Course Information 18 Note 9 CSIEB0100 Data Structures Lecture 0: Course Information Resources Wikipedia page on Data Structure: http://en.wikipedia.org/wiki/Data_structure GeeksforGeeks: http://www.geeksforgeeks.org/">GeeksforGeeks TopCoder: http://www.topcoder.com/ More on the class web page. CSIEB0100 Data Structures Course Information 19 Note 10