C Language Course Outline
C Language Course Outline
Fundamentals
1. Introduction to Programming
Program Definition
Advantages of Program
Algorithm
Flow Chart
Difference b/w Algorithm and Flow Chart
4. IDE of C Language
Editor
Preprocessors
Compiler/Interpreter
Debugger
Linker
Loader
Difference b/w Compiler & Interpreter
Introduction to Programming
Go To Home
Program
Definition: "A program is a precise sequence of steps to solve a particular problem.”
A set instructions that tells a computer what to do is called program. A computer works according to
the given instructions in the program .Computer programs are written in programming language. A
person who develop a program is called programmer.
It must include:
o Broken down simple & meaningful steps
o Steps should be numbered sequentially
o Steps should be descriptive and in simple English
-: Pseudo Code
In this part a algorithm converted in program.
It must include:
o Steps of algorithm is converted in to programming language
o The running time can be estimated in a more general manner by using Pseudo
Algorithm: Insertion-Sort
Input: A list L of integers of length n
Output: A sorted list L1 containing those integers present in L
Step 1: Keep a sorted list L1 which starts off empty
Step 2: Perform Step 3 for each element in the original list L
Step 3: Insert it into the correct position in the sorted list L1.
Step 4: Return the sorted list
Step 5: Stop
Here is a pseudo code which describes how the high level abstract process mentioned above
in the algorithm Insertion-Sort could be described in a more realistic way.
Example 1 (Algorithm)
Adding two numbers have the following logical steps
1 Start
2 Input A
3 Input B
4 Total =A+B
5 Print Total
6 Exit
Example 2 (Algorithm)
Input radius from user & calculate area of circle (Hint Area=3.14*radios*radios)
1 Star
2 Input radius in r
3 Area=3.14*r*r
4 print Area
5 Exit
Example 3 (Algorithm)
Sum of first fifty Natural numbers (1, 2, 3-----50)
1 Star
2 Sum=0
3 N=0
4 Repeat step 5 n 6 while (N<=50)
5 Sum=Sum+N
6 N=N+1
7 Print Sum
8 Exit
Advantages of Algorithm
o Reduce complexity
o Increased Flexibility
o Ease of Understanding
Input Output
o Process
Rectangle is used to represent process like mathematical
expressions
Sum=A+B
o Selection
Diamond is used to represent selection
N > 50
o Star/End
Oval is used to represent Star/End
Start End
o Flow Lines
Arrow is used to represent Flow Lines
o Connector
Circle is used to represent and combine different Flow Lines
o Function Call
Rectangle is used to represent Function Call with double
lines on right and left side. Function name with parameters
is written inside the rectangle
o Preparation
It is used for loop with condition
Flowchart can have only one start and one stop symbol
On-page connectors are referenced using numbers
Example Flowcharts
Here is the flowchart for going to the market to purchase a pen.
-: Flowcharts
1. Standard symbols are used to design Flowchart
2. Flow is more time consuming
3. It is difficult to modify
4. It is a graphical representation of solution
-: Algorithm
1. Simple English used to design Algorithm
2. It is less time consuming
3. It is easy to modify
4. It is a step by step process to solve a problem
Hardware without a set of programs to operate upon cannot be utilized and is useless.
To get a particular job done on the computer, relevant software should be loaded into the
hardware.
If the hardware is the 'heart' of a computer system, then the software is its 'soul'. Both are
complementary to each other.
Software
Software is a set of programs, which is designed to perform a well-defined function. A program is a
sequence of instructions written to solve a particular problem.
System Software
Application Software
System Software
The system software is a collection of programs designed to operate, control, and extend the processing
capabilities of the computer itself. System software is generally prepared by the computer
manufacturers. These software products comprise of programs written in low-level languages, which
interact with the hardware at a very basic level. System software serves as the interface between the
hardware and the end users.
Fast in speed
Difficult to design
Difficult to understand
Less interactive
Smaller in size
Difficult to manipulate
Application Software
Application software products are designed to satisfy a particular need of a particular environment. All
software applications prepared in the computer lab can come under the category of Application software.
Application software may consist of a single program, such as Microsoft's notepad for writing and editing
a simple text. It may also consist of a collection of programs, often called a software package, which
work together to accomplish a task, such as a spreadsheet package.
Payroll Software
Microsoft Word
Microsoft Excel
Microsoft PowerPoint
Easy to design
More interactive
Slow in speed
Easy to understand
Hardware Software
It has the permanent shape and structure, which It can be modified and reused, as it has no
cannot be modified. permanent shape and structure.
The external agents such as dust, mouse, insects, The external agents such as dust, mouse, insects,
humidity, heat, etc. can affect the hardware (as it is humidity, heat, etc. cannot affect (as it is not
tangible). tangible).
It takes in only machine language, i.e., lower level It takes in higher level language, easily readable by a
language. human being.
It is not affected by the computer bug or virus. It is affected by the computer bug or virus.
Over the last two decades, dozens of computer languages have been developed. Each of these
languages comes with its own set of vocabulary and rules, better known as syntax. Furthermore, while
writing the computer language, syntax has to be followed literally, as even a small mistake will result in
an error and not generate the required output.
High-level languages are very important, as they help in developing complex software and they have the
following advantages −
Unlike assembly language or machine language, users do not need to learn the high-level
language in order to work with it.
High-level languages are similar to natural languages, therefore, easy to learn and
understand.
High-level language is designed in such a way that it detects the errors immediately.
High-level language is easy to maintain and it can be easily modified.
High-level language makes development faster.
High-level language is comparatively cheaper to develop.
High-level language is easier to document.
Although a high-level language has many benefits, yet it also has a drawback. It has poor control on
machine/hardware.
They are faster than high level language. They are comparatively slower.
Low level languages are memory efficient. High level languages are not memory efficient.
Low level languages are difficult to learn. High level languages are easy to learn.
Programming in low level requires additional Programmings in high level do not require any
They are machine dependent and are not portable. They are machine independent and portable.
They are more error prone. They are less error prone.
software’s (Operating systems) and embedded as – desktop applications, websites, mobile software’s
applications. etc.