Results for ""
Any system you design starts with a Problem Statement. Problems can be in any domain and for anyone. It can be in agriculture, medical, manufacturing, media, politics, education, etc. Solving a problem does not just mean building a system that is more accurate than a human. It also means bringing in efficiency or scalability in any process to achieve what is humanly not possible.
Let’s take travel for instance. In ancient times humans had to walk long distances. Later, he found that he could tame horses to move faster than he could. He then invented automobiles, followed by trains, airplanes, and now space shuttles for interplanetary travel. Though his initial intention was to not spend his energy too much and still go faster from one place to another (efficiency) eventually his progressive innovations enabled him to travel to space (scalability) which he could not have achieved at any cost if he had stuck to his foot.
I have written more about the Domain here: https://indiaai.gov.in/article/should-ai-still-be-a-distinct-branch-in-engineering.
System Design is about coming up with the end-to-end solution to the problem, starting from input(s) to the final output(s). This might contain software, hardware, process, etc. A self-driving car is an example of a system.
Today is the world of open-source software. If we do not stand on the shoulders of giants, we don’t make progress. In fact, it is this progressive nature of humans that has made him such a superior creature on the planet. Frameworks are the foundations created to jump-start our journey in any field and not reinvent the wheel. Some examples are TensorFlow, PyTorch, AWS, etc. There are two ways in which you interact with the framework; as a user and as a developer. A user will only build use cases with the framework, so he need not have an extensive software engineering background. A developer is one who designs and implements the framework with extensive software engineering. It is similar to Microsoft Office or similar tools; one who develops this is a Software Engineer, while one who uses it can be anyone who has basic computer knowledge.
Algorithms are general ways to solve a specific problem. The computations in the algorithms are such that they are not pen and paper friendly. You need a computer to execute them and that is how CS students were among the first to get the taste of it. But the world has become more digital and computerized now and programming isn’t only for CS graduates. It is for everyone who wants a computer to take up some of his workload and algorithms come along with it. Algorithms can be, using a decision tree, object detection, path planning, etc
Mathematics is the language of Nature. Everything in nature, whether living or non-living, micro or macro, earthly or heavenly, solid, liquid or gas, inherently abides by mathematics. Humans take it to the next step. They have also designed computers to make use of them for his benefit. Mathematics is what gives predictability to whatever happens in nature. Mathematics is basically about what transformation functions can be used to map inputs to outputs, how certain operations can be performed using matrices, finding solutions to equations, optimizing processes, etc.