
COURSEWORK
| Kushma | AUTHOR | ACTIVE |

24 / 2 / 2026


In this task i learned basic ubuntu commands like,

I created a personal portfolio website using HTML and CSS.
The website showcases information about me, my education, skills, experience and social media profiles.
link to portfolio

Tinkercad is an online 3D design and modeling tool that is used to create 3D objects, circuits, and simulations easily using a web browser. It allows you to build virtual electronic circuits, test them, and supports microcontrollers without needing physical components.
I created Audrino-based ultrasonic distance measurement system using Audrino uno, HC-SR04 Ultrasonic Sensor, server motor and jumper wires.

ESP32 is a Wi-Fi and Bluetooth-enabled microcontroller used in electronics projects.
In this task, I learned the working of the ESP32 and created a standalone web server using it. The web server allows control of an LED connected to the ESP32 GPIO pins through a web interface. I used the Arduino IDE to write and upload the code to the ESP32, and learned how to configure the IDE to recognize and program the ESP32 board.



Sadservers is an online platform for practicing Linux troubleshooting skills.
In this task, there was a challenge called Command Line Murders on the Sadservers platform with time limit of 20 mins. The challenge involved using the Linux commands to explore folders, inspect files, and find clues to solve a mystery.

In this task, I controled DC motor speed using an Arduino UNO and an L298N H-Bridge motor driver. I learned how to control the speed and direction of a 5V DC motor by varying the PWM signals from the Arduino.
L298N H-Bridge motor driver is used to control DC motors with an Arduino or other microcontrollers.(Control the direction of the motor, Control the speed of the motor using PWM signals)
This task helped me understand PWM-based motor speed control, H-Bridge operation, and practical electronics skills.



I made an app "FLOWER GARDEN", which allows users to draw flowers on digital canvas using different colours and eraser . After completing their drawings, users can name the flower and save it . This application is developed using HTML, CSS and JavaScript .
link to webpage
(The canvas drawing feature currently works best on laptops with a mouse. Touchscreen devices may not be fully supported)

Linear Regression is one of the most fundamental supervised learning algorithms used for predicting continuous values. The objective is to find the best-fitting line that minimizes prediction error.
Gradient Descent is an optimization algorithm used to minimize a function by iteratively moving toward the smallest value of that function.
Cost function is a mathematical function that measures the error between predicted values and actual values.
In Linear Regression, the most common cost function is Mean Squared Error (MSE).
MSD is the average of the squared differences between actual and predicted values.
import numpy as np
import matplotlib.pyplot as plt
# Hours studied (X)
X = np.array([
1.5, 2.0, 2.5, 3.0, 3.5,
4.0, 4.5, 5.0, 5.5, 6.0,
6.5, 7.0, 7.5, 8.0, 8.5,
9.0, 9.5, 10.0
], dtype=float)
# Marks (Y) with some randomness
Y = np.array([
20, 25, 28, 32, 36,
40, 42, 45, 48, 52,
55, 60, 63, 65, 68,
72, 75, 80
], dtype=float)
m = 0 # slope
b = 0 # intercept
# Hyperparameters
learning_rate = 0.01
epochs = 1000
n = len(X)
# Training using Gradient Descent
for i in range(epochs):
Y_pred = m * X + b # predicted values
# Compute gradients
dm = (-2/n) * np.sum(X * (Y - Y_pred))
db = (-2/n) * np.sum(Y - Y_pred)
# Update parameters
m = m - learning_rate * dm
b = b - learning_rate * db
# Print progress every 100 iterations
if i % 100 == 0:
loss = np.mean((Y - Y_pred) ** 2)
print(f"Epoch {i}: Loss = {loss:.4f}, m = {m:.4f}, b = {b:.4f}")
# Final parameters
print("\nFinal values:")
print(f"Slope (m) = {m}")
print(f"Intercept (b) = {b}")
# Plot results
Y_final = m * X + b
plt.scatter(X, Y, color='blue', label='Actual Data')
plt.plot(X, Y_final, color='red', label='Regression Line')
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Linear Regression from Scratch")
plt.legend()
plt.show()

An MQ135 air quality sensor is one type of MQ gas sensor used to detect, measure, and monitor a wide range of gases present in air like ammonia, alcohol, benzene, smoke, carbon dioxide, etc.
The MQ135 air quality sensor, which belongs to the series of MQ gas sensors, is widely used to detect harmful gases, and smoke in the fresh air.
Link to report :
MQ135 Air Sensor