Download CSIEB0100 Data Structures

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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
Related documents