
What This Article Covers
The Differences Between Similar-Sounding IT Terms
When reading IT-related articles, you often come across the words algorithm, program, module, and model.
If you look at each term individually, none of them seems especially difficult.
An algorithm is a method for solving a problem, a program is code that runs on a computer, a module is a unit that makes up a program, and a model can be described as a structure that takes an input and produces some kind of result.
However, things become a little more confusing when these terms start appearing together in the same context.
You may understand that a program contains modules, but where does a model fit in?
If algorithms also process inputs and calculate results, how are they different from models?
Does every module always contain a model?
The reason this can be confusing is that these four terms are not concepts divided according to the same criteria.
A program is used when talking about overall execution, while a module describes how functions are divided. A model is closer to a structure that produces a specific result from a specific input, while an algorithm describes how a problem is processed.
That is why it is easier to understand these four terms by looking at how they work inside an actual program rather than memorizing their dictionary-style definitions separately.
Let us use a navigation program as an example.
How Does a Navigation Program Find a Route from Seoul to Busan?
Suppose a user enters a destination into a navigation program.
INPUT: Seoul → Busan
A recommended route does not appear immediately just because Seoul and Busan have been entered on the screen.
Several tasks take place internally.
First, the system needs to identify the current location. It also needs to identify the destination correctly. It must check road conditions and look at accident or road-control information as well.
Current traffic conditions alone may not be enough.
A road that is clear now may become heavily congested an hour later, and even when two routes have similar distances, their actual arrival times may be very different.
In such cases, the system may need functions that predict future traffic volume or estimated arrival time.
Once the necessary information is ready, multiple candidate routes are compared and the system calculates which route to recommend.
Finally, it displays routes for different modes of transportation, such as driving, public transportation, walking, and cycling.
OUTPUT: Recommended Routes by Transportation Mode
If we look more closely at this process, we can begin to see where programs, modules, models, and algorithms each appear.
A Program Makes the Entire Process Actually Run
First, there is the program.
A program is a collection of code and instructions written so that a computer can actually perform tasks.
When you use a navigation program, it receives user input, calls the necessary functions, performs various calculations, and then displays the results on the screen.
Running only the function that checks the current location does not make something a complete navigation program.
The destination must be searched, map information must be loaded, traffic information must be checked, routes must be calculated, and the final result must be shown to the user. These processes need to be connected and actually run together.
The same is true of a calculator program.
When a user enters numbers and an operator, the program checks the input, performs the calculation, and displays the result on the screen.
A word-processing program receives keyboard input and displays text, saves documents, loads them again, and runs functions such as printing.
When understanding the word program, it helps to think about what is actually being executed.
Program = something that connects multiple functions and processes so that the overall task actually works
A Module Divides the Work Inside a Program
If a program with many functions, such as a navigation program, were built as one enormous block of code, it would be difficult both to develop and to manage.
When a problem occurs, it would be hard to find what needs to be fixed, and changing one function could affect other functions.
For this reason, the functions of a program or system can be divided according to their roles.
This is where the concept of a module appears.
In a navigation program, the part that checks the current location and the part that processes traffic information can be separated.
A location-checking module handles functions related to the current location or destination.
A traffic-information module can receive real-time traffic information and accident information and handle traffic-related processing.
An online shopping mall works in a similar way.
Functions can be divided according to different types of work, such as member management, product management, orders, and payments.
The important point here is that a module should not simply be understood as a small program.
The key point of a module is not its size, but the separation of roles.
A company provides a simple analogy.
A single company may have an HR team, a finance team, and a sales team. Each department has different responsibilities, but all of them perform work for the same company.
Modules work in a similar way. Each module performs the function assigned to it while helping make up a larger program or system.
Module = a unit that divides the work of a program or system according to function or role
A Model Produces a Needed Result from a Specific Input
The term model requires a little more care.
In IT, the word model is used very broadly.
There are data models, system models, and statistical models.
Here, the explanation focuses on machine learning and AI models, which are frequently encountered in modern IT services.
A machine learning model learns the relationship between inputs and results from data, and when a new input is provided, it produces a result based on that learned relationship.
Suppose a navigation system needs to predict future traffic volume.
Inputs might include the time of day, day of the week, current traffic volume, and past traffic patterns.
A traffic-volume prediction model can use this information to predict how traffic volume on a particular road is likely to change.
A model that predicts arrival time might use distance, current traffic volume, road conditions, and past travel records as inputs.
It then produces an estimated travel time as its result.
The same structure appears in other fields as well.
A translation model receives a sentence and produces a sentence in another language, while an image-classification model receives an image and classifies what the image contains.
A recommendation model uses information such as a user’s usage history or interests to recommend products or content.
Each model has different inputs and outputs, but they share one common characteristic.
They receive the inputs given to them and produce the result they are responsible for.
At this point, the difference between a program and a model also becomes easier to see.
A navigation program runs the entire process from user input to the final screen output.
A traffic-volume prediction model, on the other hand, does not operate the entire navigation system. When the required information is passed to it, it simply returns the traffic prediction result it is responsible for.
That is why many programs, such as calculators and memo applications, can operate without any machine learning model at all.
Model = a structure that receives input and produces a specific result based on learned relationships
An Algorithm Is a Method for Solving a Problem
Now let us look at an algorithm.
There is not just one possible route from Seoul to Busan.
You could choose the shortest route.
You could also choose a slightly longer route if the estimated arrival time is shorter.
You might want a route with lower tolls, or one that avoids highways as much as possible.
The computer needs to know which routes to examine, what to compare first, and which conditions to apply in order to choose a final route from many candidates.
An algorithm is a defined method and procedure for solving a problem.
A route-search algorithm can be used to solve a route-finding problem.
Sorting algorithms are used to arrange numbers in a particular order, while encryption algorithms are used in processes that protect or transform data.
Machine learning also uses various algorithms to train models.
An important point when understanding algorithms is not to think of them only as components like programs or modules.
An algorithm does not primarily describe what task is assigned to something. It describes how the problem is solved.
Algorithm = a method and processing procedure for solving a problem
Why Algorithms and Programs Can Seem So Similar
Algorithms and programs are easy to confuse because they are often used very close to each other.
Because a route-search algorithm is ultimately executed on a computer, it may seem as though it is simply another program.
The difference is in the perspective.
An algorithm focuses on the solution method itself.
It deals with questions such as which candidate should be examined first, which conditions should be used for comparison, and when the calculation should stop.
A program is closer to an implemented executable system that includes those methods and makes the overall system run.
For example, even if a route-search method is written step by step on paper, it can still be an algorithm.
But that alone does not allow a user to search for a destination and view a route on a smartphone.
That algorithm must be implemented in code and connected with other functions such as maps, screens, and user input before it becomes part of an actual navigation program.
For this reason, thinking of an algorithm as a method and a program as execution can reduce much of the confusion.
A Module May Contain a Model, but It Does Not Have To
The relationship between modules and models is also commonly misunderstood.
Earlier, the traffic-information module was described as something that could use a traffic-volume prediction model and an arrival-time prediction model.
Looking only at this structure, it may seem as though a model is always contained inside a module.
That is not necessarily the case.
A traffic-information module may handle several tasks, such as receiving real-time traffic information, checking accident information, and organizing data.
It may use a model only when it needs to predict future traffic volume.
On the other hand, many modules do not require a model at all.
A location-checking module may perform its function using ordinary program code that receives GPS information and connects it with map data.
Payment modules, file-saving modules, and login modules also commonly operate without any relationship to machine learning models.
So if you memorize a module as simply a container that holds a model, you may become confused again when looking at other systems.
A module is divided according to the task it is responsible for, while a model is a structure that receives specific input and produces a result.
The two concepts are based on different classification criteria.
Algorithms Can Also Be Used Inside Modules
The same applies to algorithms and modules.
Just because a module is responsible for a particular function does not mean that the processing method for that function is fixed as one thing.
Suppose there is a module responsible for route-related functions.
Inside that module, the system may need to find candidate routes, compare routes, and sort results.
Different algorithms may be used for each of these processes.
A single module can use multiple algorithms, and the same algorithm can also be used across multiple programs or modules.
A sorting algorithm is a simple example.
It can be used to sort a list of members by name, and it can also be used to display products from lowest to highest price.
This is because an algorithm is not a concept that belongs to one specific program. It is a problem-solving method that can be implemented and used wherever it is needed.
Where Do Models and Algorithms Differ?
Among these four terms, models and algorithms are especially easy to confuse.
Both appear in processes that take inputs, process them, and produce results.
However, the difference becomes clearer when we return to the navigation example.
A traffic-volume prediction model predicts future traffic volume based on past and current traffic data.
A route-search algorithm, on the other hand, determines how to examine and compare multiple candidate routes using the information that has already been prepared.
For a model, the learned relationship is important.
For an algorithm, the method and procedure used to process a problem are important.
The two are not completely independent from each other, either.
A machine learning model does not simply appear on its own. Various training algorithms are used in the process of training a model with data.
Models and algorithms are therefore related, but they are not the same concept.
Finding the Four Concepts Again Inside a Navigation Program
If we return to the navigation example from the beginning, the structure can be viewed like this.
INPUT: Seoul → Busan
↓
Location-Checking Module
Checks the current location and destination.
↓
Traffic-Information Module
Processes real-time traffic information, accident information, and related data.
When necessary, it may use
a traffic-volume prediction model and an arrival-time prediction model to predict information needed for later processing.
↓
Route-Search Algorithm
Uses information such as location, traffic conditions, and estimated travel time to calculate and compare multiple candidate routes.
↓
OUTPUT: Recommended Routes by Transportation Mode
It displays routes the user can choose from, including driving, public transportation, walking, and cycling.
If the location-checking module or traffic-information module is taken out on its own, it does not become the entire navigation system.
A traffic-volume prediction model does not operate the entire navigation system either.
A route-search algorithm is also responsible only for one problem-solving method.
The complete executable system that connects all these functions and processes and makes everything work from user input to screen output is the navigation program.

