Friday, December 26, 2025

📘 PAPER 3: ARTIFICIAL INTELLIGENCE & ROBOTICS UNIT 1 – INTRODUCTION TO AI & SEARCH TECHNIQUES (university of allahabad)

 

🔴 UNIT 1 – INTRODUCTION TO AI & SEARCH TECHNIQUES


1️⃣ Introduction to Artificial Intelligence (AI)

✅ Definition of AI

Artificial Intelligence is a branch of computer science that deals with creating intelligent machines capable of performing tasks that normally require human intelligence.

Examples:


2️⃣ Scope of Artificial Intelligence

AI is widely used in the following fields:

🔹 1. Games

🔹 2. Theorem Proving

  • Logical reasoning

  • Mathematical proof verification

🔹 3. Natural Language Processing (NLP)

  • Language translation

  • Chatbots

  • Speech recognition

🔹 4. Vision Systems

  • Face recognition

  • Object detection

  • Medical image analysis

🔹 5. Robotics

  • Industrial robots

  • Medical robots

  • Space robots

🔹 6. Expert Systems

  • Medical diagnosis

  • Fault detection

  • Decision-making systems


3️⃣ AI Techniques

AI techniques are methods used to solve complex problems.

Important AI Techniques:

  • Search techniques

  • Knowledge representation

  • Heuristic methods

  • Machine learning

  • Reasoning techniques


4️⃣ Intelligent Agents

✅ Definition

An Intelligent Agent is an entity that:

  • Perceives environment using sensors

  • Acts using actuators

  • Makes decisions intelligently


Components of Intelligent Agent:

ComponentDescription
SensorsCollect information
ActuatorsPerform actions
EnvironmentWhere agent operates
Agent functionMaps perception to action

Types of Agents

  1. Simple reflex agent

  2. Model-based agent

  3. Goal-based agent

  4. Utility-based agent

  5. Learning agent


5️⃣ Search Techniques in AI

Search is the heart of AI.

Search Problem Components:

  • Initial state

  • Goal state

  • Operators

  • State space

  • Path cost


6️⃣ State Space Search

Definition:

State space is a set of all possible states from initial to goal state.

Example:

8-puzzle problem


7️⃣ Control Strategies

Control strategy decides:

  • Which node to expand next

  • How to traverse state space


8️⃣ Blind Search Techniques

🔹 1. Breadth First Search (BFS)

Characteristics:

  • Explores level by level

  • Uses Queue (FIFO)

  • Finds shortest path

Advantages:

✔ Complete
✔ Optimal

Disadvantages:

❌ High memory usage
❌ Slow for large problems


🔹 2. Depth First Search (DFS)

Characteristics:

  • Goes deep first

  • Uses Stack (LIFO)

Advantages:

✔ Less memory
✔ Easy to implement

Disadvantages:

❌ May go into infinite loop
❌ Not optimal


🔹 BFS vs DFS

BFSDFS
Uses queueUses stack
CompleteNot always
High memoryLow memory
OptimalNot optimal

9️⃣ Heuristic Search Techniques

✅ Heuristic

A heuristic is a rule of thumb used to guide the search.


🔹 1. Hill Climbing

  • Moves toward better state

  • Uses heuristic function

  • Greedy approach

Problems:


🔹 2. Best First Search

  • Uses evaluation function f(n)

  • Chooses best node first


🔹 3. A* Algorithm

Formula:

f(n)=g(n)+h(n)f(n) = g(n) + h(n)

Where:

  • g(n) = cost from start to n

  • h(n) = heuristic estimate

✔ Complete
✔ Optimal
✔ Widely used


🔟 AND–OR Graphs & AO* Algorithm

AND–OR Graph

  • OR node → choose one path

  • AND node → all paths required


AO* Algorithm

  • Used for AND–OR graphs

  • Improves A* algorithm

  • Finds optimal solution graph


1️⃣1️⃣ Constraint Satisfaction Problem (CSP)

Definition:

A problem defined by:

  • Variables

  • Domains

  • Constraints

Example:


1️⃣2️⃣ Game Playing in AI

Minimax Algorithm

  • Two-player game

  • MAX vs MIN

  • Used in chess


