Algorithm implementation vs Algorithm Design

Hi,
I wrote a code in Matlab using the examples provided by Matlab for an application to solve a problem. The code is a combination of examples and my individual input. Then, did I just implement the algorithm for the application or did I design and implement the algorithm to develop the solution?
Also is there a difference between code development and algorithm development?
Regards, Nish

6 Comments

What to implement and how depends entirely what problem you are solving. I'm not sure I really understand your question.
Hi Adam,
This is more of a general question. I saw that Algorithm development means a process of several steps such as
Steps in development of Algorithms (https://en.wikipedia.org/wiki/Algorithm_design)
Problem definition
Development of a model
Specification of Algorithm
Designing an Algorithm
Checking the correctness of Algorithm
Analysis of Algorithm
Implementation of Algorithm
Program testing
Documentation Preparation.
What is the difference between design and implementation? If I write a unique code using a combination of examples of code from the internet does it mean that I designed and implemented the underlying algorithm?
You can simplistically view it as:
  1. Design is pen and paper.
  2. Implementation is actually coding it.
You can design an algorithm in your head, you cannot implement it there.
Adam
Adam on 11 Sep 2017
Edited: Adam on 11 Sep 2017
Depending on the problem design and implementation sometimes merge together in that you implement a design off the top of your head as you go along, although technically the design is still what is in your head as the logical steps of how you solve the problem and the implementation is Matlab syntax to actually make that happen. Or, as José-Luis says, more often, perhaps, you will put those design ideas down on paper first - those will be the logical steps, they may be in pseudo-code (i.e. not any specific language, just some generic language that is understandable and looks code-like in structure, but not burdened by language-specific syntax). Alternatively it may be sentences or diagrams, whatever you prefer to help you understand what you want, but either way it is conceptual, not a program until you implement it.
Thank you Jose-Luis and Adam. As you say the logic is the algorithm which is in our head. So, while searching the internet I bumped into a code (an example/demo in matlab) that I found useful to implement my logic/algorithm. But that code didn't fully satisfy my logic/algorithm. So I had to do changes and modify and add code to the example code to fit so that I can deliver the solution. Then, did I still design and implement the logic/algorithm?
Adam
Adam on 11 Sep 2017
Edited: Adam on 11 Sep 2017
It depends what you are talking about here really. If you are talking about intellectual property and whether you can claim an algorithm as your own then that is a minefield I don't want to get into personally other than to say be very careful with picking up someone else's code, making 'some changes' and then claiming the solution as your own. At the very minimum you need to credit the work of the original author.
If you are just trying to understand the process then the separation is still that of logic vs physical code that makes the logic happen. If you are modifying an algorithm then your modifications will have a logical purpose (design) which you will then implement in addition to the original implementation.

Sign in to comment.

Answers (0)

Categories

Find more on Software Development Tools in Help Center and File Exchange

Asked:

on 11 Sep 2017

Edited:

on 11 Sep 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!