This course will instruct the students to master the basic methods of data organizing, representing and processing in computer science, train their problem-solving abilities in data structure and algorithm, and improve their algorithm designing and programming level. The course will lay a solid theoretical foundation for many IT-related follow-up courses, such as “Digital Image Processing and Image Communication”, “Network Technology and Application” and “Database Technology and Application”, which will benefit the development of non-numerical application software under the background of "Big Information". Besides, this course will help IT-related majors solve the problems of software design in their respective fields.
Including common data structures such as linear data structures, stacks and queues, arrays, trees and binary trees, collections, search trees, hash tables and graphs, this course will discuss recursive algorithms, typical searching algorithms and sorting algorithms and delivers basic methods of algorithm analysis.
By the end of this course, students should be able to (1) understand and master the common data structures such as linear data structures, stacks, queues, arrays, trees and graph from three aspects:data logical structure, storage structure, and operations; (2) implement the sorting and searching operations on the basis of various commonly-used data structures.; (3) acquire the ability to analyze time and space complexity of the algorithm; (4) process with appropriate data structure and effective algorithms to solve common application problems.
As a basic course in computer software design both theoretically and practically, this course will focus on abstract representation, algorithm design and algorithm implementation of various data.
Course Objective 1: Students can understand the basic concepts of data structures, become familiar with the basic methods to reasonably organize data, and form computational thinking to analyze relevant engineering problems in computer-applied fields, building a good theoretical basis for the follow-up major study and further software development.
Course Objective 2: Students can apply computational thinking to specific problems by analyzing the composition and logical relationship of data elements, designing flexible and efficient data storage structures, and implementing required operations to work out feasible research plans for complicated engineering problems in computer realm.
Course objective 3: Students can integrate basic theories with design methods of data structure to research and design individual data structure for complicated engineering problems in the computer application, and carry out feasibility study.
Grades for the onlie learning: 20%
Grades for the offline test: 30%
Grades for the experiment reports and final test: 50%
Advanced mathematics
C language programming
[1] Algorithms and Data Structures The Basic Toolbox[M]. Kurt Mehlhorn, Peter Sanders. Springer, 2008
[2]:Sartraj Sahni.Data Structures, Algorithms and Applications in C++(Second Edition)[M].Universities Press, 2005.