A set of instructions that are defined to perform a specific computing task. This can be something as simple as performing addition or something more complex like modifying an image in an image editor. Programmers spend a majority of their time creating algorithms that are then debugged to ensure that they work properly and efficiently. The primary goal is to create efficient algorithms that use computing resources like RAM and CPU time with the maximum efficiency. Obviously, when an algorithm is badly written, it will be a drag on performance.