V Sem PPL
V Sem PPL
Page 2 of 149
Page 3 of 149
Rajeev Gandhi Memorial College of Engineering & Technology
( AUTONOMOUS )
Nandyal -518501
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
Class & Semester: III B.TECH I SEM SEC-A
Student List
Page 5 of 149
Rajeev Gandhi Memorial College of Engineering & Technology
( AUTONOMOUS )
Nandyal -518501
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
Class & Semester: III B.TECH I SEM SEC-B
Student List
Page 7 of 149
Rajeev Gandhi Memorial College of Engineering & Technology
( AUTONOMOUS )
Nandyal -518501
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
Class & Semester: III B.TECH I SEM SEC-C
Student List
Page 9 of 149
Page 10 of 149
Page 11 of 149
Page 12 of 149
Page 13 of 149
Page 14 of 149
Page 15 of 149
Page 16 of 149
Page 17 of 149
Page 18 of 149
Page 19 of 149
Page 20 of 149
Page 21 of 149
Page 22 of 149
Page 23 of 149
Page 24 of 149
Page 25 of 149
Page 26 of 149
College Code: 09
R-15
Rajeev Gandhi Memorial College of Engineering & Technology
Autonomous
NANDYAL-518501
III B. Tech. I-Semester Mid-I Examinations
PRINCIPLES OF PROGRAMMING LANGUAGES (Scheme of evaluation)
(CSE)
Max. Marks: 25 Date: 24/08/2019 Time: 2 Hours
Ans) The total cost of a programming language is a function of many of its characteristics. First,
there is the cost of training programmers to use the language. Second, there is the cost of writing
programs in the language. Third, there is the cost of compiling programs in the language. Fourth,
the cost of executing programs written in a language is greatly influenced by that language’s
design. The fifth factor in the cost of a language is the cost of the language implementation
system. Sixth, there is the cost of poor reliability. The final consideration is the cost of
maintaining programs, which includes both corrections and modifications to add new
functionality.
Ans) With dynamic type binding, the type of a variable is not specified by a declaration statement,
nor can it be determined by the spelling of its name. Instead, the variable is bound to a type when
it is assigned a value in an assignment statement.
Ans) A record is an aggregate of data elements in which the individual elements are identified by
names and accessed through offsets from the beginning of the structure. There is frequently a
need in programs to model a collection of data in which the individual elements are not of the
same type or size. For example, information about a college student might include name, student
number, grade point average, and so forth. A data type for such a collection might use a character
string for the name, an integer for the student number, a floating point for the grade point average,
and so forth. Records are designed for this kind of need.
Ans) A short-circuit evaluation of an expression is one in which the result is determined without
evaluating all of the operands and/or operators.
Ans) Programmers can alter the precedence and associativity rules by placing parentheses in
expressions. A parenthesized part of an expression has precedence over its adjacent
Page 27 of 149
unparenthesized parts. For example, although multiplication has precedence over addition, in the
expression
(A + B) * C
Q.2 a) Explain the formal method to describe the syntax of programming language? 3M
Ans) Backus-Naur Form:BNF is a natural notation for describing syntax. BNF uses abstractions for
syntactic structures.
The text on the left side of the arrow, which is aptly called the left-hand side (LHS), is the
abstraction being defined. The text to the right of the arrow is the definition of the LHS. It is
called the right-hand side (RHS) and consists of some mixture of tokens, lexemes, and
references to other abstractions. (Actually, tokens are also abstractions.) Altogether, the definition
is called a rule, or production. In the example rule just given, the abstractions <var> and
<expression> obviously must be defined for the <assign> definition to be useful.
The abstractions in a BNF description, or grammar, are often called nonterminal symbols, or
simply nonterminals, and the lexemes and tokens of the rules are called terminal symbols, or
simply terminals. A BNF description, or grammar, is a collection of rules.
Nonterminal symbols can have two or more distinct definitions, representing two or more
possible syntactic forms in the language. Multiple definitions can be written as a single rule, with
the different definitions separated by the symbol|, meaning logical OR.
The sentences of the language are generated through a sequence of applications of the rules,
beginning with a special nonterminal of the grammar called the start symbol. This sequence of
rule applications is called a derivation.
Page 28 of 149
Each of the strings in the derivation, including <program>, is called a sentential form.
In this derivation, the replaced nonterminal is always the leftmost nonterminal in the previous
sentential form. Derivations that use this order of replacement are called leftmost derivations.
Ans) Programming languages are often categorized into four bins: imperative, functional, logic, and
object oriented. However, we do not consider languages that support object-oriented
programming to form a separate category of languages. We have described how the most popular
languages that support object-oriented programming grew out of imperative languages. Although
the object-oriented software development paradigm differs significantly from the procedure-
oriented paradigm usually used with imperative languages, the extensions to an imperative
language required to support object-oriented programming are not intensive. For example, the
expressions, assignment statements, and control statements of C and Java are nearly identical. (On
the other hand, the arrays, subprograms, and semantics of Java are very different from those of
C.) Similar statements can be made for functional languages that support object-oriented
programming.
Another kind of language, the visual language, is a subcategory of the imperative languages.
The most popular visual languages are the .NET languages. These languages (or their
implementations) include capabilities for drag-and-drop generation of code segments. Such
languages were once called fourth-generation languages, although that name has fallen out of use.
The visual languages provide a simple way to generate graphical user interfaces to programs. For
example, using Visual Studio to develop software in the .NET languages, the code to produce a
display of a form control, such as a button or text box, can be created with a single keystroke.
These capabilities are now available in all of the .NET languages.
Q.3 a) What are the different character coding systems used in programming languages?-1M
Ans) The most commonly used coding was the 8-bit code ASCII (American Standard Code for
Information Interchange), which uses the values 0 to 127 to code 128 different characters. ISO
8859-1 is another 8-bit character code, but it allows 256 different characters. Ada 95+ uses ISO
8859-1.
In 1991, the Unicode Consortium published the UCS-2 standard, a 16-bit character set. This
character code is often called Unicode.
Q.3 b) Discuss about various numeric data types used in programming languages?-4M
Many early programming languages had only numeric primitive types. Numeric types still play a
central role among the collections of types supported by contemporary languages.
Integer : The most common primitive numeric data type is integer. Many computers now
support several sizes of integers. These sizes of integers, and often a few others, are supported by
some programming languages. For example, Java includes four signed integer sizes: byte, short,
int, and long.
Floating-Point : Floating-point data types model real numbers, but the representations are only
approximations for many real values. Floating-point values are represented as fractions and
exponents, a form that is borrowed from scientific notation. Older computers used a variety of
Page 29 of 149
different representations for floating-point values. However, most newer machines use the IEEE
Floating-Point Standard 754 format. Language implementers use whatever representation is
supported by the hardware. Most languages include two floating-point types, often called float
and double. The float type is the standard size, usually being stored in four bytes of memory. The
double type is provided for situations where larger fractional parts and/or a larger range of
exponents is needed. Double-precision variables usually occupy twice as much storage as float
variables and provide at least twice the number of bits of fraction.
Complex: Some programming languages support a complex data type—for example, Fortran
and Python. Complex values are represented as ordered pairs of floating-point values.
Decimal: Most larger computers that are designed to support business systems applications
have hardware support for decimal data types. Decimal data types store a fixed number of
decimal digits, with the decimal point at a fixed position in the value. These are the primary data
types for business data processing and are therefore essential to COBOL. C# and F# also have
decimal data types.
Decimal types have the advantage of being able to precisely store decimal values, at least those
within a restricted range, which cannot be done with floating-point. Decimal types are stored very
much like character strings, using binary codes for the decimal digits. These representations are
called binary coded decimal (BCD).
Ans) The primary design issues specific to arrays are the following:
• What types are legal for subscripts?
• Are subscripting expressions in element references range checked?
• When are subscript ranges bound?
• When does array allocation take place?
• Are ragged or rectangular multidimensional arrays allowed, or both?
• Can arrays be initialized when they have their storage allocated?
• What kinds of slices are allowed, if any?
Ans) The assignment statement is one of the central constructs in imperative languages.
Simple Assignments: Nearly all programming languages currently being used use the equal sign
for the assignment operator. All of these must use something different from an equal sign for the
equality relational operator to avoid confusion with their assignment operator. ALGOL 60
pioneered the use of := as the assignment operator, which avoids the confusion of assignment
with equality. Ada also uses this assignment operator.
Conditional Targets
Page 30 of 149
A compound assignment operator is a shorthand method of specifying a commonly needed
form of assignment. The form of assignment that can be abbreviated with this technique has the
destination variable also appearing as the first operand in the expression on the right side, as in
a=a+b
Compound assignment operators were introduced by ALGOL 68, were later adopted in a
slightly different form by C, and are part of the other C-based languages, as well as Perl,
JavaScript, Python, and Ruby. The syntax of these assignment operators is the catenation of the
desired binary operator to the = operator. For example,
sum += value;
is equivalent to
sum = sum + value;
The C-based languages, Perl, and JavaScript include two special unary arithmetic operators
that are actually abbreviated assignments. They combine increment and decrement operations
with assignment. The operators ++ for increment, and –– for decrement, can be used either in
expressions or to form stand-alone single-operator assignment statements. They can appear either
as prefix operators, meaning that they precede the operands, or as postfix operators, meaning that
they follow the operands. In the assignment Statement
sum = ++ count;
Assignment as an Expression
In the C-based languages, Perl, and JavaScript, the assignment statement producesa result,
which is the same as the value assigned to the target. It can therefore be used as an expression and
as an operand in other expressions. This design treats the assignment operator much like any other
binary operator,except that it has the side effect of changing its left operand. For example, in C, it
is common to write statements such as
Multiple Assignments
Several recent programming languages, including Perl, Ruby, and Lua, provide multiple-target,
multiple-source assignment statements. For example, in Perl one can write
Ans) A selection statement provides the means of choosing between two or more execution paths in
a program. Such statements are fundamental and essential parts of all programming languages.
Selection statements fall into two general categories: two-way and n-way, or multiple selection.
Although the two-way selection statements of contemporary imperative languages are quite
similar, there are some variations in their designs. The general form of a two-way selector is as
follows:
Page 31 of 149
if control_expression
then clause
else clause
In C89, which did not have a Boolean data type, arithmetic expressions were used as control
expressions. This can also be done in Python, C99, and C++. However, in those languages either
arithmetic or Boolean expressions can be used. In other contemporary languages, only Boolean
expressions can be used for control expressions. In many contemporary languages, the then and
else clauses appear as either single statements or compound statements. One variation of this is
Perl, in which all then and else clauses must be compound statements, even if they contain single
statements. Python uses indentation to specify compound statements.
Multiple-Selection Statements
The multiple-selection statement allows the selection of one of any number of statements or
statement groups. It is, therefore, a generalization of a selector. In fact, two-way selectors can be
built with a multiple selector. The need to choose from among more than two control paths in a
program is common. Although a multiple selector can be built from two-way selectors and gotos,
the resulting structures are cumbersome, unreliable, and difficult to write and read. Therefore, the
need for a special structure is clear.
The C multiple-selector statement, switch, which is also part of C++, Java, and JavaScript, is a
relatively primitive design. Its general form is
switch (expression) {
case constant_expression1:statement1;
...
case constantn: statement_n;
[default: statementn+1]
}
where the control expression and the constant expressions are some discrete type. This includes
integer types, as well as characters and enumeration types. The selectable statements can be
statement sequences, compound statements, or blocks. The optional default segment is for
unrepresented values of the control expression. If the value of the control expression is not
represented and no default segment is present, then the statement does nothing.
Page 32 of 149
The break statement, which is actually a restricted goto, is normally used for exiting switch
statements. The other way C#’s switch differs from that of its predecessors is that the control
expression and the case statements can be strings in C#. PHP’s switch uses the syntax of C’s
switch but allows more type flexibility.
The case values can be any of the PHP scalar types—string, integer, or double precision. As
with C, if there is no break at the end of the selected segment, execution continues into the next
segment.
Ruby has two forms of multiple-selection constructs, both of which are called case expressions
and both of which yield the value of the last expression evaluated. The only version of Ruby’s
case expressions that is described here is semantically similar to a list of nested if statements:
case
when Boolean_expression then expression
...
when Boolean_expression then expression
[else expression]
end
Ans) An unconditional branch statement transfers execution control to a specified location in the
program. The most heated debate in language design in the late 1960s was over the issue of
whether unconditional branching should be part of any high-level language, and if so, whether its
use should be restricted. The unconditional branch, or goto, is the most powerful statement for
controlling the flow of execution of a program’s statements. However, using the goto carelessly
can lead to serious problems. The goto has stunning power and great flexibility (all other control
structures can be built with goto and a selector), but it is this power that makes its use dangerous.
******
Page 33 of 149
Page 34 of 149
College Code: 09
R-15
Rajeev Gandhi Memorial College of Engineering & Technology
Autonomous
NANDYAL-518501
III B. Tech. I-Semester Mid-II Examinations
PRINCIPLES OF PROGRAMMING LANGUAGES (Scheme of evaluation)
(CSE)
Max. Marks: 25 Date: 01/11/2019 Time: 2 Hours
Ans) The execution of a function always produces the same result when given the same parameters.
This feature is called referential transparency. It makes the semantics of purely functional
languages far simpler than the semantics of the imperative languages.
Ans) All Java objects are explicit heap dynamic. Most are allocated with the new operator, but there
is no explicit deallocation operator.
Example:
class Simple{
private int x;
public void meth(){
//method body
}
}
class SimpleDemo{
public static void main(String[] args){
Simple obj=new Simple();
obj.meth();
}
}
Ans) In particular, the presence of variables in propositions requires resolution to find values for
those variables that allow the matching process to succeed. This process of determining useful
values for variables is called unification. The temporary assigning of values to variables to allow
unification is called instantiation.
Page 35 of 149
Instantiation occurs only in the resolution process. A variable that has not been assigned a
value is called uninstantiated
Ans) The parameters in the subprogram header are called formal parameters. They are sometimes
thought of as dummy variables because they are not variables in the usual sense: In most cases,
they are bound to storage only when the subprogram is called, and that binding is often through
some other program variables.
Subprogram call statements must include the name of the subprogram and a list of parameters
to be bound to the formal parameters of the subprogram. These parameters are called actual
parameters.
Ans) Parametric polymorphism is provided by a subprogram that takes generic parameters that are
used in type expressions that describe the types of the parameters of the subprogram. Different
instantiations of such subprograms can be given different generic parameters, producing
subprograms that take different types of parameters. Parametric definitions of subprograms all
behave the same. Parametrically polymorphic subprograms are often called generic subprograms.
Generic functions in C++ have the descriptive name of template functions. The definition of a
template function has the general form
template <template parameters> —a function definition that may include the template
parameters A template parameter (there must be at least one) has one of the forms
class identifier
typename identifier
The class form is used for type names. The typename form is used for passing a value to the
template function. For example, it is sometimes convenient to pass an integer value for the size of
an array in the template function.
Ans) An overloaded subprogram is a subprogram that has the same name as another subprogram
in the same referencing environment. Every version of an overloaded subprogram must have a
unique protocol; that is, it must be different from the others in the number, order, or types of its
parameters, and possibly in its return type if it is a function. The meaning of a call to an
overloaded subprogram is determined by the actual parameter list.
Users are also allowed to write multiple versions of subprograms with the same name in Ada,
Java, C++, C#, and F#. Once again, in C++, Java, and C# the most common user-defined
overloaded methods are constructors. Here is a simple example that illustrates method
overloading:
Ans) There are some situations in which a process must be executed regardless of whether a try
clause throws an exception and regardless of whether a thrown exception is caught in a method.
One example of such a situation is a file that must be closed. Another is if the method has some
external resource that must be freed in the method regardless of how the execution of the method
terminates. The finally clause was designed for these kinds of needs. A finally clause is placed at
the end of the list of handlers just after a complete try construct. In general, the try construct and
it’s finally clause appear as
try {
...
}
catch (. . .) {
...
}
. . . //** More handlers
finally {
...
}
Q.3 b) How exceptions are handled in Java? Explain with an example -3M
Ans) Java’s exception handling is based on that of C++, but it is designed to be more in line with the
object-oriented language paradigm. Furthermore, Java includes a collection of predefined
exceptions that are implicitly raised by the Java Virtual Machine ( JVM).
All Java exceptions are objects of classes that are descendants of the Throwable class. The Java
system includes two predefined exception classes that are subclasses of Throwable: Error and
Page 37 of 149
Exception. The Error class and its descendants are related to errors that are thrown by the Java
run-time system, such as running out of heap memory. The exception handlers of Java have the
same form as those of C++, except that every catch must have a parameter and the class of the
parameter must be a descendant of the predefined class Throwable. Throwing an exception is
quite simple. An instance of the exception class is given as the operand of the throw statement.
For example, suppose we define an exception named MyException as
class MyException extends Exception {
public MyException() {}
public MyException(String message) {
super (message);
}
}
The creation of the instance of the exception for the throw could be done separately from the
throw statement, as in
...
throw myExceptionObject;
Exceptions of class Error and RuntimeException and their descendants are called unchecked
exceptions. All other exceptions are called checked exceptions. Unchecked exceptions are never
a concern of the compiler. However, the compiler ensures that all checked exceptions a method
can throw are either listed in its throws clause or handled in the method.
There are no default exception handlers, and it is not possible to disable exceptions.
Ans) Functional languages can have a very simple syntactic structure. The list structure of LISP,
which is used for both code and data, clearly illustrates this. The syntax of the imperative
languages is much more complex. This makes them more difficult to learn and to use.
The semantics of functional languages is also simpler than that of the imperative languages.
Execution efficiency is another basis for comparison. When functional programs are
interpreted, they are of course much slower than their compiled imperative counterparts. Another
source of the difference in execution efficiency between functional and imperative programs is
the fact that imperative languages were designed to run efficiently on von Neumann architecture
computers, while the design of functional languages is based on mathematical functions. This
gives the imperative languages a large advantage.
Concurrent execution in the imperative languages is difficult to design and difficult to use. In a
pure functional language, it is much easier.
Page 38 of 149
Ans) As with programs in other languages, Prolog programs consist of collections of statements.
There are only a few kinds of statements in Prolog, but they can be complex. All Prolog
statement, as well as Prolog data, are constructed from terms. A Prolog term is a constant, a
variable, or a structure. A constant is either an atom or an integer. Atoms are the symbolic values
of Prolog. In particular, an atom is either a string of letters, digits, and underscores that begins
with a lowercase letter or a string of any printable ASCII characters delimited by apostrophes. A
variable is any string of letters, digits, and underscores that begins with an uppercase letter or an
underscore (_ ). Variables are not bound to types by declarations. The binding of a value, and thus
a type, to a variable is called an instantiation. Instantiation occurs only in the resolution process.
A variable that has not been assigned a value is called uninstantiated. The last kind of term is
called a structure. Structures represent the atomic propositions of predicate calculus.
Our discussion of Prolog statements begins with those statements used to construct the
hypotheses, or database of assumed information. Prolog has two basic statement forms; these
correspond to the headless and headed Horn clauses of predicate calculus. The simplest form of
headless Horn clause in Prolog is a single structure, which is interpreted as an unconditional
assertion, or fact. The following examples illustrate the kinds of facts one can have in a Prolog
program. Notice that every Prolog statement is terminated by a period.
female(shelley).
male(bill).
The other basic form of Prolog statement for constructing the database corresponds to a headed
Horn clause. This form can be related to a known theorem in mathematics from which a
conclusion can be drawn if the set of given conditions is satisfied. The right side is the antecedent,
or if part, and the left side is the consequent, or then part. If the antecedent of a Prolog statement
is true, then the consequent of the statement must also be true.
Conjunctions contain multiple terms that are separated by logical AND operations. In Prolog,
the AND operation is implied. The general form of the Prolog headed Horn clause statement is
consequence :- antecedent_expression.
So far, we have described the Prolog statements for logical propositions, which are used to
describe both known facts and rules that describe logical relationships among facts. These
statements are the basis for the theorem-proving model. The theorem is in the form of a
proposition that we want the system to either prove or disprove. In Prolog, these propositions are
called goals, or queries. The syntactic form of Prolog goal statements is identical to that of
headless Horn clauses.
Queries are called goals. When a goal is a compound proposition, each of the facts (structures)
is called a subgoal. To prove that a goal is true, the inferencing process must find a chain of
inference rules and/or facts in the database that connect the goal to one or more facts in the
database. Because the process of proving a subgoal is done through a proposition matching
process, it is sometimes called matching. In some cases, proving a subgoal is called satisfying
that subgoal.
There are two opposite approaches to attempting to match a given goal to a fact in the
database. The system can begin with the facts and rules of the database and attempt to find a
sequence of matches that lead to the goal. This approach is called bottom-up resolution, or
forward chaining. The alternative is to begin with the goal and attempt to find a sequence of
matching propositions that lead to some set of original facts in the database. This approach is
called top-down resolution, or backward chaining.
Prolog supports integer variables and integer arithmetic. Originally, the arithmetic operators
were functors. Prolog does not have assignment statements in the same sense as imperative
Page 39 of 149
languages. They are simply not needed in most of the programming for which Prolog was
designed.
Prolog has a built-in structure named trace that displays the instantiations of values to variables
at each step during the attempt to satisfy a given goal. trace is used to understand and debug
Prolog programs. The tracing model describes Prolog execution in terms of four events: (1) call,
which occurs at the beginning of an attempt to satisfy a goal, (2) exit, which occurs when a goal
has been satisfied, (3) redo, which occurs when backtrack causes an attempt to resatisfy a goal,
and (4) fail, which occurs when a goal fails.
Lists are sequences of any number of elements, where the elements can be atoms, atomic
propositions, or any other terms, including other lists. Prolog uses the syntax of ML and Haskell
to specify lists. The list elements are separated by commas, and the entire list is delimited by
square brackets, as in
Ans) An abstract data type is a data type that satisfies the following conditions:
• The representation of objects of the type is hidden from the program units that use the
type, so the only direct operations possible on those objects are those provided in the
type’s definition.
• The declarations of the type and the protocols of the operations on objects of the type,
which provide the type’s interface, are contained in a single syntactic unit. The type’s
interface does not depend on the representation of the objects or the implementation of the
operations. Also, other program units are allowed to create variables of the defined type.
Ans) Many functional programming languages have been developed. The oldest and most widely
used is LISP which was developed by John McCarthy at MIT in 1959.
There were only two categories of data objects in the original LISP: atoms and lists. List
elements are pairs, where the first part is the data of the element, which is a pointer to either an
atom or a nested list. The second part of a pair can be a pointer to an atom, a pointer to another
element, or the empty list. Elements are linked together in lists with the second parts. Atoms and
lists are not types in the sense that imperative languages have types. In fact, the original LISP was
a typeless language. Atoms are either symbols, in the form of identifiers, or numeric literals.
(A B C D)
Nested list structures are also specified by parentheses. For example, the list
(A (B C) D (E (F G)))
is a list of four elements. The first is the atom A; the second is the sublist (B C); the third is the
atom D; the fourth is the sublist (E (F G)), which has as its second element the sublist (F G).
Internally, a list is usually stored as linked list structure in which each node has two pointers, one
Page 40 of 149
to reference the data of the node and the other to form the linked list. A list is referenced by a
pointer to its first element.
Another feature of early LISP systems that was apparently accidental was the use of dynamic
scoping. Functions were evaluated in the environments of their callers.
******
Page 41 of 149
Page 42 of 149
Page 43 of 149
Page 44 of 149
Page 45 of 149
Page 46 of 149
Page 47 of 149
Page 48 of 149
Page 49 of 149
Page 50 of 149
Page 51 of 149
Page 52 of 149
Page 53 of 149
Page 54 of 149
Page 55 of 149
Page 56 of 149
Page 57 of 149
Page 58 of 149
Page 59 of 149
Page 60 of 149
Page 61 of 149
Page 62 of 149
Page 63 of 149
Page 64 of 149
Page 65 of 149
Page 66 of 149
Page 67 of 149
Page 68 of 149
Page 69 of 149
Page 70 of 149
Page 71 of 149
Page 72 of 149
Page 73 of 149
Page 74 of 149
Page 75 of 149
Page 76 of 149
Page 77 of 149
Page 78 of 149
Page 79 of 149
Page 80 of 149
Page 81 of 149
CO- PO Attainment Process
Academic Year 2019-20
Regulations R15
Year III Sem I
Batch 17
Branch CSE
Subject(Code) PPL (A0524155)
Name of the Faculty Mr. K.Janardhan
Q.No. CO 1 CO 2 CO 3 CO 4 CO 5 CO 6 Total
1 a) 2 2
b) 2 2
c) 2 2
d) 2 2
e) 2 2
f) 2 2
g) 2 2
2 a) 4 4
b) 4 4
c) 6 6
3 a) 4 4
b) 10 10
c) 0
4 a) 8 8
b) 6 6
c) 0
5 a) 6 6
b) 8 8
c) 0
6 a) 10 10
b) 4 4
c) 0
7 a) 10 10
b) 4 4
c) 0
Total 16 16 16 18 16 16 98
Mid I Marks --> Cos
Q.No. CO 1 CO 2 CO 3 CO 4 CO 5 CO 6 Total
1 a) 2 2
b) 2 2
c) 2 2
Page 82 of 149
d) 2 2
e) 2 2
2 a) 3 3
b) 2 2
3 a) 1 1
b) 4 4
4 a) 2 2
b) 3 3
5 a) 4 4
b) 1 1
Total 7 11 12 0 0 0 30
Q.No. CO 1 CO 2 CO 3 CO 4 CO 5 CO 6 Total
1 a) 2 2
b) 2 2
c) 2 2
d) 2 2
e) 2 2
2 a) 2 2
b) 3 3
3 a) 2 2
b) 3 3
4 a) 2 2
b) 3 3
5 a) 2 2
b) 3 3
Total 0 0 0 9 9 12 30
Total 7 11 12 9 9 12 60
Page 83 of 149
Total 1.66 1.66 1.66 1.66 1.66 1.66 10
70 25 5
0.7 0.25 0.05
% Weightage of each CO
CO 1 CO 2 CO 3 CO 4 CO 5 CO 6 Total
EM (%) 16.32653 16.32653 16.3265306 18.36735 16.32653 16.32653 100
IM (%) 11.66667 18.33333 20 15 15 20 100
AM (%) 16.6 16.6 16.6 16.6 16.6 16.6 100
Avg 15.17524 16.8419 17.2585714 17.43714 16.00857 17.25857 100
Final Total
Internal Assignment External
S.No Reg.No. Internal Final
marks marks Marks
marks Marks
1 15091A0501 8.75 5 14 35 21
2 16091A0526 9.75 5 15 36 21
3 16091A0551 7.75 5 13 40 27
4 16091A0563 8.75 5 14 45 31
5 16091A05E1 14.25 5 20 45 25
6 16091A05H0 10 5 15 35 20
7 17091A0502 13.25 5 19 49 30
8 17091A0503 21.75 5 27 64 37
9 17091A0506 11 5 16 48 32
10 17091A0507 12.5 5 18 47 29
11 17091A0508 5 5 10 26 16
12 17091A0509 5.25 5 11 31 20
13 17091A0510 15.25 5 21 51 30
14 17091A0511 18.25 5 24 58 34
15 17091A0512 20.5 5 26 62 36
16 17091A0513 21.75 5 27 79 52
17 17091A0514 14.75 5 20 53 33
18 17091A0515 21.5 5 27 67 40
19 17091A0516 22 5 27 69 42
20 17091A0517 13 5 18 48 30
21 17091A0518 19 5 24 76 52
22 17091A0519 17.75 5 23 64 41
23 17091A0520 15.75 5 21 68 47
24 17091A0521 13.5 5 19 55 36
Page 84 of 149
25 17091A0522 10.5 5 16 42 26
26 17091A0523 10 5 15 44 29
27 17091A0524 18.5 5 24 66 42
28 17091A0525 20 5 25 65 40
29 17091A0526 11 5 16 43 27
30 17091A0527 22.75 5 28 73 45
31 17091A0528 16.5 5 22 64 42
32 17091A0529 15.75 5 21 56 35
33 17091A0530 10.75 5 16 45 29
34 17091A0531 11.75 5 17 46 29
35 17091A0532 11.25 5 17 45 28
36 17091A0533 19.75 5 25 71 46
37 17091A0535 9 5 14 46 32
38 17091A0536 10.5 5 16 42 26
39 17091A0538 11 5 16 46 30
40 17091A0539 10.5 5 16 43 27
41 17091A0540 12.75 5 18 50 32
42 17091A0541 15 5 20 55 35
43 17091A0542 21.5 5 27 65 38
44 17091A0543 9.75 5 15 49 34
45 17091A0544 12.25 5 18 55 37
46 17091A0545 14.25 5 20 50 30
47 17091A0546 8.25 5 14 35 21
48 17091A0547 23 5 28 74 46
49 17091A0548 17.25 5 23 60 37
50 17091A0549 21 5 26 73 47
51 17091A0550 10.25 5 16 47 31
52 17091A0551 3.75 5 9 29 20
53 17091A0552 17.5 5 23 61 38
54 17091A0553 14.75 5 20 53 33
55 17091A0554 21 5 26 72 46
56 17091A0555 23.75 5 29 82 53
57 17091A0556 10.5 5 16 47 31
58 17091A0557 12.5 5 18 61 43
59 17091A0558 19 5 24 61 37
60 17091A0559 12.75 5 18 53 35
61 17091A0561 11.25 3.5 15 23 8
62 17091A0562 14.5 5 20 62 42
63 17091A0563 13.75 5 19 50 31
64 17091A0564 12.25 5 18 50 32
65 17091A0565 15.75 5 21 61 40
66 17091A0566 21.5 5 27 67 40
67 17091A0567 19.5 5 25 56 31
68 17091A0568 20.25 5 26 72 46
69 17091A0569 11.5 5 17 46 29
70 17091A0570 23.5 5 29 82 53
71 17091A0571 19.25 5 25 61 36
72 17091A0572 16.5 5 22 54 32
73 17091A0573 18 5 23 60 37
74 17091A0574 14.75 5 20 57 37
75 17091A0575 22.25 5 28 70 42
76 17091A0576 21 5 26 64 38
Page 85 of 149
77 17091A0577 13 5 18 48 30
78 17091A0578 11.25 5 17 26 9
79 17091A0579 17.25 5 23 62 39
80 17091A0580 8.25 5 14 43 29
81 17091A0581 13 5 18 47 29
82 17091A0582 18.25 5 24 61 37
83 17091A0583 18.5 5 24 67 43
84 17091A0585 9.75 5 15 48 33
85 17091A0586 23.25 5 29 85 56
86 17091A0587 10.5 5 16 45 29
87 17091A0589 12.5 5 18 54 36
88 17091A0590 21.5 5 27 66 39
89 17091A0591 10 5 15 51 36
90 17091A0592 10.5 5 16 49 33
91 17091A0593 4.75 5 10 40 30
92 17091A0594 10.75 5 16 45 29
93 17091A0595 13.75 5 19 49 30
94 17091A0596 18.5 5 24 56 32
95 17091A0597 11.5 5 17 45 28
96 17091A0598 13 5 18 54 36
97 17091A0599 13 5 18 50 32
98 17091A05A0 0.75 5 6 18 12
99 17091A05A1 9.75 5 15 46 31
100 17091A05A2 12 5 17 49 32
101 17091A05A3 19.75 5 25 65 40
102 17091A05A5 19.75 5 25 72 47
103 17091A05A6 15.75 5 21 60 39
104 17091A05A7 20.5 5 26 72 46
105 17091A05A8 17.75 5 23 64 41
106 17091A05A9 21 5 26 72 46
107 17091A05B0 13.5 5 19 56 37
108 17091A05B1 10 5 15 42 27
109 17091A05B3 13 5 18 50 32
110 17091A05B4 15.25 5 21 57 36
111 17091A05B5 9 5 14 46 32
112 17091A05B6 7.5 5 13 43 30
113 17091A05B7 22.25 5 28 72 44
114 17091A05B8 18.25 5 24 67 43
115 17091A05B9 14.5 5 20 51 31
116 17091A05C0 6.5 5 12 44 32
117 17091A05C1 19.5 5 25 63 38
118 17091A05C2 20.25 5 26 64 38
119 17091A05C3 18.75 5 24 65 41
120 17091A05C4 21.25 5 27 69 42
121 17091A05C5 11.25 5 17 52 35
122 17091A05C6 16 5 21 57 36
123 17091A05C8 20.75 5 26 66 40
124 17091A05C9 11.25 5 17 62 45
125 17091A05D0 17.75 5 23 58 35
126 17091A05D1 9 5 14 45 31
127 17091A05D3 14.25 5 20 52 32
128 17091A05D4 7.75 5 13 29 16
Page 86 of 149
129 17091A05D5 4.25 5 10 40 30
130 17091A05D6 21 5 26 76 50
131 17091A05D7 16.5 5 22 63 41
132 17091A05D8 12.75 5 18 51 33
133 17091A05D9 19.25 5 25 62 37
134 17091A05E0 2 5 7 41 34
135 17091A05E1 19.5 5 25 65 40
136 17091A05E2 7.5 5 13 43 30
137 17091A05E3 22.25 5 28 70 42
138 17091A05E4 15.5 5 21 60 39
139 17091A05E5 12 5 17 57 40
140 17091A05E6 10 5 15 47 32
141 17091A05E8 10.75 5 16 43 27
142 17091A05E9 14.5 5 20 57 37
143 17091A05F0 7.25 5 13 29 16
144 17091A05F1 14 5 19 58 39
145 17091A05F2 15 5 20 57 37
146 17091A05F3 18 5 23 52 29
147 17091A05F4 17.75 5 23 57 34
148 17091A05F5 13 5 18 45 27
149 17091A05F6 19.75 5 25 64 39
150 17091A05F7 18 5 23 67 44
151 17091A05F8 9.75 5 15 32 17
152 17091A05G0 20.5 5 26 70 44
153 17091A05G1 15 5 20 58 38
154 17091A05G2 19.25 5 25 59 34
155 17091A05G3 15.25 5 21 63 42
156 17091A05G5 17.75 5 23 67 44
157 17091A05G7 14.75 5 20 57 37
158 17091A05G8 21 5 26 76 50
159 17091A05G9 10.25 5 16 50 34
160 17091A05H0 20.75 5 26 64 38
161 17091A05H1 13.75 5 19 54 35
162 17091A05H2 20 5 25 72 47
163 17091A05H3 17.5 5 23 63 40
164 17091A05H4 9.75 5 15 43 28
165 17091A05H5 21.5 5 27 76 49
166 17091A05H6 17 5 22 61 39
167 17091A05H8 6.5 5 12 34 22
168 17091A05H9 9 5 14 40 26
169 18095A0501 10.75 5 16 47 31
% of % of % of
N CO 1 N CO 2 N CO 3 N CO 4 N CO 5 N CO 6
IM AM EM
55
CO 1 CO 2 CO 3 CO 4 CO 5 CO 6
No. No. No. No. No. No.
of of of of of of
Weig Weig Weig Weig Weig Weig
stud stud stud stud stud stud
htage htage htage htage htage htage
ents ents ents ents ents ents
Points Points Points Points Points Points
Attai Attai Attai Attai Attai Attai
ned ned ned ned ned ned
>= 55% 82 3 85 3 85 3 82 3 84 3 85 3
40% to 55% 73 2 66 2 65 2 71 2 69 2 65 2
<40% 14 1 18 1 19 1 16 1 16 1 19 1
Total No. of
169 169 169 169 169 169
students
Atainment
2.40 2.40 2.39 2.39 2.40 2.39
value
% of
48.52 50.30 50.30 48.52 49.70 50.30
Attainment
Attained or
NO YES YES NO NO YES
not
CO
Attainm PO PO PO PO PO PO PO PO PO PO PO PO PSO PSO PSO
CO
ent 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3
Value
CO
2.40 2 1 2 2 1 1 1 1
1
CO
2.40 2 1 1 1 2 2
2
CO
2.39 1 1 2 2 1
3
CO
2.39 2 1 1 1 1 2 2
4
CO
2.40 2 1 2 1 1 1 1 1 2 1
5
CO
2.39 2 1 1 1 1 1 1 1
6
Page 91 of 149
Page 92 of 149
Page 93 of 149
Page 94 of 149
Page 95 of 149
Page 96 of 149
Page 97 of 149
Page 98 of 149
Page 99 of 149
Page 100 of 149
Page 101 of 149
Page 102 of 149
Page 103 of 149
Page 104 of 149
Page 105 of 149
Page 106 of 149
Page 107 of 149
Page 108 of 149
Page 109 of 149
Page 110 of 149
Page 111 of 149
Page 112 of 149
Page 113 of 149
Page 114 of 149
Page 115 of 149
Page 116 of 149
Page 117 of 149
Page 118 of 149
Page 119 of 149
Page 120 of 149
Page 121 of 149
Page 122 of 149
Page 123 of 149
Page 124 of 149
Page 125 of 149
Page 126 of 149
Page 127 of 149
Page 128 of 149
Page 129 of 149
Page 130 of 149
Page 131 of 149
Page 132 of 149
Page 133 of 149
Page 134 of 149
Page 135 of 149
Page 136 of 149
Page 137 of 149
Page 138 of 149
Page 139 of 149
Page 140 of 149
Page 141 of 149
Page 142 of 149
Page 143 of 149
Page 144 of 149
Page 145 of 149
Page 146 of 149
Page 147 of 149
Page 148 of 149
Page 149 of 149