Data Structure en
Data Structure en
A. COURSE DESCRIPTION
Course Code:
Credits: 5.0
Teaching Hours: 80 (Lecture: 48 Programming: 32)
Prerequisite Course: Discrete Mathematics, Programming Fundamental, Object-oriented Programming
Major: Computer Science and Technology
Teaching Material: Clifford A. Shaffer, Data Structures and Algorithm Analysis (C++), Dover, 2013
School: The School of Computer Science and Communication Engineering
B. METHOD OF INSTRUCTION
Teaching, case study, self-learning.
Schedule
Content Teaching Method
Theory Practice
Total 48 32
F. GRADING PLAN
Preview Prepare all the Prepare most of Prepare part of Prepare few of Hardly prepare
relevant code in the relevant the relevant the relevant anything in
advance code in advance code in advance code in advance advance
20’’
18-20’’ 16-17’’ 14-15’’ 12-13’’ <=11’’
The program
The program is The program is The program The program
could hardly
Programming correct and the correct and the could run but could run but
run because
skill result is very result is not there are some there are
there are many
clear very clear minor mistakes mistakes
60’’ errors
54-60’’ 48-53’’ 42-47’’ 41-36’’
<=35’’
Clear and on Somewhat clear Somewhat clear Unclear but on Unclear and
Report
time and on time and not on time time not on time
20’’
18-20’’ 16-17’’ 14-15’’ 12-13’’ <=11’’
Chapter 2 List
Supported Course Objectives: A.2. Have a general idea about various data structures, understand the
logic feature of various data structures, be able to master the physical storage, and design algorithm based on
the storage, be able to analyze the performance of the algorithms; B.1. Be able to organize the data
reasonably according to the practical problems, and to effectively store the data in the computer; B.2. Bear
the ability to design and analyze algorithms for solving engineering problems; B.3. Be able to implement the
algorithm through the specific programming language.
A. Contents and Methods
1. Learn about linked lists and be aware of the basic properties of lists. (Teaching)
2. Explore the insertion and deletion operations on lists. (Teaching)
3. Know how to build and manipulate a sequential list. (Teaching)
4. Discover how to build and manipulate a linked list. (Teaching)
5. Discover how to use the STL container list. (Teaching and demonstration)
B. Objectives
1. Know about linked list topics, such as traversal, searching, inserting, deleting.
2. Learn to build a list and how to define list as an ADT.
3. Become aware of how to use STL sequence container list.
C. Key points and difficulties
Key points
1. Operations on linked list.
2. Operations on sequential list.
Difficulties
1. Operations on linked list.
Chapter 4 Tree
Supported Course Objectives: A.2. Have a general idea about various data structures, understand the
logic feature of various data structures, be able to master the physical storage, and design algorithm based on
the storage, be able to analyze the performance of the algorithms; B.1. Be able to organize the data
reasonably according to the practical problems, and to effectively store the data in the computer; B.2. Bear
the ability to design and analyze algorithms for solving engineering problems; B.3. Be able to implement the
algorithm through the specific programming language.
A. Contents and Methods
1. Learn about binary trees. (Teaching and case study)
2. Explore various binary tree traversal algorithms. (Teaching and demonstration)
3. Learn the concepts, properties and operations related to binary search tree. (Teaching and
demonstration)
4. Learn the concepts, properties and operations related to heap. (Teaching and demonstration)
5. Learn the storage of trees and conversion between trees and binary trees. (Teaching and
demonstration)
6. Learn the storage of forests and conversion between forests and trees. (Teaching and
demonstration)
7. Explore the traversal algorithms of trees and forests. (Teaching)
B. Objectives
1. Understand basic concepts and properties of binary trees.
2. Be familiar with the recursive and non-recursive binary tree traversal algorithms.
3. Be able to implement and use a binary search tree.
4. Know how to implement and use a heap.
5. Understand the connections between forests, trees and binary trees.
C. Key points and difficulties
Key points
1. Binary trees
2. Binary search tree
3. Heap
4. Connections between forests, trees and binary trees.
Difficulties
1. Binary search tree
2. Heap
Chapter 5 Graph
Supported Course Objectives: A.2. Have a general idea about various data structures, understand the
logic feature of various data structures, be able to master the physical storage, and design algorithm based on
the storage, be able to analyze the performance of the algorithms; B.1. Be able to organize the data
reasonably according to the practical problems, and to effectively store the data in the computer; B.2. Bear
the ability to design and analyze algorithms for solving engineering problems; B.3. Be able to implement the
algorithm through the specific programming language.
A. Contents and Methods
1. Learn the basic concept about Graphs. (Teaching)
2. Learn different data structures for representation of graphs. (Teaching and demonstration)
3. Become aware of basic operations provided by graph. (Teaching and demonstration)
4. Explore depth-first search and breadth-first search algorithms. (Teaching and demonstration)
5. Study the minimum spanning tree problem and its solution. (Teaching and demonstration)
6. Study the shortest path problem and its solution. (Teaching and demonstration)
7. Learn the topological sorting algorithm. (Teaching and demonstration)
B. Objectives
1. Understand basic concepts, properties and operations related to graph.
2. Be familiar with the depth-first search and breadth-first search algorithms.
3. Master Kruskal algorithm and Prim algorithm.
4. Master Dijkstra’s algorithm.
5. Master topological sorting algorithm
C. Key points and difficulties
Key points
1. Basic concepts, properties and operations related to graph.
2. Depth-first search and breadth-first search algorithms.
3. Kruskal algorithm and Prim algorithm.
4. Dijkstra’s algorithm.
Difficulties
1. Kruskal algorithm and Prim algorithm.
2. Dijkstra’s algorithm.
Chapter 6 Search
Supported Course Objectives: A.3. Understand the concept of searching and sorting, master various
searching and sorting algorithms, be able to analyze the performance of those algorithms. B.1. Be able to
organize the data reasonably according to the practical problems, and to effectively store the data in the
computer; B.2. Bear the ability to design and analyze algorithms for solving engineering problems; B.3. Be
able to implement the algorithm through the specific programming language.
A. Contents and Methods
1. Learn the concept of search. (Teaching and demonstration)
2. Explore how to implement the sequential and binary search algorithms. (Teaching and
demonstration)
3. Discover how the sequential and binary search algorithms perform. (Teaching and case study)
4. Become aware of the lower bound on comparison-based search algorithms. (Teaching)
5. Learn about hashing. (Teaching and demonstration)
B. Objectives
1. Explore several common search ways, such as sequential search, binary search and hash search.
2. By comparison and analysis, gain better understanding of various search algorithms.
C. Key points and difficulties
Key points
1. Basic concepts of search.
2. Sequential search.
3. Binary search.
4. Hash search.
Difficulties
1. Binary search.
2. Hash search.
Chapter 7 Sort
Supported Course Objectives: A.3. Understand the concept of searching and sorting, master various
searching and sorting algorithms, be able to analyze the performance of those algorithms. B.1. Be able to
organize the data reasonably according to the practical problems, and to effectively store the data in the
computer; B.2. Bear the ability to design and analyze algorithms for solving engineering problems; B.3. Be
able to implement the algorithm through the specific programming language.
A. Contents and Methods
1. Learn basic concepts of sorting. (Teaching)
2. Explore how to implement various sorting algorithms. (Teaching and demonstration)
3. Comparison between various sorting algorithms. (Teaching and case study)
B. Objectives
1. Explore several common sorting ways
2. By comparison and analysis, gain better understanding of various sorting algorithms
C. Key points and difficulties
Key points
1. Basic concepts of sort.
2. Various sorting algorithms.
3. Complexity of sorting algorithms.
Difficulties
1. Quick sort.
2. Merge sort.
3. Heap sort
Note: This course is a special basic course, which is suitable for sophomores. Experimental types
include verification experiment and design experiment, experimental report includes topics, experimental
content, the procedures used in the data structure and symbol description, the main program flow chart,
program main function, when running the initial value and the operation results, and gain experience,
source program. The evaluation of the experiment and the proportion of the score and the grading rules are
shown in Appendix 1.