Test construction, validity, reliability, measurement
โ
Java Programming
OOP, inheritance, exception handling, collections
๐
Data Communication & Networks
OSI model, TCP/IP, subnetting, routing
โ๏ธ
Software Engineering & PM
SDLC, Agile, testing, project management
๐ข
Discrete Mathematics
Logic, graphs, combinatorics, cryptography
๐ Ed. 452: Assessment and Evaluation in Education
Master test construction, measurement concepts, validity, reliability, and evaluation techniques for effective teaching.
๐ Notes
โ MCQs
๐ Old Questions
โก Mini Quiz
1Assessment and Evaluation Concepts (8 hrs)
โผ
๐ Detailed Notes
1.1 Concept of Test, Measurement, Assessment and Evaluation
Test: A systematic procedure for measuring a sample of behavior. It is a tool or instrument used to measure knowledge, skills, attitudes, or other characteristics.
Measurement: The process of assigning numbers or labels to objects, events, or characteristics according to specific rules. It quantifies the degree or amount of a trait.
Assessment: The systematic process of gathering, analyzing, and interpreting information about student learning. It is broader than testing and includes various methods.
Evaluation: The process of making judgments about the value or worth of something based on assessment data. It involves comparing results against standards or objectives.
Remember T-MAE: Test โ Measurement โ Assessment โ Evaluation (from narrow to broad)
A teacher-made test is an assessment instrument prepared by the classroom teacher to measure student achievement on specific instructional objectives. Unlike standardized tests, these are tailored to specific classroom content and needs.
3.2 Purposes of Testing
Instructional: To guide teaching and learning
Grading: To assign marks/grades
Diagnostic: To identify learning difficulties
Selection: To select students for programs
Placement: To place students in appropriate groups
Counseling: To guide students in career choices
Curricular Decisions: To evaluate curriculum effectiveness
Policy Making: To inform educational policies
3.3 Types of Test Items
A. Subjective Test Items:
Essay Questions: Require extended written response
Exam Tip: For test construction questions, always mention: Planning (objectives + blueprint) โ Preparation (items + instructions + scoring key)
4Administration, Scoring and Analysis (10 hrs)
โผ
๐ Detailed Notes
4.1 Test Administration
Proper test administration ensures valid and reliable results:
Prepare testing environment (quiet, well-lit)
Provide clear instructions
Manage time effectively
Ensure uniform conditions for all test-takers
Handle test materials securely
4.2 Scoring Methods
Objective Items:
Right-wrong scoring (0 or full marks)
No partial credit
Subjective Items:
Analytic scoring: Break into components, score each
Holistic scoring: Overall impression score
Rubric-based scoring: Use predefined criteria
4.3 Statistical Analysis of Test Results
Measures of Central Tendency:
Mean: Average score. Formula: ฮฃX/N
Median: Middle score when arranged in order
Mode: Most frequently occurring score
Measures of Variability:
Range: Highest - Lowest score
Standard Deviation: Average deviation from mean. Formula: ฯ = โ(ฮฃ(X-M)ยฒ/N)
Variance: Square of standard deviation
4.4 Item Analysis
Difficulty Index (P): Proportion of students who answered correctly
Formula: P = R/N (where R = number correct, N = total students)
P = 0.20-0.80: Moderate difficulty (ideal)
P < 0.20: Too difficult
P > 0.80: Too easy
Discrimination Index (D): How well item differentiates between high and low performers
Formula: D = (Rแตค - Rโ)/N/โ (upper group correct - lower group correct)
D โฅ 0.40: Excellent
D = 0.30-0.39: Good
D = 0.20-0.29: Fair
D < 0.20: Poor (should be revised)
Remember: Difficulty = How many got it right (P). Discrimination = How well it separates good/bad students (D).
5Current Student Assessment System in Nepal (8 hrs)
โผ
๐ Detailed Notes
5.1 National Examination System
SEE (Secondary Education Examination):
Conducted at the end of Grade 10
Replaced SLC (School Leaving Certificate) in 2073 BS
Grade point system (GPA 0-4)
NEB (National Examinations Board):
Conducts Grade 11 and 12 examinations
Replaced HSEB (Higher Secondary Education Board)
5.2 Internal Assessment System
As per NEB guidelines, internal assessment contributes 25% to final grades:
Attendance: 5 marks
Class participation/activities: 5 marks
Project work/Assignment: 10 marks
Internal examination: 5 marks
5.3 Continuous Assessment System (CAS)
CAS involves regular assessment throughout the academic session rather than single final exams:
Regular quizzes and tests
Project works
Practical assessments
Portfolio assessment
5.4 Grading System
Grade
GPA
Percentage
Description
A+
4.0
90-100
Outstanding
A
3.6
80-89
Excellent
B+
3.2
70-79
Very Good
B
2.8
60-69
Good
C+
2.4
50-59
Satisfactory
C
2.0
40-49
Acceptable
D+
1.6
30-39
Partially Acceptable
D
1.2
20-29
Insufficient
E
0.8
Below 20
Very Insufficient
Exam Tip: For questions on Nepal's assessment system, mention: SEE, NEB, Internal Assessment (25%), CAS, and the GPA system.
๐ Old Questions with Answers
2079 - Short Question5 Marks
Differentiate between measurement and evaluation with examples.
Detailed Answer:
Aspect
Measurement
Evaluation
Definition
Process of assigning numbers to characteristics according to rules
Process of making judgments about value or worth
Focus
Quantification (how much)
Qualitative judgment (how good)
Result
Score, number, or grade
Decision, interpretation, or judgment
Example
A student scored 85 marks in math
The student's performance is excellent
Scope
Narrow - only quantifies
Broad - includes interpretation
Key Relationship: Measurement provides data for evaluation. Evaluation uses measurement data to make judgments. Example: Measuring height (5 feet) vs Evaluating if height is good for basketball.
2078 - Long Question10 Marks
Explain the different types of evaluation with their purposes, tools, and uses.
Detailed Answer:
1. Diagnostic Evaluation
Purpose: Identify learning difficulties, strengths, and weaknesses before instruction
What is validity? Describe the different types of validity.
Detailed Answer:
Definition: Validity refers to the extent to which a test measures what it claims to measure. It is the most important quality of a test.
Types of Validity:
1. Content Validity:
The extent to which test items represent the content domain being measured
Ensures all important topics are covered
Determined by expert judgment and test blueprint analysis
2. Criterion Validity:
The extent to which test scores correlate with an external criterion
Concurrent: Correlation with current performance (measured at same time)
Predictive: Prediction of future performance (measured later)
3. Construct Validity:
The extent to which test measures the theoretical construct it claims to measure
Example: Does an IQ test really measure intelligence?
Established through various studies over time
2079 - Long Question10 Marks
Explain the methods of estimating reliability with their advantages and limitations.
Detailed Answer:
1. Test-Retest Method
Procedure: Same test administered to same group twice with time gap
Advantages: Simple to conduct, uses same test
Limitations: Practice effect, memory effect, time gap issues
2. Parallel Forms Method
Procedure: Two equivalent forms given to same group
Advantages: No practice effect, tests content sampling
Limitations: Difficult to create truly parallel forms, time-consuming
3. Split-Half Method
Procedure: Test divided into two halves, scores correlated
Formula: Spearman-Brown: r = 2rโ/โ/(1+rโ/โ)
Advantages: Quick, single administration
Limitations: Affected by how items are split
4. Kuder-Richardson Method (KR-20)
Procedure: Internal consistency based on item statistics
Advantages: No need to split test, uses all items
Limitations: Only for dichotomous items, requires item analysis data
2080 - Short Question5 Marks
What is a specification chart? How is it prepared for test construction?
Detailed Answer:
Definition: A specification chart (or test blueprint) is a table that shows the distribution of test items across different content areas and cognitive levels. It ensures balanced coverage of the curriculum.
Steps to Prepare:
List Content Areas: Identify all topics/units to be tested
List Cognitive Levels: Use Bloom's taxonomy (Knowledge, Comprehension, Application, Analysis, Synthesis, Evaluation)
Decide Weightage: Allocate marks/time based on importance and teaching time
Create Matrix: Make a table with content areas as rows and cognitive levels as columns
Fill the Cells: Write number of items/marks for each cell
Review: Ensure total matches desired test length
Example Structure:
Content Area
Knowledge
Comprehension
Application
Total
Unit 1
2
2
1
5
Unit 2
2
3
2
7
Unit 3
3
2
3
8
Old questions are included in the Notes tab above.
โ ICT.Ed 455: Java Programming Language
Master object-oriented programming with Java - from basics to advanced concepts like inheritance, polymorphism, exception handling, and collections.
๐ Notes
โ MCQs
๐ Old Questions
โก Mini Quiz
1Introduction to Java (3 hrs)
โผ
๐ Detailed Notes
1.1 Java as a Programming Platform
Java is a high-level, object-oriented programming language developed by Sun Microsystems (now Oracle) in 1995. It is designed to be:
Platform Independent: "Write Once, Run Anywhere" (WORA) - Java code runs on any platform with JVM
Object-Oriented: Everything is organized in classes and objects
Secure: No direct memory access, bytecode verification
Robust: Strong type checking, automatic memory management
1.2 The Java "White Paper" Buzzwords
Feature
Description
Simple
Easy to learn, similar to C++ but removes complex features
Object-Oriented
Everything is an object, supports encapsulation, inheritance, polymorphism
Remember sizes: byte(1) < short(2) < int(4) < long(8). Float(4) and Double(8) follow the same pattern.
2.2 Control Flow Statements
Conditional Statements:
// if-else
if (condition) {
// code
} else if (anotherCondition) {
// code
} else {
// code
}
// switch-case
switch (variable) {
case value1:
// code
break;
case value2:
// code
break;
default:
// code
}
Loop Statements:
// for loop
for (int i = 0; i < 10; i++) {
// code
}
// while loop
while (condition) {
// code
}
// do-while loop
do {
// code
} while (condition);
// enhanced for loop (for-each)
for (Type item : collection) {
// code
}
Jump Statements:
break: Exits the loop or switch
continue: Skips current iteration
return: Exits method and returns value
2.3 Arrays in Java
// Declaration and initialization
int[] numbers = new int[5]; // size 5 array
int[] nums = {1, 2, 3, 4, 5}; // initialized array
int[][] matrix = new int[3][3]; // 2D array
// Array methods
int length = numbers.length; // get length
Arrays.sort(numbers); // sort array
Arrays.toString(numbers); // convert to string
Exam Tip: Array index starts at 0. Array length is a property (numbers.length), not a method.
3Objects and Classes (10 hrs)
โผ
๐ Detailed Notes
3.1 Object-Oriented Programming Concepts
Class: A blueprint/template that defines properties (fields) and behaviors (methods) of objects.
Object: An instance of a class. It has state (data) and behavior (methods).
// Class definition
public class Student {
// Fields (instance variables)
private String name;
private int age;
private static int studentCount = 0; // static variable
// Constructor
public Student(String name, int age) {
this.name = name;
this.age = age;
studentCount++;
}
// Methods
public void study() {
System.out.println(name + " is studying");
}
// Getters and Setters
public String getName() { return name; }
public void setName(String name) { this.name = name; }
// Static method
public static int getStudentCount() { return studentCount; }
}
3.2 The Four Pillars of OOP
1. Encapsulation: Wrapping data and methods together, hiding internal details
Uses private fields with public getters/setters
Protects data from unauthorized access
2. Inheritance: Creating new classes from existing ones
Uses 'extends' keyword
Child class inherits parent's fields and methods
Promotes code reusability
3. Polymorphism: Same interface, different implementations
Compile-time: Method overloading
Runtime: Method overriding
4. Abstraction: Hiding implementation details, showing only functionality
// Parent class
class Animal {
protected String name;
public void eat() {
System.out.println("Animal is eating");
}
}
// Child class
class Dog extends Animal {
public void bark() {
System.out.println("Dog is barking");
}
// Method overriding
@Override
public void eat() {
System.out.println("Dog is eating");
}
}
Types of Inheritance:
Single: One child extends one parent
Multilevel: A โ B โ C (chain)
Hierarchical: One parent, multiple children
Multiple: One child, multiple parents (NOT supported in Java with classes)
4.2 Polymorphism
Method Overloading (Compile-time Polymorphism):
class Calculator {
// Same method name, different parameters
int add(int a, int b) { return a + b; }
double add(double a, double b) { return a + b; }
int add(int a, int b, int c) { return a + b + c; }
}
Explain the four pillars of Object-Oriented Programming with examples.
Detailed Answer:
1. Encapsulation
Wrapping data (variables) and code (methods) together into a single unit (class) and hiding internal details from the outside world.
class Student {
private String name; // private data
private int age;
// public getters and setters
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
Benefits: Data hiding, controlled access, flexibility to change implementation
2. Inheritance
Creating new classes from existing ones, inheriting properties and behaviors. Promotes code reusability.
class Animal {
void eat() { System.out.println("Eating..."); }
}
class Dog extends Animal {
void bark() { System.out.println("Barking..."); }
}
Ability to take multiple forms. Same interface, different implementations.
// Method Overloading (Compile-time)
class Calculator {
int add(int a, int b) { return a + b; }
double add(double a, double b) { return a + b; }
}
// Method Overriding (Runtime)
class Parent {
void show() { System.out.println("Parent"); }
}
class Child extends Parent {
@Override
void show() { System.out.println("Child"); }
}
What is exception handling? Explain try-catch-finally with an example.
Detailed Answer:
Exception Handling: A mechanism to handle runtime errors gracefully without crashing the program. It separates error-handling code from normal code.
Keywords:
try: Block containing code that might throw exception
catch: Block that handles the exception
finally: Block that always executes (for cleanup)
throw: Explicitly throws an exception
throws: Declares exceptions in method signature
public class ExceptionDemo {
public static void main(String[] args) {
try {
int a = 10;
int b = 0;
int result = a / b; // Throws ArithmeticException
System.out.println("Result: " + result);
} catch (ArithmeticException e) {
System.out.println("Error: Cannot divide by zero!");
System.out.println("Exception message: " + e.getMessage());
} catch (Exception e) {
System.out.println("General error: " + e);
} finally {
System.out.println("Finally block always executes");
// Cleanup code: close files, release resources
}
System.out.println("Program continues...");
}
}
Output:
Error: Cannot divide by zero!
Exception message: / by zero
Finally block always executes
Program continues...
2078 - Short Question5 Marks
Explain method overloading and method overriding with examples.
Detailed Answer:
Method Overloading (Compile-time Polymorphism):
Same method name with different parameters within the same class.
class Calculator {
// Overloaded methods
int add(int a, int b) {
return a + b;
}
int add(int a, int b, int c) {
return a + b + c;
}
double add(double a, double b) {
return a + b;
}
}
// Usage
Calculator calc = new Calculator();
calc.add(5, 3); // calls first method
calc.add(5, 3, 2); // calls second method
calc.add(5.5, 3.5); // calls third method
Rules: Different number or type of parameters. Return type alone doesn't differentiate.
Method Overriding (Runtime Polymorphism):
Same method signature in parent and child class. Child provides specific implementation.
class Animal {
void makeSound() {
System.out.println("Animal makes sound");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Dog barks");
}
}
// Usage
Animal animal = new Dog(); // Upcasting
animal.makeSound(); // Output: Dog barks (runtime binding)
Rules: Same name, parameters, return type. Use @Override annotation. Can't reduce visibility.
Aspect
Overloading
Overriding
Class
Same class
Parent-child classes
Parameters
Must be different
Must be same
Return type
Can be different
Must be same (or covariant)
Binding
Compile-time
Runtime
Polymorphism
Static
Dynamic
2079 - Long Question10 Marks
Write a Java program to create a simple calculator using Swing with event handling.
Detailed Answer:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener {
JTextField display;
double num1 = 0, num2 = 0, result = 0;
char operator;
public Calculator() {
// Frame setup
setTitle("Simple Calculator");
setSize(300, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
// Display field
display = new JTextField();
display.setFont(new Font("Arial", Font.BOLD, 24));
display.setHorizontalAlignment(JTextField.RIGHT);
display.setEditable(false);
add(display, BorderLayout.NORTH);
// Button panel
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 4, 5, 5));
// Button labels
String[] buttons = {
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", "C", "=", "+"
};
// Create buttons
for (String text : buttons) {
JButton button = new JButton(text);
button.setFont(new Font("Arial", Font.BOLD, 18));
button.addActionListener(this);
panel.add(button);
}
add(panel, BorderLayout.CENTER);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.charAt(0) >= '0' && command.charAt(0) <= '9') {
// Number button
display.setText(display.getText() + command);
} else if (command.equals("C")) {
// Clear
display.setText("");
num1 = num2 = result = 0;
} else if (command.equals("=")) {
// Calculate
num2 = Double.parseDouble(display.getText());
switch (operator) {
case '+': result = num1 + num2; break;
case '-': result = num1 - num2; break;
case '*': result = num1 * num2; break;
case '/':
if (num2 != 0) result = num1 / num2;
else {
display.setText("Error");
return;
}
break;
}
display.setText(String.valueOf(result));
} else {
// Operator
num1 = Double.parseDouble(display.getText());
operator = command.charAt(0);
display.setText("");
}
}
public static void main(String[] args) {
new Calculator();
}
}
Old questions are included in the Notes tab above.
๐ ICT.Ed 456: Data Communication and Networks
Understand network fundamentals, OSI and TCP/IP models, subnetting, routing protocols, and network security.
๐ Notes
โ MCQs
๐ Old Questions
โก Mini Quiz
1Introduction to Data Communication (6 hrs)
โผ
๐ Detailed Notes
1.1 Components of Data Communication
Data Communication is the exchange of data between two devices via some transmission medium.
Five Components:
Message: The information/data to be communicated (text, audio, video)
Sender: Device that sends the message (computer, phone)
Receiver: Device that receives the message
Transmission Medium: Physical path (cable, air for wireless)
PAT/NAPT: Many-to-one using port numbers (most common)
Benefits: Conserves public IPs, hides internal network, adds security.
5.4 DNS (Domain Name System)
Translates domain names to IP addresses.
DNS Resolution Process:
Browser checks local cache
Queries Local DNS Server (ISP)
Local DNS queries Root DNS Server
Root refers to TLD Server (.com, .org)
TLD refers to Authoritative DNS Server
Authoritative Server returns IP address
DNS Record Types:
Record
Purpose
A
Maps domain to IPv4 address
AAAA
Maps domain to IPv6 address
CNAME
Canonical name (alias)
MX
Mail exchange server
NS
Name server for domain
TXT
Text information (SPF, DKIM)
๐ Old Questions with Answers
2079 - Short Question5 Marks
Explain the OSI model with its seven layers and their functions.
Detailed Answer:
The OSI (Open Systems Interconnection) model is a conceptual framework that standardizes network communication into seven layers. Each layer performs specific functions and communicates with adjacent layers.
Physical Layer (Layer 1): Transmits raw bits over physical medium. Deals with cables, connectors, electrical signals. Devices: Hub, Repeater. Data unit: Bit.
Data Link Layer (Layer 2): Provides node-to-node delivery. Handles framing, physical addressing (MAC), error detection. Devices: Switch, Bridge. Data unit: Frame.
Network Layer (Layer 3): Handles logical addressing and routing. Determines best path for packets. Protocols: IP, ICMP. Devices: Router. Data unit: Packet.
Transport Layer (Layer 4): Provides end-to-end delivery. Handles segmentation, flow control, error control. Protocols: TCP, UDP. Data unit: Segment.
Session Layer (Layer 5): Establishes, manages, and terminates sessions. Handles dialog control and synchronization.
Presentation Layer (Layer 6): Translates data formats. Handles encryption, compression, character encoding.
Remember: "Please Do Not Throw Sausage Pizza Away" (PDNTSPA)
2078 - Long Question10 Marks
Differentiate between TCP and UDP protocols. When would you use each?
Detailed Answer:
Feature
TCP
UDP
Connection
Connection-oriented (three-way handshake)
Connectionless (no handshake)
Reliability
Reliable - guarantees delivery with ACKs
Unreliable - no guarantee of delivery
Ordering
In-order delivery guaranteed
No ordering guarantee
Header Size
20-60 bytes
8 bytes only
Speed
Slower due to overhead
Faster, minimal overhead
Flow Control
Yes (sliding window)
No
Error Checking
Yes with retransmission
Basic checksum only
When to use TCP: File transfer (FTP), Email (SMTP), Web browsing (HTTP), Database access - where reliability is critical.
When to use UDP: Video streaming, Online gaming, DNS queries, VoIP - where speed is more important than reliability.
2080 - Short Question5 Marks
Given the network 192.168.10.0/24, create 4 subnets and show the network address, broadcast address, and usable IP range for each subnet.
Detailed Answer:
Given: 192.168.10.0/24 (Class C network)
Requirement: 4 subnets
Step 1: Calculate bits to borrow
2โฟ โฅ 4, so n = 2 bits
Step 2: New subnet mask
/24 + 2 = /26 (255.255.255.192)
Step 3: Calculate block size
256 - 192 = 64
Step 4: Determine subnets
Subnet
Network Address
Usable Range
Broadcast
1
192.168.10.0/26
192.168.10.1 - 192.168.10.62
192.168.10.63
2
192.168.10.64/26
192.168.10.65 - 192.168.10.126
192.168.10.127
3
192.168.10.128/26
192.168.10.129 - 192.168.10.190
192.168.10.191
4
192.168.10.192/26
192.168.10.193 - 192.168.10.254
192.168.10.255
Hosts per subnet: 2โถ - 2 = 62 usable hosts
2079 - Long Question10 Marks
Compare distance vector and link state routing algorithms. Explain Dijkstra's algorithm with an example.
Detailed Answer:
Aspect
Distance Vector (RIP)
Link State (OSPF)
Algorithm
Bellman-Ford
Dijkstra
Information Shared
Entire routing table with neighbors
Link state information with all routers
Convergence Speed
Slow
Fast
Metric
Hop count (max 15)
Cost (bandwidth-based)
Memory Usage
Less
More
CPU Usage
Less
More
Scalability
Small networks
Large networks
Dijkstra's Algorithm Example:
Find shortest path from A to all nodes:
A---4---B
| |\
2 1 3
| | \
C---3---D----E
Steps:
Initialize: A=0, B=โ, C=โ, D=โ, E=โ
Visit A: Update B=4, C=2
Visit C (smallest): Update D=5 (2+3)
Visit B: Update D=5 (min(5, 4+1)), E=7 (4+3)
Visit D: Update E=6 (5+1)
Visit E: Done
Final shortest paths from A: A=0, C=2, B=4, D=5, E=6
2078 - Short Question5 Marks
What is NAT? Explain its types and why it is needed.
Detailed Answer:
NAT (Network Address Translation): A method of remapping one IP address space into another by modifying network address information in the IP header of packets.
Why NAT is needed:
IPv4 Address Shortage: Limited public IP addresses available
Security: Hides internal network structure from external view
Flexibility: Easy to change ISPs without renumbering internal network
Cost Saving: Multiple devices can share single public IP
Types of NAT:
Static NAT: One-to-one mapping between private and public IP. Used for servers that need to be accessible from outside.
Dynamic NAT: Maps private IP to public IP from a pool of available addresses. One-to-one but dynamic assignment.
PAT/NAPT (Port Address Translation): Many-to-one mapping using different port numbers. Most common type used in home routers.
Old questions are included in the Notes tab above.
โ๏ธ ICT.Ed 457: Software Engineering and Project Management
Learn software development processes, requirements engineering, design patterns, testing strategies, and project management techniques.
๐ Notes
โ MCQs
๐ Old Questions
โก Mini Quiz
1Introduction to Software Engineering (9 hrs)
โผ
๐ Detailed Notes
1.1 Software Engineering Definition
Definition (IEEE): Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
Key Aspects:
Systematic: Follows defined processes and methodologies
Disciplined: Adheres to standards and best practices
Quantifiable: Measurable and trackable
1.2 Software Crisis
The software crisis (1960s) refers to problems in software development:
Projects running over budget and time
Software with poor quality and many bugs
Software not meeting requirements
Difficult to maintain and modify
Solution: Software Engineering principles and practices
1.3 Attributes of Good Software
Attribute
Description
Maintainability
Should be easy to modify and evolve to meet changing needs
Key Difference: Verification ensures the product is built according to specifications. Validation ensures the right product is built for the user's needs.
2078 - Long Question10 Marks
Explain the Agile Manifesto and its principles. Compare Agile with Waterfall model.
Detailed Answer:
Agile Manifesto (2001) - Four Values:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Note: While there is value in items on the right, Agile values items on the left more.
12 Agile Principles:
Customer satisfaction through early and continuous delivery
Welcome changing requirements, even late in development
Deliver working software frequently (weeks rather than months)
Business people and developers must work together daily
Build projects around motivated individuals
Face-to-face conversation is most efficient
Working software is the primary measure of progress
Maintain a constant sustainable pace of development
Continuous attention to technical excellence
Simplicity - maximize work not done
Best architectures emerge from self-organizing teams
Regular reflection and adjustment
Agile vs Waterfall Comparison:
Aspect
Agile
Waterfall
Approach
Iterative and incremental
Sequential phases
Requirements
Can change throughout
Fixed at beginning
Delivery
Continuous/frequent
At the end
Customer involvement
High throughout
Mainly at start and end
Documentation
Lightweight
Comprehensive
Best for
Changing requirements
Clear, stable requirements
2080 - Short Question5 Marks
What is cyclomatic complexity? Calculate it for a given flow graph.
Detailed Answer:
Cyclomatic Complexity: A software metric developed by Thomas McCabe to measure the complexity of a program. It quantifies the number of linearly independent paths through the program's source code.
Formulas:
V(G) = E - N + 2P (E=edges, N=nodes, P=connected components)
V(G) = Number of predicate nodes (decision points) + 1
V(G) = Number of regions in flow graph
Example Calculation:
[Start]
|
v
[Input A,B]
|
v
[If A>B] ----No----> [Print B]
| Yes |
v |
[Print A] <-------------|
|
v
[End]