Year: 2025
Type: preprint
Abstract: This paper examines fundamental concepts in information technology and software engineering, with a focus on the distinctions and interdependencies between information, data, algorithms, and computer programs. It argues that, while computers are physical devices governed by physical laws, they are used to process abstract entities such as information and algorithms. To bridge this gap, the paper introduces the concept of coding systems—comprising alphabets, syntax, and semantics—as a way to represent abstract information as data. Similarly, it discusses how algorithms, as abstract problem-solving knowledge, must be implemented as executable programs using programming languages. The paper highlights the role of types in modern programming languages as abstractions that encapsulate coding systems, making software development more accessible and portable. Through examples and theoretical discussion, the paper underscores the importance of understanding these abstractions for effective software design and implementation, advocating for a deeper integration of engineering principles into software development practices. All examples are written in C# but are intended to be universal and general.
Author: Mariusz Postol
Institution: Lodz University of Technology
Language: English
Subfield: Artificial Intelligence
Field: Computer Science
Domain: Physical Sciences
Open Access status: gold
OpenAlex ID: W4413825378
