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.
More info: https://www.edx.org/course/pekingx/pekingx-04830050x-shu-ju-jie-gou-yu-s...