Alpha-Beta Pruning

  • Optimization of minimax

  • Reduces nodes explored

  • Faster execution


1️⃣3️⃣ Genetic Algorithms

Inspired by:

  • Natural selection

  • Evolution

  • Steps:

    1. Initialization

    2. Selection

    3. Crossover

    4. Mutation

    5. New generation

📘 PAPER 2: OBJECT ORIENTED PROGRAMMING WITH PYTHON UNIT 5 – NumPy and Pandas (university of allahabad)

 

🔴 UNIT 5 – NumPy and Pandas


🟦 PART A: NUMPY (Numerical Python)


1️⃣ Introduction to NumPy

✅ What is NumPy?

NumPy is a Python library used for:

  • Numerical computation

  • Scientific computing

  • Working with arrays and matrices

✅ Features of NumPy

✔ Faster than Python lists
✔ Supports multi-dimensional arrays
✔ Efficient memory usage
✔ Used in ML, AI, Data Science


2️⃣ ndarray (N-Dimensional Array)

Definition:

The main object of NumPy is ndarray, which represents a multi-dimensional array.

Example:

import numpy as np a = np.array([1,2,3]) print(a)

3️⃣ Data Types in NumPy

a = np.array([1,2,3], dtype=float)

Common Data Types:

  • int

  • float

  • bool

  • complex


4️⃣ Array Attributes

AttributeDescription
ndimNumber of dimensions
shapeSize of array
sizeTotal elements
dtypeData type

Example:

a = np.array([[1,2],[3,4]]) print(a.ndim) print(a.shape)

5️⃣ Array Creation Routines

🔹 From List

np.array([1,2,3])

🔹 Zeros & Ones

np.zeros((2,2)) np.ones((3,3))

🔹 Using arange()

np.arange(1,10,2)

🔹 Using linspace()

np.linspace(1,10,5)

6️⃣ Array from Existing Data

np.asarray([1,2,3]) np.frombuffer(b'hello', dtype='S1')

7️⃣ Array Indexing & Slicing

a = np.array([10,20,30,40]) print(a[1]) print(a[1:3])

8️⃣ Mathematical Operations

a + b a * b np.sqrt(a) np.sum(a) np.mean(a)

🟩 PART B: PANDAS


9️⃣ Introduction to Pandas

✅ What is Pandas?

Pandas is a Python library used for:

  • Data analysis

  • Data manipulation

  • Handling structured data


🔟 Pandas Data Structures

1️⃣ Series

A one-dimensional labeled array.

import pandas as pd s = pd.Series([10,20,30])

2️⃣ DataFrame

A two-dimensional table-like structure.

data = { "Name": ["Amit", "Rahul"], "Marks": [80, 90] } df = pd.DataFrame(data)

1️⃣1️⃣ Creating Series

From List

pd.Series([1,2,3])

From Dictionary

pd.Series({'a':10, 'b':20})

From Scalar

pd.Series(5, index=[1,2,3])

1️⃣2️⃣ Creating DataFrame

From List

pd.DataFrame([[1,2],[3,4]])

From Dictionary

pd.DataFrame({ "Name":["A","B"], "Age":[20,22] })

1️⃣3️⃣ Manipulating DataFrames

Rename Column

df.rename(columns={"Name":"Student_Name"})

Delete Column

df.drop("Age", axis=1)

Delete Row

df.drop(0)

1️⃣4️⃣ Handling Missing Values

Finding Missing Values

df.isnull()

Filling Missing Values

df.fillna(0)

Dropping Missing Values

df.dropna()

1️⃣5️⃣ Advantages of Pandas

✔ Easy data handling
✔ Fast processing
✔ Data cleaning
✔ Used in ML & AI

📘 PAPER 2: OBJECT ORIENTED PROGRAMMING WITH PYTHON UNIT 4 – Dictionaries, Functions, File Handling & Regular Expressions (university of allahabad)

 

🔴 UNIT 4 – Dictionaries, Functions, File Handling & Regular Expressions


1️⃣ Dictionaries in Python

✅ Definition

A dictionary is an unordered collection of data stored as key–value pairs.

Example:

