Before the programming
What is the programming
the process of creating a set of instructions, called code,
that a computer can understand and execute to perform a
specific task or solve a problem by using programming
Language
processing computer
human
What is the programming Languages
a set of rules and instructions that allows humans to
communicate with computers, enabling them to perform
specific tasks
Type of programming language
programming Languages
high level low level
Low-Level Language
A low-level language is a machine-oriented
programming language that provides
minimal abstraction from hardware,
offering direct control over memory and
system resources for maximum
performance and efficiency
High-Level Language
A high-level language is a human-readable
programming language that simplifies
coding by hiding complex hardware details,
letting developers focus on logic and
functionality
• Low-Level Language
• < Provide direct access to the computer’s hardware>
• < Require detailed knowledge of how a computer works >
• < Less user-friendly, making programming more challenging. >
• < Harder to find and solve errors in code >
• < Not easily adapted for use on different hardware >
• < Used mostly for specific tasks needing high performance or
precise control >
• • < often faster and use fewer system resources >
• < Examples include Binary code and Assembly languages like
MIPS or ARM >
Binary code is
the fundamental language of computers, consisting of sequences
of 0s and 1s
Example
Binary: 01001000 01100101 01101100 01101100 01101111
Text: "Hello“
each byte represents a character in ASCII
ASCII code is
stands for American Standard Code for Information
Interchange
assigns a unique numerical value to each character, allowing
computers to represent and process text
ASCII primarily uses 7 bits to represent 128 different characters
including letters (both uppercase and lowercase)
machine language is
the specific set of binary instructions that a computer's CPU can
directly understand and execute
This is the lowest-level programming language, directly understood
by a computer's CPU. It's composed of binary code instructions
that specify operations like addition, subtraction, data movement, etc.
Assembly Language is
It uses mnemonics to represent the operations that a processor
has to do
How Assembly Language Works
The mnemonic code that was written by the programmer was
converted into machine language (binary language) for execution.
An assembler is used to convert assembly code into machine
language. That machine code is stored in an executable file for the
sake of execution
Example
MOV AL, 5 ADD AL, 3 AL=?
High-Level Language
• < Designed to make writing code simpler and faster >
• < Allow developers to build large programs more easily >
• < Easier to find and fix mistakes >
• < Can work on different computers with minimal adjustments >
• < Usually slower in performance compared to machine-oriented
languages >
• < Provide many ready-made features to speed up coding >
• < Good for beginners and widely used for everyday software >
• < often faster and use fewer system resources >
• < Examples include Java, Ruby, Swift, and PHP. c++ >
As we said before, high-level languages use translators to be
understood by the computer. Let's take a look at how many types
of translators we have
Compilers
The language processor that reads the complete
source program written in high-level language as a
whole in one go and translates it into an equivalent
program in machine language
In a compiler, the source code is translated to object
code successfully if it is free of errors
recompile the source code again the object program
can be executed number of times without translating it
again.
Compilers
Source code Machine code
By any programming Compiler (0 and one)
language
Assembler
• is used to translate the program written in Assembly
language into machine code
• Assembler is basically the 1st interface that is able to
communicate humans with the machine
• code written in assembly language is some sort of
mnemonics(instructions) like ADD, MUL, MUX, SUB,
DIV, MOV and so on
• the assembler is basically able to convert
these mnemonics in binary code
Compilers
Source code Machine code
By Assembly Assemblers (0 and one)
language
Interpreters
• translation of a single statement of the source
program into machine code is done by a language
processor and executes immediately before moving on
to the next line
• If there is an error in the statement, the interpreter
terminates its translating process at that statement
and displays an error message
An Interpreter directly executes instructions written in
a programming or scripting language without
previously converting them to an object code or
machine code
Interpreters
One line of Source
Machine code
Code By any programming interpreter (0 and one)
language
Next line
Why programming ?
< Turn your ideas into real programs >
< Contributing to the development of the future
Programming is an essential part of modern
technological development, and is used in
education, painting, transportation, and more. >
< Developing logical thinking and problem-
solving skills Programming helps you think in an organized way and break down large problems
into simple, manageable steps >
< Programming is not limited to one type, but rather encompasses multiple fields, such as
flutter : mobile applications
back end developer
front end developer
artificial intelligence
cyber security
• We have many high level language as :
• Java
• C++
• C#
•C
• Python
What is the different between programming languages ?
All programming languages same target but different in syntax
syntax refers to the set of rules that dictate how a program should be structured and
written within a specific programming language
Each programming language is used in a specific track
C / C++ Uses:
Operating systems (Windows, Linux kernels).
Embedded systems.
Games (Game engines like Unreal).
High-performance software.
Training: Language basics OOP Data structures and algorithms
Operating systems / Embedded / Game development.
Problem solving
Java Uses:
Web apps
Mobile apps
Desktop software
Servers and backend
IoT and Big Data
It has huge libraries.
Banking and Enterprise Systems.
(especially Android) Core Java OOP Collections + Multithreading JDBC + Databases Spring /
Hibernate Microservices.
Python Uses:
Artificial Intelligence (AI, Machine Learning, Deep Learning).
Data Analysis (Pandas, NumPy).
Web (Django, Flask, FastAPI).
Scripting and Automation (Automation, Scripting).
Track: Basics OOP Data Analysis Libraries AI/ML Framework of your choice
(Django for web or TensorFlow for AI).
C# Uses:
Desktop applications (Windows Forms, WPF).
Games (Unity Engine).
Web applications (ASP.NET).
Trajectory: Basics OOP Windows / Web / Unity, depending on your interests.
JavaScript (JS) Uses:
Front-end React, Angular, Vue.
Back-end Node.js + Express.
Mobile Applications (React Native).
Structure: HTML + CSS JavaScript Basics Advanced JS Front-end Framework
(React) Node.js Full-stack Development.
SQL Uses:
Databases (MySQL, PostgreSQL, Oracle, SQL Server).
Tracks: Basics Joins Subqueries Stored Procedures Optimization.
Program Development Life Cycle (PDLC): •
Problem Definition: Identifying the problem that the software needs to solve and
defining its requirements. •
Problem Analysis: Analyzing the problem in detail, identifying inputs, processes, and
outputs. •
Algorithm Design: Developing a step-by-step solution to the problem, often using
pseudocode or flowcharts •
Coding: Writing the actual program code using a chosen programming language. •
Testing and Debugging: Testing the program to identify and fix errors (bugs). •
Maintenance: Ongoing support and updates to the software after deployment.