0% found this document useful (0 votes)
5 views11 pages

Data Structure en

The Data Structure course, offered in English, covers fundamental concepts, various data structures, and algorithms with a focus on performance analysis. It includes lectures, programming practice, and case studies, with a total of 80 teaching hours and a grading plan based on presence, assignments, experiments, and a final exam. Key topics include lists, stacks, queues, trees, graphs, searching, and sorting algorithms, supported by a required textbook and practical experiments.

Uploaded by

srinivaspranav52
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views11 pages

Data Structure en

The Data Structure course, offered in English, covers fundamental concepts, various data structures, and algorithms with a focus on performance analysis. It includes lectures, programming practice, and case studies, with a total of 80 teaching hours and a grading plan based on presence, assignments, experiments, and a final exam. Key topics include lists, stacks, queues, trees, graphs, searching, and sorting algorithms, supported by a required textbook and practical experiments.

Uploaded by

srinivaspranav52
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 11

Course name: Data Structure

Teaching medium: English

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.

C. COURSE OBJECTIVES (five or six objectives; general but comprehensive)


Objective 1: Understand basic concepts about data structure, master the method to describe algorithms,
understand the concept of time and space complexity, and master how to analyze them.
Objective 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.
Objective 3: Understand the concept of searching and sorting, master various searching and sorting
algorithms, be able to analyze the performance of those algorithms.
Objective 4: Be able to organize the data reasonably according to the practical problems, and to effectively
store the data in the computer.
Objective 5: Bear the ability to design and analyze algorithms for solving engineering problems.
Objective 6: Be able to implement the algorithm through the specific programming language.

D. COURSE TOPICS/UNITS AND DATES

Schedule
Content Teaching Method
Theory Practice

Chapter 1. Introduction 4 0 Teaching, case study, self-learning

Chapter 2. List 6 4 Teaching, demonstration


Chapter 3. Stack and
6 4 Teaching, case study
Queue
Chapter 4. Tree 14 8 Teaching, case study, demonstration

Chapter 5. Graph 8 8 Teaching, demonstration

Chapter 6. Search 4 4 Teaching, case study, demonstration

Chapter 7. Sort 6 4 Teaching, case study, demonstration

Total 48 32

E. TEXTBOOK(S) AND REQUIRED TOOLS OR SUPPLIES


Textbook (required): Data Structures and Algorithm Analysis (C++)
Supplies and/or tools: PC and VS.net IDE

F. GRADING PLAN

Method Requirement Weight Remarks

Presence Each presence will get 10 points, in total 10 times. 10%

Assignment 5 times experiment average 10%

Experiment 5 times experiment average 10% Appendix 1

Final exam Close-book 70%

Appendix 1: Grading content and grading standard for experiment


Grading content and weight
No Content Weight Requirement
1 Preview 20% Prepare the relevant code in advance
2 Programming skill 60% Provide the correct result
3 Report 20% Clear and on time

Note: The detailed grading standard please see following table.

Grading standard (full mark: 100)


Excellent(100- Average(70-
Item Good(80-89) Fair(60-69) fail(<=59)
90) 79)

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’’

G. COURSE COMPONENT SPECIFICS


Chapter 1 Introduction
Supported Course Objectives: A.1. Understand basic concepts about data structure, master the method
to describe algorithms, understand the concept of time and space complexity, and master how to analyze
them.
A. Contents and Methods
1. Become aware of structured design and object-oriented programming methodologies. (Teaching
and self-learning)
2. Learn about the abstract data type (ADT). Explore how classes are used to implement ADT.
(Teaching and case study)
3. Become aware of team work and interaction. (Teaching)
4. Understand the complexity of algorithms. (Teaching and case study)
B. Basic requirements for knowledge, ability and quality
1. Understand the nature of the course, tasks and purpose.
2. Review the concepts of object-oriented programming.
3. Become aware of the abstract data types and how classes are used to implement ADT.
C. Key points and difficulties
Key points
1. The tasks of data structure.
2. Abstract data type
3. Time and space complexity
Difficulties
1. Time complexity.
2. Space complexity

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 3 Stack and Queue


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 stack, examine various stack operations. (Teaching)
2. Learn how to implement a stack as an array. (Teaching)
3. Learn how to implement a stack as a linked list. (Teaching)
4. Discover stack applications. (Teaching and case study)
5. Learn about queue, examine various queue operations. (Teaching)
6. Learn how to implement a queue as an array. (Teaching)
7. Learn how to implement a queue as a linked list. (Teaching)
8. Discover queue applications. (Teaching and case study)
B. Objectives
1. Understanding the Last in First out (LIFO) data structure.
2. Be familiar with two basic ways to implement stack.
3. Understanding the First in First out (FIFO) data structure.
4. Be familiar with two basic ways to implement queue.
5. Learn about common application for queues.
C. Key points and difficulties
Key points
1. Implementation of stack.
2. Implementation of queue.
3. Recursion
Difficulties
1. Circular queue.
2. Recursion

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

Other Projects and Activities

ID Title Hours Category Requirement Comments

A List operations 3 Design Mandatory

B Binary tree operations 3 Design Mandatory


C Graph operations 3 Verification Mandatory

D Search operations 3 Design Mandatory

E Sorting operations 3 Verification Mandatory

Experiment A. List operations


1. Content
Singular linked list construction, merge and output.
2. Purpose
Get familiar with Visual C++.
Master these basic operations of singular linked list.
3. Question
1) Input 5 integers, construct a sorted linked list, and output this linked list.
2) Input another 5 integers, construct a sorted linked list, and output this linked list.
3) Merge these two sorted linked lists into one sorted linked list, the space complexity should be
O(1), output the linked list
4. Equipment
PC and VS.net IDE

Experiment B. Binary tree operations


1. Content
Construct a binary tree and traverse it.
2. Purpose
1) Master the usage of pointers.
2) Master the structure of binary tree.
3) Master the way to process binary tree with pointer.
4) Master the usage of stacks and queues.
3. Question
1) Construct a binary tree in preorder, “#” represent blank.
2) Traverse this binary tree in inorder and postorder
3) Calculate the depth of this tree and output it.
4) Implement non-recursive preorder traverse algorithm with stack.
5) Implement level order traverse with queue.
4. Equipment
PC and VS.net IDE

Experiment C. Graph operations


1. Content
Construct a graph and traverse it.
2. Purpose
1) Master the two implementations of graph, i.e., adjacency matrix and adjacency list.
2) Master two ways to traverse the graph, i.e., depth-first and breadth-first.
3. Question
1) Construct an undirected graph with adjacency matrix or list.
2) Traverse this graph in depth-first manner and output the sequence.
3) Traverse this graph in breadth-first manner and output the sequence.
4. Equipment
PC and VS.net IDE

Experiment D. Search operations


1. Content
Construct a binary search tree, and search in a binary search tree.
2. Purpose
1) Get familiar with the definition of binary search tree.
2) Get familiar with the construction of binary search tree.
3) Get familiar with the search operation in a binary search tree.
3. Question
1) Construct a binary search tree from the keyboard input.
2) Traverse this binary tree in preorder, inorder, and postorder.
3) Search the binary search tree for a specific number.
4. Equipment
PC and VS.net IDE

Experiment E. Sorting operations


1. Content
Quick sort.
2. Purpose
1) Get familiar with the idea of various sorting algorithms.
2) Understand quick sort algorithm.
3. Question
1) Input 8 integers from the keyboard.
2) Sort these 8 numbers in ascending order with quick sort.
4. Equipment
PC and VS.net IDE

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.

You might also like