# 数据结构与算法第二部分

## Data Structures and Algorithms Part 2

1090 次查看

edX
• 完成时间大约为 4
• 高级
• 英语, 中文

### 你将学到什么

Designing algorithms and using them to solve real-world problems.

How to think theoretically and abstractly to solve problems

How to analyze problems using data and algorithm abstraction

Organize data efficiently and make tradeoffs between space and time

### 课程概况

Computers are an important tool forproblemsolving and are deeply involvedin modern life.Computers perform operations on data. What is the logical relationship among data? How is data stored in computers? What algorithms are required to solve particular problems? These are the questions that will be answered in “Data Structures and Algorithms,” an important core course in Computer Science. The course also introduces students to fundamental data structures and classical algorithms used in more specialized courses,including Operating Systems, Software Engineering, Database Systems, CompilerPrinciples, Computer Graphics and Human Computer Interaction.

Niklaus Wirth described the important and indivisible link between algorithms and data structure in his book,Algorithms + Data Structures = Programs.

The course will build on Wirth’s ideas as it helps students improve their knowledge of theory and their ability to think abstractly to solve problems.Building on a solid theoretical foundation, studentswill analyze problems using data and algorithm abstraction. Students will learn how to organize data efficiently and make tradeoffs between space and time complexity, design efficient and effective algorithms, and implement high quality programs to solve complex real-world problems.After studying this course, students will be well prepared for further study and research in engineering and other computer-related areas.

This is an intermediate-level course appropriate for sophomore students majoring in computer science or other science/engineering disciplines. Students shouldhave learned “introduction to computing”,with the knowledge of structured and object-oriented programming.

This course is presented in two eight-week sessions. In session 1, we learnt Linear Lists, Stacks, Queues, Strings, Binary Trees, Trees and Graphs, which are fundamental data structures. In the second session, we will study advanced data structures and algorithms, such as Sorting, Searching, Indexing, as well as their applications thoroughly. More detailed, these chapters include a variety of classic Sorting algorithms (Quicksort, External Sorting), Searching methods (Sets, Hash Tables, Bitmaps), Indexing structures (B/B+ trees, Trie trees), Advanced List-Structure (generalized lists, Multi-dimensional arrays) and Balanced Binary Trees (AVL, Red-Black trees, Splay trees). The second part of the course lasts eight weeks. Each week, student will spend 4-8 hours to follow this course.

Students who score 60% or higher will receive an Honor Code Certificate.

The Autumn 2014 Sessions of this course are supported by Google.

The course’s content and exercises are both based upon C++ pseudo code. Programming assignments are automatically assessed by POJ which accepts code written in C/C++ and JAVA.

### 预备知识

Basic programming skills in C/C++.

Apple 广告
##### 声明：MOOC中国十分重视知识产权问题，我们发布之课程均源自下列机构，版权均归其所有，本站仅作报道收录并尊重其著作权益。感谢他们对MOOC事业做出的贡献！
• Coursera
• edX
• OpenLearning
• FutureLearn
• iversity
• Udacity
• NovoEd
• Canvas
• Open2Study
• ewant
• FUN
• IOC-Athlete-MOOC
• World-Science-U
• CourseSites
• opencourseworld
• ShareCourse
• gacco