Class XI Programming Methodology Uploaded
Programming Methodology
Introduction
Learning to write computer program is very
much like learning any skill. First, we should understand the problems well and
then try to solve it in a logical manner. For example: We have read many books
available in the market for describing the car driving methods. However, we can
learn driving once we actually get into the car and start driving it. The same
logic is applied in computer programming also. Computer programming is the
process of writing, testing, troubleshooting, debugging and maintaining of a
computer program.
An effective program is that which gives
result of all different inputs, including wrong input also. While creating
program, we need to follow certain systematic approach. This systematic
approach comprises two steps/things, viz., program structure and program
representation. The program structure is implemented by using top-down or
bottom-up approach and is known as ‘popular approach’, while the program
representation plays an important role in making the program more readable and
understandable. 
What is a Good Program?
A Good Program means that it should produce
correct and faster results, taking into account all the memory constraints.
While making good program, we need to follow certain guidelines of programming
language for creating a successful program. The following is the list of good
programming habits that most people agree.
Clarity and Simplicity of Expression
Expressions are used to implement a
particular task. It is a combination of Operators, Operands and Constants. Any
expression used in the program should be understood by the user. The followings
are some of the points to be kept in mind while using expressions in a program.
        
i.           
Use library functions to make
programs more powerful
Example
To find output = x6
Output = X *X * X * X * X * X
We can use output = power (X, 6)
      
ii.           
Follow simplicity to maintain
the clarity of expression
Example
X = A+B –U +VY
A-B X+Y
Then, we can
write
X1 = (A+B) /
(A-B)
 X2 = (U+V*Y) / (X +Y)
 X = X1 –X2
     
iii.           
Avoid program tricks usage,
whose meaning is difficult to understand by the user.
Use of proper names for identifiers
Identifiers are user defined names. They
are used to name things. A name is associated with a function or data object
(constants and variables) and used to refer to that function or data object.
Identifiers are made up of letters (A-Z, a-z), digits (0-9), and the underscore
character ( _ ). They, however, must begin with a letter or underscore and not
with a digit.
(i) 
Give meaningful name for variable (data –object) and function. 
Example
To calculate Area of a Square
We use the variable names are Area and Side
Area = Side * Side. 
(ii) 
Use proper names for constants.
Example
¶ = 3.14 
Give Pi = 3.14 
(iii) Do not use same name like custom,
customer or account, accountant. 
(iv)Do not use one letter identifiers. 
Comments
A comment is a programming language
construct, which is used to embed programmer-readable annotations in the source
code of a computer program. Those annotations are potentially significant to
programmers but typically ignorable to compilers and interpreters. Comments are
usually added with the purpose of making the source code easy to understand.
Hence, add comments to your code in simple English language that describes the
function of the code and the reason for your decision to do it in a particular
way as well. They are generally categorized as either ‘block comment’ or ‘line
comment’. 
Indentation
Leading white space (spaces and taps) at
the beginning of each statement, which is used to determine the group of
statement, is known as ‘indentation’.
Following example program makes use of
comments and indentation to enhance the clarity and understanding of program.
//WAP
to check if a string is palindrome or not.
#include<iostream.h>
#include<conio.h>
void
main()
{
     clrscr();
     char string[80],c;
     cout<<"Enter string(max. 79
characters): ";
     cin.getline(string,80);
     //Loop to find the length of the string.
     for(int len=0;string[len]!='\0';len++);
     int i,j,flag=1;
     for(i=0,j=len-1;i<len/2;i++,j--)
     {
           if(string[i]!=string[j])
           {
                flag = 0;
                break;
           }
     }
     if(flag!=0)
           cout<<"It is a
palindrome.\n";
     else
           cout<<"It is not a
