CSIEB0100 Data Structures
Lecture 0: Course Information
CSIEB0100 Data Structures Shiow-yang Wu 吳秀陽 Department of Computer Science and Information E...
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)
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
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/