Algorithms, Programs, Modules, and Models at a Glance
| Term | In the Simplest Terms | Question to Ask | Navigation Example |
|---|---|---|---|
| Program | Something that actually executes the overall task | What makes the entire process run? | Navigation program |
| Module | A unit divided by function and role | Which part is responsible for which task? | Location-checking module, traffic-information module |
| Model | A structure that receives input and produces a specific result | What information does it receive, and what result does it produce? | Traffic-volume prediction model, arrival-time prediction model |
| Algorithm | A method and procedure for processing a problem | How is this problem solved? | Route-search algorithm |
These Terms Are Easier to Understand When You Look at the Criteria First
If you place programs, modules, models, and algorithms in a single line and try to decide which is larger and which is smaller, exceptions will keep appearing.
That is because these terms were not originally defined according to the same criteria.
When looking at a program, think about overall execution.
When looking at a module, look at how functions and roles are divided.
When the word model appears, look at what kind of input it receives and what kind of result it produces.
With an algorithm, the important point is the method and order used to process the problem.
Once you understand these criteria, it becomes much easier to read the structure of other IT systems as well.
When you see the term payment module in an online shopping system, you can understand it as the part responsible for payment-related functions. When you see the term recommendation model, you can look at what information it receives and what kind of recommendation result it produces.
When you see the term sorting algorithm, you do not need to start by asking which part of the program it belongs to. The term describes how data is sorted.
Rather than memorizing the terms themselves, it is more important to distinguish what criterion each term is being used to describe.
DANA NOTES in One Line
A program executes the overall task, a module divides functions and roles, a model produces the required result from input, and an algorithm defines the method used to solve the problem.