palindrome.\n";
     getch();
}
Characteristics of good programming
Every computer needs proper instruction set
(programs) to perform the required/assigned task. The quality of the program
depends upon the instructions given to it. However, it is required to
feed/provide the proper and correct instructions to the computer in order to
yield/provide a correct and desired output. Hence, a program should be developed
to ensure proper functionality of the computer and also should be easy to
understand. A computer program should have some important characteristics,
which are as follows: 
Flexibility
A program should be flexible enough to
handle most of the changes without having to rewrite the entire program. A
flexible program is used to serve many purposes. For example, CAD (Computer
Aided Design) software is used for different purposes such as; engineering
drafting, printing circuit board layout and design, architectural design, technical
drawing, industrial art, etc. Most of the programs are being developed for
certain period and they need updation during the course of time.
User Friendly
A program that can be easily understood by
a beginner is called ‘user friendly’. It must interact with user through
understandable messages. In addition, the proper message for the user to input
data and to display the result, besides making the program easily
understandable and modifiable. 
Portability
Portability refers to the ability of an
application to run on different platforms (operating systems) with or without
minimal changes. Since the change of platform is a common phenomenon nowadays,
due to the developments in hardware and the software, portability has to be
taken care of it. In case, a program is developed for a particular platform, it
would become obsolete after a certain period of time. At the same time, if a program
that is developed does have the ability to work on different platforms, it makes
software more useable. High language programs are often more portable than
assembly language programs. 
Reliability
It is the ability of a program to do its
intended function accurately even if there are even small changes in the
computer system. Moreover, the program must be able to handle unexpected
situation like wrong input or no input.  The
programs, which save such ability, are known as ‘reliable’. For example, if the
user does/gives wrong information to input, it should display a proper error
message. 
Self-Documenting Code
A source code, which uses suitable name for
the identifiers (variables and methods), is called self-documenting code. Also,
giving proper name for variables and methods would tell the reader of your code
clearly -what is it doing? Hence, a good program must have a self-documenting
code.
Problem solving process
The problem solving process starts with the
problem specifications and ends with a concrete (and correct) program.
Programming means a problem solving activity, which consists of four steps.
They are;
(i)  Understanding the problem; 
(ii)  Devising a plan; 
(iii)  Executing the plan; and 
(iv) Evaluation
Understanding the problem
The first step is to understand the problem
well.  It may be very difficult to
understand the problem but it is crucial. In general, one must find out the
output from the given data (input data) and assess the relationship between
input and output data. It is also important to verify whether the given
information is sufficient to solve the problem or not. 
Devising a plan
It means drawing an action plan to solve
the problem, once understood.  A plan is
devised from data processing to the result according to the relationship that
links both of them. If the problem is trivial, this step will not require much
thinking. 
Executing the plan
Once the plan is defined, it should follow
the plan of action completely and each element of the plan should be checked as
it is applied. In the course of execution, if any part of the plan is found to
be unsatisfactory, the plan should be revised. 
Evaluation
Finally, the result should be examined in
order to make sure that it is valid and that the problem has been solved
completely. 
Problem solving methodology
As we all know, there are many methods/approaches
available to solve a particular problem. However, the efficient way is to adopt
a systematic method of problem solving. The use of systematic method of problem
solving is crucial when we use a computer to solve a problem.  We introduce here a seven steps problem
solving method, which is closely related to the software life cycle (the
various stages in the life of a program), that can be adapted by each person to
solve the problem in their own style. They are given as under: 
1.  Problem Definition 
2.  Problem Analysis 
3.  Design the problem 
4.  Coding 
5.  Program Testing and Debugging 
6.  Documentation 
7.  Program Maintenance 
Problem Definition/Specification (Theme)
Computer programs are written to solve
problems posed by humankind.  Prior to
writing a program, one has to understand a description of the problem to solve.
This description may be very precise or vague, but nevertheless, it is
necessary/present. For instance,  if  you 
want  to  write 
a  program  to 
“Find  the  average 
of  five  numbers”, 
you should ask yourself:
“What does average mean exactly?”
“How to calculate average value?”
Posing such questions compels you to define
the problem very precisely. Once you are sure 
of  what  the 
problem  entails,  you 
must  write  down 
a  list  of 
specifications. Specifications are precise definitions of what
the program must do. It must include the following at least: 
1.      
Input: what data must be included as input and in which form? 
2.      
Output:  what data
must the program produce and in which form? 
(in  order  to solve the problem)
Note:  At  the 
end  of  the  problem  definition 
step,  you  should 
have  a  list 
of specifications.
Problem Analysis
In this step, the problem has to be
fragmented into smaller and manageable parts. The original problem has to be
analyzed and divided into a number of sub-problems as these sub-problems are
easier to solve and their solutions would become the components of the final
program. Each sub-problem is divided into further smaller ones and  this 
fragmentation  has  to  be  continued 
to  achieve  simple 
solutions.   The use of modular
programming is to get proper solution. 
Modular 
Programming: 
Modular  Programming  is 
the  act  of 
designing  and  writing programs  as  functions  (a 
large  program  is 
divided  into  the 
small  individual components) that
each one performs, a single well-defined function, which has minimal
interaction  between  the 
sub-programs.  It means that the
content of each function is cohesive and there is low coupling between them.
There are two methods available for modular programming. They are: top-down
design and bottom-updesign.
Top-Down design: The principles of top-down design dictate that a program should be divided
into a main module and its related module. 
Each  module  should 
also  be divided  into 
sub  modules  according 
to  software  engineering 
and  programming  style. The 
division  continues  till 
the  module  consists 
only  of  an 
elementary  process  that 
is intrinsically understood and cannot be further sub-divided. 
Bottom-up design:  Bottom-up design is just the
opposite of top-down design. It refers to 
a  style  of 
programming,  in  which, 
an  application  is 
constructed  with  existing primitives  of 
the  programming  language 
and  then  gradually 
more  and  more complicated features are added till
applications are written. In other words, 
initiating the  design  with 
simple  modules  and 
then  build  them 
into  more  complex 
structures ending at the top is bottom-up design. 
Designing the problem
Designing the problem can be expressed in
the form of 
Ø  Algorithm
Ø  Flowchart
Algorithm:  An 
algorithm  is  a 
set  of  instructions 
that  describe  a 
method  for  solving 
a problem.  It  is 
normally  given  in 
mix  of  computer 
code  and  English 
language.  This  is often called ‘pseudo-code’.
Flowchart:  The 
algorithm  is  represented 
in  the  form 
of  a  diagram 
with  action  boxes linked 
by  lines  showing 
the  order  in 
which  they  are 
executed.  This  is 
known  as  „the flow of control‟. It is the diagrammatic
representation of an algorithm.
Coding
The 
process  of  translating 
the  algorithm  into 
syntax of  a  given 
language  is  known 
as ‘Coding’.  Since  algorithm 
cannot  be  executed 
directly  by  the 
computer,  it  has 
to  be translated into a programming
language. 
Program Testing and Debugging
Program Testing means running the program,
executing all its instructions/ functions and testing the logic by entering
sample data in order to check the output. Debugging is the process of finding
and correcting the errors in the program code. 
Type of errors:  There are three types of
errors which generally occur during compilation and running a program. They are
(i) Syntax error; (ii) Logical error; and (iii) Runtime error. 
Syntax error:  Every programming language has
its own rules and regulations (syntax). If 
we  overcome  the 
particular  language  rules 
and  regulations,  the 
syntax  error  will appear (i.e. an error of language
resulting from code that does not conform to the syntax of the programming
language). It can be recognized during compilation time.
Semantics error: Semantics errors occur when statements are not meaningful.
Semantics refers to the set of rules which give the meaning of a statement. For
instance, the statement
X*Y=Z;
will result in a semantical error as an
expression cannot come on the left side of an assignment operator.
Logical 
error: Programmer  makes 
errors  while  writing 
program  that  is 
called  ‘logical error’. It is an
error in a program’s source code that results in incorrect or unexpected result.
It is a type of runtime error that may simply produce the wrong output or may
cause a program to crash while running. The logical error might only be noticed
during runtime, because it is often hidden in the source code and are typically
harder to find and debug.
Runtime 
error: A 
runtime  error  is 
an  error  that 
causes  abnormal  termination 
of program during running time. In general, the dividend is not a
constant but might be a number typed by you at runtime. In this case, division
by zero is illogical. Computers check for a “division by zero" error
during program execution, so that you can get a "division by zero"
error message at runtime, which will stop your program abnormally. This type of
error is called runtime error.
Documentation
The documentation includes the problem
definition, design documents, a description of the test perform, a history of
the program development and its different versions and a user’s manual.
Such  a 
manual  is  designed 
for  a  naive 
user  and  illustrates 
the preparation  of  input 
data,  running  the program 
and  obtaining  & 
interpreting  the results. 
Program maintenance
It 
is  not  directly 
part  of  the 
original  implementation  process, 
but  needs  special emphasis.  All 
activities  that  occur 
after  a  program 
operation  are  part 
of  the  program maintenance. Many large programs have
long life span that often exceed the lifetime of the hardware they run on.
Usually, the expenditure for the program maintenance will be more than the
developmental cost of the program.  The
program maintenance includes the following: 
Ø  Finding and eliminating previously undetected program errors; 
Ø  Modifying the current program, often to improve
its performance, or to adapt  to new laws or government regulations, or to adapt to a new hardware,
or to a new operating system; 
Ø  Adding new features or a better user interface,
or new capabilities to the program; and 
Ø  Updating the documentation. 
Maintenance is an important part of the
life cycle of a program. It is also important as far  as 
documentation  is  concerned, 
since  any  change 
pertaining  to  a 
program  will require  updating 
of  internal  as 
well  as  external 
documentation.  Maintenance
documentation will include results of the program development steps, design
documents, program code and test information.
 
 
Comments
Post a Comment