Khan Academy: "Sorting Algorithms"
The following lectures step through the programming life-cycle process for sorting. The programming process comprises requirements, design, implementation of the design in a programming language, and verification/validation. The last lecture adds maintenance, extending the process to a programming life-cycle process. Please realize that the states of the process overlap and do not have to be performed sequentially.
Watch the first the lecture. It specifies the requirements for the program. Again, our focus in this series of short lectures is not the syntax of the programming language used (i.e., Python), but the design (or algorithm) of the program and the data structures used. Then watch the second video, which designs the program. This design makes use of the list data structure and For and While control constructs.
Next, watch the third video, which implements the design in Python - the simple procedural and object-oriented language used in the Khan lectures. Then, watch the fourth video, which verifies the Python design and implementation by stepping through the program, line by line and function call by function call. Note that comments are used within the program to document design and implementation decisions or choices.
Finally, watch the fifth video. This video demonstrates the next stage of the programming process. Previously, we demonstrated the requirements, design, implementation, and verification stages of programming. The next stage illustrated in this lecture is maintenance. There are two types of maintenance: fixing bugs or errors in the program, and enhancements. This lecture enhances the program by improving its efficiency (relative to the number of statements used).
Source: https://www.khanacademy.org/
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.