EdX

数据结构与算法第二部分 | Data Structures and Algorithms Part 2 (edX)

Offered by Peking University, PekingX,
数据结构与算法第二部分 | Data Structures and Algorithms Part 2 (edX)

这门课程将帮助学生学习如何运用数据结构和算法解决复杂的实际问题。 | This course will help students learn to use data and algorithms to solve complex real-world problems.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

课程介绍视频也可以_访问中国网站_
计算机是现代社会中用于解决问题的重要工具。利用计算机解决实际问题需要将问题抽象,并对数据进行操作,最后通过计算机程序求解问题。而本门课程主要内容就是对以上内容进行研究。
图灵奖获得者N.Wirth写了一本经典著作“程序=算法+数据结构”。数据结构,是抽象的表示数据的方式;算法,则是计算的一系列有效、通用的步骤。算法与数据结构是程序设计中相辅相成的两个方面。
我 们会围绕着“算法+数据结构=程序”的思路,以问题求解为导向进行学习。希望能够帮助大家提高理论、抽象、设计的能力。在扎实的经典理论基础上,运用问题 抽象、数据抽象、算法抽象来分析问题,应用适当的数据结构和算法来设计和实现相应的程序。通过课程学习,大家的抽象思维能力、问题求解能力将得到较大提 升,编程能力和代码质量会有质的飞跃!
在求解实际问题方面,我们会学习到通过权衡时空和其他资源开销,利用数据结构来组织数据、设计高效的算法、完成高质量的程序以满足错综复杂的实际应用需要。
此外,课程所学到的内容会被利用到计算机科学后续的各个课程中,如操作系统、软件工程、数据库概论、编译技术、计算机图形学、人机交互等。希望可以为大家将来从事计算机相关的学习、研究和开发工作打下扎实的基础。
本课程采用张铭主编的国家“十一五”规划教材《数据结构与算法》(高等教育出版社)。适合计算机以及相关理工专业的大二本科生学习,需要先修过计算概论等课程,具有结构化和面向对象的程序设计基础。
在 第一部分学完了线性表、栈与队列、字符串、二叉树、树和图这些基础数据结构之后,第二部分我们将深入学习排序、检索、索引、高级数据结构以及数据结构应用 等内容。涉及快速排序、外排序等各种经典排序算法,集合、散列、位图等检索方法,B/B+树、Trie树等索引结构,广义表、多维数组等高级线性结 构,AVL、红黑树、伸展树等平衡二叉树。第二部分课程持续8周,学习者每周在本课程上需要投入4-8小时。本课程的本次开设得到Google研究经费支 持。

Computers are an important tool for problem solving and are deeply involved in 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, Compiler Principles, 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, students will 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 should have 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.

What you'll learn
点击上方绿色按钮报名。

  • 帮助学生学习如何运用数据结构和算法解决复杂的实际问题
  • 算法+数据结构=程序”的思路,以问题求解为导向进行学习
  • 帮助大家提高理论、抽象、设计的能力
  • 为大家将来从事计算机相关的学习、研究和开发工作打下扎实的基础
  • 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
Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

JavaScript Introduction (edX) EdX
World Wide Web Consortium - W3C,W3Cx

JavaScript Introduction (edX)

Learn JavaScript, a Web development programming language, to add interactivity to your Web pages, and become an expert Web developer. This computer science course is an initiation to JavaScript programming and has been designed to help Web developers have an understanding of the basic concepts of the language. This course was developed in partnership between W3C and University Côte d'Azur.

Self Paced
Self-Paced
MATLAB et Octave pour débutants (edX) EdX
École Polytechnique Fédérale de Lausanne,EPFLx

MATLAB et Octave pour débutants (edX)

Premiers pas dans MATLAB et Octave avec un regard vers le calcul scientifique. Commencer à utiliser un logiciel est toujours délicat, on ne sait jamais par où commencer. Dans ce cours nous allons nous concentrer sur la maîtrise d’Octave et MATLAB, de façon à pouvoir par la suite continuer à apprendre de manière indépendante.

Self Paced
Self-Paced
IoT System Design: Software and Hardware Integration (edX) EdX
Waseda University,WasedaX

IoT System Design: Software and Hardware Integration (edX)

Start developing your own Internet of Things (IoT) system with this exploration of the interaction between software and hardware. This course is designed to teach you how systems are developed using IoT technology. Many engineers and developers tend to focus on a single discipline - either software or hardware. However, in today’s connected age it's critical to have a comprehensive understanding of both disciplines and how they are intertwined.

Self Paced
Self-Paced
HTML5 Coding Essentials and Best Practices (edX) EdX
World Wide Web Consortium - W3C,W3Cx

HTML5 Coding Essentials and Best Practices (edX)

Learn how to write Web pages and Web sites by mastering HTML5 coding techniques and best practices. HTML5 is the standard language of the Web, developed by W3C. For application developers and industry, HTML5 represents a set of features that people will be able to rely on for years to come. HTML5 is supported on a wide variety of devices, lowering the cost of creating rich applications to reach users everywhere.

Self Paced
Self-Paced
Python for Data Science (edX) EdX
University of California, San Diego,UC San DiegoX

Python for Data Science (edX)

Learn to use powerful, open-source, Python tools, including Pandas, Git and Matplotlib, to manipulate, analyze, and visualize complex datasets. In the information age, data is all around us. Within this data are answers to compelling questions across many societal domains (politics, business, science, etc.). But if you had access to a large dataset, would you be able to find the answers you seek?

Self Paced
Self-Paced
Computing in Python I: Fundamentals and Procedural Programming (edX) EdX
Georgia Institute of Technology,GTx

Computing in Python I: Fundamentals and Procedural Programming (edX)

Learn the fundamentals of computing in Python, including variables, operators, and writing and debugging your own programs. This course starts from the beginning, covering the basics of how a computer interprets lines of code; how to write programs, evaluate their output, and revise the code itself; how to work with variables and their changing values; and how to use mathematical, boolean, and relational operators.

Self Paced
Self-Paced
Algorithms and Data Structures Capstone (edX) EdX
University of California, San Diego,UC San DiegoX

Algorithms and Data Structures Capstone (edX)

Synthesize your knowledge of algorithms and biology to build your own software for solving a biological challenge. Building a fully-fledged algorithm to assemble genomes from DNA fragments on a real dataset is an enormous challenge with major demand in the multi-billion dollar biotech industry. In this capstone project, we will take the training wheels off and let you design your own optimized software program for genome sequencing.

Self Paced
Self-Paced
Programming for Data Science (edX) EdX
University of Adelaide,AdelaideX

Programming for Data Science (edX)

Learn how to apply fundamental programming concepts, computational thinking and data analysis techniques to solve real-world data science problems. There is a rising demand for people with the skills to work with Big Data sets and this course can start you on your journey through our Big Data MicroMasters program towards a recognised credential in this highly competitive area. Using practical activities you will learn how digital technologies work and will develop your coding skills through engaging and collaborative assignments.

Self Paced
Self-Paced
CSS Basics (edX) EdX
World Wide Web Consortium - W3C,W3Cx

CSS Basics (edX)

Learn, from Microsoft and W3C experts, how to take your Web pages from bland to bold with the power of CSS styling. Have you just begun your journey into Web development? This course will introduce you to the basics of Web design and teach you how to style your Web site for a professional look and feel.

Self Paced
Self-Paced