Programming Fundamentals
Computers solve problems based on the instructions we provide using a programming language. Programming forms the base for Software Development. Beginners who want to learn programming should have a basic understanding of how software/web application/mobile application/computer works. In this article, we will learn basic terminology related to Programming. Topics that we will cover are Programming, Problem solving, Programming Languages, Translators, Generation of Language, Algorithm and Flowchart. Each topic will consist of a very brief definition along with an example. These concepts will help you to create a base for your Programming knowledge before you learn other advanced topics.
Programming
Programming is the process of designing, writing, testing and maintaining the instructions that tell a computer how to perform specific operations. A programming language like Python, C++, Java etc. is used to write these instructions. Programming allows us to create software, websites, mobile applications and games.
Example: Write a python program that accepts two numbers from the user, adds them and displays the result on the screen.
Problem
A problem can be defined as any situation/task that needs solving. For computer science, a problem refers to a task that can be solved through logical steps and by a computer program. Before coding can happen, the programmer must first understand the problem and what input is needed, what process will happen, and what the output should be.
Example: Calculating the average marks of students from their obtained marks is a programming problem that requires a logical solution.
Problem Solving
Problem solving generally means working through details of a problem to reach a solution. It can be defined as the act of finding a problem, gathering its requirements, creating a solution and applying that solution to the problem effectively. In programming this means comprehending the problem, contriving an algorithm, coding the program, testing the program and debugging (fixing mistakes) if needed.
Example: To find the largest number in a list, a programmer compares each value one by one until the greatest value is found.
Programming Language
A programming language is a language that we use to tell a computer what to do. It has its set of rules and words that programmers use to make software. We use programming languages to make all sorts of things. Programming languages can be simple or complicated. The programming language is like a set of instructions that the computer can understand. We have programming languages that're close, to the computer hardware and programming languages that are not.
Example: Python is used for artificial intelligence, Java is widely used for Android applications, and C++ is commonly used for system software and game development.
High-Level Language
A high-level language is a language that people can easily read and write. This language uses words that're similar to the English language and it does not show the complicated parts of the computer. High-level languages make it easier for programmers to do their job. They can finish their work faster. The main thing, about high-level languages is that high-level languages are easy to understand and use. High-level languages are good because high-level languages help programmers and high-level languages make the work of programmers easier and faster.
Example: Python allows programmers to print a message simply by writing print("Hello World"), making it beginner-friendly compared to machine-level instructions.
Low-Level Language
A low-level language is a type of programming language that works closely with the computer’s hardware. The computers hardware is what makes the computer work. This low-level language is really good, at telling the computer’s hardware what to do. The computers hardware is very important because it is what makes the computer work. When we talk about a low-level language we are talking about something that works with the computer’s hardware. So, a low-level language gives you control over these things. You have to know a lot about the computer to write in a low-level language. It is not easy to learn and use a low-level language. Low-level languages are good for tasks because they can run very fast on the computer. Low-level languages are faster, than high-level languages. This is why low-level languages are useful. Low-level languages are a type of programming language that can do things that other low-level languages and high-level languages cannot do. Low-level languages are special because of this.
Example: Assembly language allows programmers to directly manipulate processor registers and memory, making it suitable for embedded systems and operating system development.
Machine Language
The computer language that is made up of digits which're 0s and 1s is called machine language. Machine language is the language that the computers processor can understand. It does what machine language says without needing anything to translate machine language first. The computers processor can just read machine language. Do what machine language says. Writing machine code is difficult because machine language instructions are lengthy and hard to remember. Machine language is just made up of 0s and 1s so it is not easy to write machine language.
Example: An instruction like 10110000 01100001 represents a machine-level command executed directly by the CPU.
Compiled Language
A compiled language is a type of programming language where the entire program is changed into machine code before it is run. This means that the program is put into a file that the computer can read fast. The program made with a compiled language works quickly. When we turn a compiled language program into machine code it also helps us find mistakes before we even try to run the compiled language program. We can find these mistakes before we run the compiled language program, which's really helpful.
Example: C++ programs are compiled using a compiler, producing an executable file that can run independently without recompiling each time.
Interpreted Language
When we talk about an interpreted language we are talking about a programming language where the computer does things one step at a time. It. Runs the instructions one at a time. This is what an interpreted language does. An interpreted language is really helpful. It finds mistakes when the program is running. So, an interpreted language is great, for finding errors. It shows us what is going wrong with the program as the interpreted language is running. The interpreted language helps us because it finds mistakes as it is running.
Example: Python programs are executed by the Python interpreter, allowing programmers to run scripts without creating a separate executable file.
Dynamically Typed Language
A typed language figures out what kind of data a variable holds while the program is running instead of before it starts. Programmers don't have to say what type of data a variable is, which makes writing code easier. Sometimes problems, with the type of data can show up when the program is actually running.
Example: In Python, writing x = 10 and later x = "Hello" is valid because the variable's type changes automatically.
Statically Typed Language
When you use a language that is statically typed you have to tell the computer what kind of data a variable can hold before you even run the program. The computer checks everything beforehand. This is really helpful because the computer can find a lot of mistakes that you might have made when you are working with typed languages. Typed languages are good, at finding mistakes early on which is a big plus when you are using statically typed languages to write your code. This makes your program more reliable because the language that is statically typed helps you.
Example: In C++, int age = 20; stores only integer values, and assigning text to the variable causes a compilation error.
Compiler
A compiler is a kind of software that takes a program written in a high-level language and turns it into machine language that the computer can understand. The compiler looks for mistakes, in the program like syntax errors and fixes them. It also makes the program run faster by generating code that the computer can execute quickly. This whole process of compilation only happens one time unless someone goes in and changes the program, which is called the source code. The compiler does all this work before the program is actually run. The computer can just execute the program without having to do any extra work.
Example: GCC is a popular compiler used to compile C and C++ programs into executable machine code.
Interpreter
If we use an interpreter, it's equivalent to having somebody who knows what the computer needs to do. One of the instructions is written each line, and the interpreter reads them. Follows directions. The interpreter does not create a file which can be played independently by the computer. Very useful if we are looking for errors in instructions, as when it discovers something that does not make sense, it turns away. This will make it easier for you to correct our errors in the instructions you give the interpreter. The interpreter is very helpful to those who make instructions and to computers to help them understand what is happening and to ensure that everything is functioning properly.
Example: The Python Interpreter reads each Python statement, translates it into machine instructions, and executes it instantly.
Assembler
An assembler is a kind of system software. It takes assembly language programs. Turns them into machine language that the computer can understand. This system software translates instructions like MOV, ADD and SUB into binary code. The computer processor can understand this binary code. People mainly use assemblers when they work with embedded systems and low-level programming. They use assemblers to write programs for these systems. Assembler software is very important, for this kind of work.
Example: An assembly instruction like MOV AX, 5 is translated into its corresponding binary machine code by an assembler.
1G (First Generation) Language
First Generation Language (1GL) refers to machine language, which consists entirely of binary digits. It is directly understood by computer hardware without requiring translation. Programming in 1GL is extremely difficult because programmers must write long sequences of binary instructions.
Example: Writing CPU instructions using combinations of zeros and ones to perform arithmetic operations is an example of first-generation programming.
2G (Second Generation) Language
The Second-Generation Language or 2GL for short is actually the assembly language. This assembly language uses symbols and codes called mnemonics, of the binary instructions that the computer understands. An assembler is what converts these mnemonics into the machine language that the computer can understand. The Second-Generation Language or 2GL is easier to work with than the machine language. You still need to know a lot, about the hardware to use it.
Example: Instructions such as ADD AX, BX or MOV CX, 10 are written in second-generation programming languages.
3G (Third Generation) Language
Third Generation Language or 3GL for short is a type of language that makes it easy for people to write programs. These Third-Generation Languages are, like English so they are simple to understand. They also support a few ways of organizing code like structured and object-oriented programming. When people make software, they usually use Third Generation Languages because they are so easy to work with. Most new software is made using Third Generation Languages.
Example: Python, Java, C, C++, and C# are third-generation languages used to build desktop applications, websites, games, and enterprise software.
4G (Fourth Generation) Language
Fourth Generation Language or 4GL for short is really good at solving problems with lines of code than other languages. We use Fourth Generation Language for things like managing databases making reports and building applications quickly. The thing about Fourth Generation Language is that it tells you what to do not how to do it. This means you do not have to know all the details, about how the computer will do the task you just tell the Fourth Generation Language what you want to happen.
Example: SQL is a fourth-generation language used to retrieve, update, and manage data stored in relational databases.
5G (Fifth Generation) Language
The Fifth-Generation Language is made to help with intelligence and expert systems and logical reasoning. This language is really different because you do not have to write out all the steps to solve a problem. You just tell the Fifth-Generation Language what you want to happen or what rules to follow. It figures out how to do it. The Fifth-Generation Language is used to solve problems by setting goals or constraints. Then the system finds a way to make it work.
Example: Prolog is a fifth-generation language commonly used in expert systems, knowledge representation, and logical problem-solving applications.
Algorithm
An algorithm is a set of steps that you follow to solve a problem. You do one thing, another and so on. A good algorithm is easy to understand. It works well. It always gives you the answer when you use it correctly. People usually figure out what the algorithm is before they start writing the code for the program. This way the algorithm helps them make a program that does what it is supposed to do.
Example: To calculate the sum of two numbers: start, input two numbers, add them, display the result, and stop.
Flow Chart
A flowchart is a picture that shows how an algorithm works. It uses symbols that are connected by arrows. These arrows show what happens first and what happens next in the algorithm. Flowcharts are really helpful, for programmers because they can see the logic of the program before they start writing the code. Flowcharts also make it easier for developers to talk to each other about the program they are making. The flowchart helps them understand how the program is supposed to work.
Example: A flowchart for checking whether a number is even includes input, decision, output, and termination symbols connected in logical order.
Summary of Article
Programming fundamentals give the knowledge needed to create software properly. Ideas like programming, solving problems, programming languages, tools that translate code, types of languages ways to plan steps and diagrams that show processes help new people see how computers follow instructions and handle real-life issues. Getting good at these basics makes it much simpler to learn subjects like data structures, object-oriented programming, databases, artificial intelligence and building software properly. It also gets students for good jobs, in computer science.
