220 likes | 243 Views
Introduction to Data Structure and algorithm Design. School of Computer Science, Fudan UnivERSITY Wu Yonghui. Contents. Goal for the Course Ideas for the Course Introduction to the Course. Goal for the Course. Goal
E N D
Introduction to Data Structure and algorithm Design School of Computer Science, FudanUnivERSITY Wu Yonghui
Contents • Goal for the Course • Ideas for the Course • Introduction to the Course
Goal for the Course • Goal • Polishing Students’ Programming Skills Solving Problems with Data Structures and Algorithms
Data Structures • Data structuresare ways of organizing data in programs to represent the real world • Integer, Real, Character, Array, Struct, Pointer • Linear List, Tree, Graph
Algorithms • Methods solving problems by programming
Pushing Boxes:PUSHing the box to the target cell • A two-dimensional maze composed of square cells which may or may not be filled with rock • You can move north, south, east or west one cell at a step • A box can be pushed to an adjacent free cell • Data Structure: How to represent it in a program? • Algorithm: How to solve it by programming?
Ideas for the course • Programming Knowledge System and Programming Strategies Solving Problems • Programming is a Technology • Programming Contests’ Problems used in the Course
Programming Knowledge System and Programming Strategies Solving Problems • A person’s professional ability • Programming Knowledge System and Programming Strategies Solving Problems
Programming Knowledge System and Programming Strategies Solving Problems • The programming knowledge system can be summarized as a famous formula: “Algorithms + Data Structures = Programs”. It is also the foundation for knowledge system of computer science and engineering. • Strategies solving problems are strategies for data modeling and algorithm design. When data models and algorithms for problems are not standard, what strategies we should take to solve these problems.
Pushing Boxes:PUSHing the box to the target cell • Data Structures: Graph, Queue • Algorithm: • Your pushing the box; • Your walking to the cell where you can push the box;
Programming is a Technology • [1] Practice, practice, practice ! • [2] Practice in a systematic way (with test data, solutions, and analysis ; based on programming knowledge system and programming strategies)
Programming Contests’ Problems • Programming Contests: • Contests Solving Problems by Programming • Programming Contests’ Problems: • Problem Description • Input • Output • Sample Input • Sample Output • Input==>Program==>Output • A program is accepted if and only if it passes all test cases.
Introduction to the Course • the Series of “for Collegiate Programming Contests and Education” • Data Structure Practice: for Collegiate Programming Contests and Education
the Series of “for Collegiate Programming Contest and Education”
Data Structure Practice: for Collegiate Programming Contests and Education
Used not only as an experiment book, but also for systematic programming contests’ training • 4 Sections, 14 chapters, 200 programming contest problems • Contents: • Section1 Fundamental Programming Skills • Section2 Experiments for Linear Lists • Section3 Experiments for Trees • Section4 Experiments for Graphs
Characters of the book • (1) Programming contest problems are used as experiments and homework. • (2) Not only analyses and solutions, or hints to problems are showed, but also test data for most of problems are provided. Sources and IDs for Online Judge for these problems are also given.
Courses & Experiments • [1] Introducing Knowledge Background • [2] Reading the Problem, thinking how to solve it • [3] Introducing Analysis • [4] Solving Problems by Programming (Experiments or Homeworks)