student = { "name": "Amit", "age": 20, "course": "MCA" }

🔹 Characteristics

✔ Key-value based
Mutable
Keys must be unique
Fast access


🔹 Accessing Dictionary Elements

print(student["name"])

🔹 Adding & Updating Values

student["age"] = 21 student["city"] = "Delhi"

🔹 Deleting Elements

del student["age"]

2️⃣ Counting Frequency Using Dictionary

Example:

text = "banana" freq = {} for ch in text: if ch in freq: freq[ch] += 1 else: freq[ch] = 1 print(freq)

Output:

{'b':1, 'a':3, 'n':2}

3️⃣ Python Functions

✅ Definition

A function is a block of reusable code.


🔹 Function Syntax

def function_name(parameters): statements return value

🔹 Types of Arguments

  1. Positional

  2. Keyword

  3. Default

  4. Variable-length


Example:

def add(a, b=5): return a + b

4️⃣ Passing Function as Argument

def square(x): return x*x def fun(f, value): return f(value) print(fun(square, 5))

5️⃣ Lambda Function

Definition:

Anonymous function written in one line.

square = lambda x: x*x print(square(5))

6️⃣ Map Function

nums = [1,2,3] result = list(map(lambda x: x*2, nums))

7️⃣ List Comprehension

squares = [x*x for x in range(5)]

8️⃣ File Handling in Python


🔹 Opening a File

f = open("data.txt", "r")

File Modes:

ModeMeaning
rRead
wWrite
aAppend
r+Read + Write

🔹 Reading File

f.read()

🔹 Writing File

f.write("Hello Python")

🔹 Closing File

f.close()

9️⃣ String Processing

Common String Functions:

s.upper() s.lower() s.replace() s.split() s.strip()

🔟 Regular Expressions (RegEx)

Definition:

Regular expressions are used for pattern matching.


Common Symbols

SymbolMeaning
.Any character
^Start of string
$End of string
*Zero or more
+One or more
[a-z]Range

Example:

import re pattern = re.search("python", "I love python")

📘 PAPER 2: OBJECT ORIENTED PROGRAMMING WITH PYTHON UNIT 3 – Classes, Objects & OOP Concepts (university of allahabad)

 

🔴 UNIT 3 – Classes, Objects & OOP Concepts


1️⃣ Class and Object


✅ Class

A class is a blueprint or template used to create objects.

📌 It defines:

  • Data members (variables)

  • Member functions (methods)

Example:

class Student: def show(self): print("This is a student")

✅ Object

An object is an instance of a class.

s1 = Student() s1.show()

🔹 Key Difference

ClassObject
BlueprintReal-world entity
LogicalPhysical
No memoryUses memory

2️⃣ Abstract Data Type (ADT)

✅ Definition

An ADT defines:

  • What operations are to be performed

  • Not how they are implemented

It focuses on behavior, not implementation.

Example:


3️⃣ Classes and Objects in Python

Example Program:

class Person: def __init__(self, name): self.name = name def display(self): print("Name:", self.name) p = Person("Rahul") p.display()

4️⃣ Constructor (__init__)

Definition:

A constructor is a special method used to initialize objects.

Example:

class Student: def __init__(self, roll): self.roll = roll

5️⃣ Features of OOP in Python


🔹 1. Encapsulation

Binding data and methods together.

class Bank: def __init__(self): self.__balance = 5000

Data hiding
✔ Security


🔹 2. Abstraction

Showing essential features and hiding internal details.

Achieved using:


🔹 3. Inheritance

Child class inherits properties of parent class.

class Parent: def show(self): print("Parent") class Child(Parent): pass

Types of Inheritance:

  1. Single

  2. Multiple

  3. Multilevel

  4. Hierarchical

  5. Hybrid


🔹 4. Polymorphism

Same function behaves differently.

Example:

print(len("Python")) print(len([1,2,3]))

6️⃣ Abstract Class

Definition:

An abstract class contains abstract methods (methods without body).

Using abc module:

from abc import ABC, abstractmethod class Shape(ABC): @abstractmethod def area(self): pass

7️⃣ Scope in Python

Types of Scope:

  1. Local

  2. Global

  3. Non-local

  4. Built-in


