Special Thanks
Nakib Hayat Chowdhury
 Lesson 1 -
Introduction
 Md. Muktar Hossain
 Lecturer
 Dept. of Computer Science and Engineering
 Varendra University
 In this Class
 Structured Programming Language
 Why C is Structured Programming
 Language
 Importance of C
 Features of C
 How to develop a program
 Algorithm
 Flow Chart
 History of Programming Language
 Translator
 Structured Programming Language
 Structured programming, or modular programming, is a
 programming paradigm that facilitates the creation of
 programs with readable code and reusable components.
 Structured programming is a programming paradigm
 aimed at improving the clarity, quality, and development
 time of a computer program by making extensive use of
 structured control flow constructs like sequences, loops,
 and conditionals. This paradigm emphasizes the use of
 modular design and clear, understandable code.
 “C is a Structured Programming
 Language”
 Modularity: C allows programmers to break down a
 program into smaller, manageable pieces called
 functions. Each function performs a specific task, and
 these functions can be reused throughout the
 program. This promotes code reuse and makes the
 program easier to understand and maintain.
 Structured Control Flow: C provides constructs for
 structured control flow, such as loops (like for, while,
 and do-while loops) and conditionals (like if-else
 statements). These constructs enable programmers to
 control the flow of execution in a clear and structured
 manner.
 “C is Structured Programming Language”
 Clear Syntax: C has a simple and concise syntax that
 promotes readability and maintainability. Its syntax closely
 resembles the logical structure of algorithms, making it easier
 for programmers to express their ideas in code.
 Procedural Approach: C follows a procedural programming
 paradigm, where the program is organized as a series of
 procedures (functions) that operate on data. This approach
 emphasizes step-by-step procedure execution, making it easier
 to understand and debug programs.
Overall, C's support for modularity, structured control flow, clear
syntax, and procedural approach align it closely with the
principles of structured programming, making it an ideal language
for writing structured, maintainable, and efficient code.
 Why C?
 Operating System (OS)
 Embedded System (ES)
 Microcontroller based programming (Robotics)
 System Programming
 Programming Language Development
 Game Engine
 Programming Contest
Features of C Language
 How to Develop a Program
Step 1: Analyze the program to identify inputs, outputs and
 processing requirements.
Step 2: Identify various processing steps needed to solve the
 problem.
Step 3: Refine Step 2
Step 4: Add the syntax of the programming language
Step 5: Run the program and check it with different types of
 input to verify its correctness.
 Algorithm
 It is a complete step by step representation of the
 solution of the problem, represented in English like
 language.
 An algorithm can be quite abstract or quite detailed.
 Algorithm
 1. Start
 2. Read n1.
 3. Read n2.
 4. Calculate Sum = n1 +
 n2.
 5. Write the sum.
 6. Stop.
 Flow Chart
 Very popular method to represent the
 steps of the solution.
 Uses many graphical symbols and thus,
 is more understandable.
 The symbols used for various different
 types of statements/steps.
 Flow Chart Start
 Very popular method to represent the
 Read n1
 steps of the solution. Read n2
 Uses many graphical symbols and thus,
 is more understandable.
 The symbols used for various different Sum = n1 + n2
 types of statements/steps.
 Print Sum
 Stop
 Flowchart Symbols
 Beginning or end
 oval START
 of program
 Read n
Parallelogra or
 m Input or Output
 Print n
 Direction of logic
 flow
 Flowchart Symbols
Rectangular
 Processing Sum = a+b
 Diamond Decision If x>10 ?
 Connector
 Write a program to add two numbers
 Start
 Read n1
 Algorithm Read n2
1. Start
2. Read n1.
3. Read n2. Sum = n1 + n2
4. Calculate Sum = n1 +
n2.
5. Write the sum.
 Print Sum
6. Stop.
 Stop
 Write a program to find bigger one between two
 numbers
 Start
 Read n1
 Algorithm Read n2
1. Start
2. Read n1. Yes No
 if
3. Read n2. n1 >
4. If n1>n2. n2
 print n1 is ?
bigger Print n1 Print n2
5. else
 print n2 is
bigger
6. Stop. Stop
 Write a program to Find Sum of first n
 numbers Start
 Read n
 Algorithm i=1
1. Read n. Sum = 0
2. Initialize i=1.
3. Initialize sum, Sum=0. Sum = Sum + i
4. Calculate, Sum = Sum+i. i = i+1
5. Calculate, i = i+1. No
6. If i>n, then goto step 7 else goto step 4. If i >
7. Write the sum Sum. n?
8. Stop. Yes
 Print sum
 Stop
History of Programming Language
 Computer Programming
 Computer programming is the process of designing,
 writing, testing, debugging and maintaining the source
 code of computer programs.
 This source code is written in one or more programming
 languages (such as C++, C#, Java, Python, Smalltalk, etc.).
Type of Programming Language
 • Machine languages
 • Assembly languages
 • Higher-level languages
 Machine Languages
• Machine languages (first-generation languages) are the most basic type of
 computer languages, consisting of strings of numbers the computer's hardware
 can use.
• Different types of hardware use different machine code. For example, IBM
 computers use different machine language than Apple computers
Machine Languages : 83+(-2)
Machine Languages : 83+(-2)
 Assembly Languages
• Assembly languages (second-generation languages) are only somewhat easier to
 work with than machine languages.
• To create programs in assembly language, developers use cryptic English-like
 phrases to represent strings of numbers.
• The code is then translated into object code, using a translator called an
 assembler.
Assembly Languages : 83+(-2)
Assembly Languages : 83+(-2)
 Assembly
 code
Assembler
 Object code
 Higher-Level Languages
 Higher-level languages are more powerful than assembly language and allow
 the programmer to work in a more English-like environment.
 Higher-level programming languages are divided into three "generations," each
 more powerful than the last:
 • Third-generation languages
 • Fourth-generation languages
 • Fifth-generation languages
High Level Language : 83+(-2)
 Translator
 Translators are just computer programs which
 accept a program written in high level or low
 level language and produce an equivalent
 machine level program as output. Translators
 are of three types:
  Assembler
  Compiler
  Interpreter
 Assembler
 Assembler is used for converting the code of low level
 language (assembly language) into machine level
 language.
 Compiler
 The compiler is one kind of system software
 that translates the programs written in high
 level language to machine language.
 Interpreter
 The interpreter is a system software which use
 to convert high level language programs to
 machine language. But it convert one line at a
 time and execute it then it convert next line
 and so on.
 Compiler vs Interpreter
 A complier converts the high level instruction into machine
 language while an interpreter converts the high level instruction
 into an intermediate form.
 The compiler executes the entire program at a time, but the
 interpreter executes each and every line individually.
 List of errors is created by the compiler after the compilation
 process while an interpreter stops translating after the first error.
 Autonomous executable file is generated by the compiler while
 interpreter is compulsory for an interpreter program.
 Interpreter is smaller and simpler than compiler
 Interpreter is slower than compiler.
Thank You