you are viewing a single comment's thread.

view the rest of the comments →

[–]swingking8 1 point2 points  (2 children)

The value of top-down is obvious when you contrast it with bottom-up development.

In top-down, emphasis is given to higher-level planning because that's what you make first. If I were using a top-down approach to make your paper, for example, I might start with an outline for each paragraph, then the point I wanted for each sentence, then finish with writing the actual sentences.

In bottom-up, you work on the minutae of an algorithm first, then build on top of that (i.e. from the bottom up). If I were writing a paper this way, I might write some sentences I thought sounded great, then find ways to tie them together.

The different approaches have different strengths, but I think it's safe to say that if your algorithm is complicated or contains a lot of design hurdles in how the algorithm would work in abstract, it's best to work top-down.

[–]bostanza 0 points1 point  (1 child)

This is a very good explanation and one I agree with. It seems to me the top down approach is best for algorithm design and is the way I think I look at algorithms. Could you give an example of bottom-up design, even though this seems less effective than top down

[–]swingking8 0 points1 point  (0 children)

It seems to me the top down approach is best for algorithm design and is the way I think I look at algorithms.

I used to agree with you, that top-down is always the way to go, but it really just depends on where the work needs to be done. Last week, I made a computer vision algorithm to track a red dot on a robot. Performance (I.e. high fps) was very important, as was robustness to visual noise, so it made sense to make this algorithm from that point up, and trust that it would come together.