Example:

x = 10 # global def fun(): x = 5 # local print(x)

8️⃣ Multithreading in Python


✅ Definition

Multithreading means executing multiple threads simultaneously.


Is Multithreading Supported in Python?

✔ Yes
❌ But limited due to GIL (Global Interpreter Lock)


Example:

import threading def display(): print("Hello") t = threading.Thread(target=display) t.start()

Advantages:


Disadvantages:

  • Complex debugging

  • GIL limits performance

📘 PAPER 2: OBJECT ORIENTED PROGRAMMING WITH PYTHON UNIT 2 – Python Data Structures (university of allahabad)

 

🔴 UNIT 2 – Python Data Structures


1️⃣ Introduction to Python Data Structures

✅ What is a Data Structure?

A data structure is a way to store, organize, and manage data efficiently so that operations can be performed easily.

Python provides built-in data structures, such as:


2️⃣ Python Data Types (Revisited)

🔹 Mutable Data Types

Data that can be changed after creation.

  • List

  • Dictionary

  • Set

🔹 Immutable Data Types

Data that cannot be changed.

  • Integer

  • Float

  • String

  • Tuple


3️⃣ Python Lists

✅ Definition

A list is an ordered, mutable collection of elements.

Example:

numbers = [10, 20, 30, 40]

🔹 List Characteristics

✔ Ordered
✔ Mutable
✔ Allows duplicate values
✔ Indexed


🔹 List Operations

Accessing elements

print(numbers[0])

Slicing

numbers[1:3]

Adding elements

numbers.append(50)

Removing elements

numbers.remove(20)

4️⃣ List Slicing

Syntax:

list[start : end : step]

Example:

a = [1,2,3,4,5] print(a[1:4])

Output:

[2, 3, 4]

5️⃣ Indexing

  • Positive indexing → Left to right

  • Negative indexing → Right to left

a = [10, 20, 30] print(a[-1]) # 30

6️⃣ List Concatenation

a = [1,2] b = [3,4] c = a + b

Output:

[1,2,3,4]

7️⃣ Searching in Python

🔹 Linear Search

Searches element one by one.

def linear_search(lst, key): for i in lst: if i == key: return True return False

✔ Simple
❌ Slow for large data


🔹 Binary Search

Works only on sorted lists

def binary_search(arr, key): low = 0 high = len(arr)-1 while low <= high: mid = (low+high)//2 if arr[mid] == key: return True elif arr[mid] < key: low = mid+1 else: high = mid-1 return False

✔ Fast
✔ Efficient


8️⃣ Inductive Function Definition

Meaning:

A function defined using:

  1. Base case

  2. Recursive case

Example:

Factorial

def fact(n): if n == 0: return 1 return n * fact(n-1)

9️⃣ Sorting Techniques

🔹 Selection Sort

Steps:

  1. Find minimum

  2. Swap with first element

  3. Repeat

def selection_sort(arr): for i in range(len(arr)): min = i for j in range(i+1, len(arr)): if arr[j] < arr[min]: min = j arr[i], arr[min] = arr[min], arr[i]

🔹 Insertion Sort

def insertion_sort(arr): for i in range(1, len(arr)): key = arr[i] j = i - 1 while j >= 0 and key < arr[j]: arr[j+1] = arr[j] j -= 1 arr[j+1] = key

🔟 In-Place Sorting

Definition:

Sorting without using extra memory.

✔ Selection Sort
✔ Insertion Sort


1️⃣1️⃣ Tuples

Definition:

Tuple is an ordered but immutable collection.

t = (10, 20, 30)

✔ Faster than list
✔ Used for fixed data


1️⃣2️⃣ Mutability Concept

Data TypeMutable
ListYes
TupleNo
StringNo
DictionaryYes

1️⃣3️⃣ Programs Using Lists

Find Maximum Element

lst = [4, 8, 2, 9] print(max(lst))

Find Minimum Element

print(min(lst))

Find Mean

mean = sum(lst) / len(lst)

How we can get higher marks in semester exam

 Here we talk about how to get higher marks in exams or test paper. Now we have to remember that the test and exams are follow the pattern b...