
COURSEWORK
| A Abinav Sriram | AUTHOR | ACTIVE |

15 / 3 / 2026
An API, or Application Programming Interface, in simple terms is a connection between two software components. It enables the communication between softwares based on a set of rules and protocols to enable the sharing of data.
During the use of an API, the client(requester) obtains the data as per requirements. The protocols enables the server(responder) to share only what is needed(requested) without compromising on security and system integrity.
I have built a simple web application called the “Pokemon Finder”, that uses the Poke API to enable the user to type in a pokemon name in the search bar and receive the image as well as type of pokemon.

GitHub seems to be extremely crucial for the development of stable, bug-free programs as well as for sharing one’s work on the internet and thus enabling collaboration on projects. It hosts millions of open-source projects.
I started out by first learning the basics of GitHub, like the layout and the various functions, and then I proceeded to fork(copy) the given repository, and made the changes to the code in the branch, and finally submitted a pull request with the made changes for the maintainer to have a look at.
https://github.com/abinavsriram07

I created a folder named test, and included a blank text file within it primarily using the command line, through the use of commands like cd, mkdir, echo.
Then I proceeded to create the 2600 folders in this folder as advised and listed them all on the command line using the ls command.
It came to my notice that the files were not listed in the numerical order, but in the lexicographical order. This led to me discovering the ls -v command that listed the files in numerical order.
Tinkering more with the command line led to me finding out different commands with various parameters.
Finally, I concatenated two files using the cat command using only the command line.

https://colab.research.google.com/drive/19N3yCDGOCXzQTd2cw3BPPaTJZ3fkXcSs?usp=sharing

For this task, I implemented a basic arithmetic linear regression model to predict California house prices based on median income to understand how linear regression works, instead of just using pre-built functions.
First, I loaded the housing data and selected median income as the single input feature and median house value as the output we want to predict.
Then I set up two parameters: the slope and intercept, starting both at zero. These represent the line that will fit the data.
To find the best-fitting line, I used gradient descent — a method where the model gradually adjusts the slope and intercept by calculating the error between its predictions and the actual prices, and moving in the direction that reduces this error.
Once the training was done, I used the final slope and intercept to predict house prices and plotted the regression line against the real data points to visualize how well the model fits.
Finally, I measured how good the model was using metrics like Mean Squared Error (MSE), Mean Absolute Error (MAE), and R-squared.
To verify my custom implementation, I compared these results with those from scikit-learn’s built-in linear regression, which showed very similar performance.
This exercise gave me a deeper understanding of how linear regression and gradient descent work, and how model parameters are adjusted step-by-step to minimize prediction errors.
In this task I had fun tinkering with the various tools within numpy to figure out and decode the scrambled 2D array.
I learnt how to rotate and transpose a matrix using the built in functions of numpy, and I also played around with the colour of the matrix using the cmap arguments.
The decoded image could either be an upright smiley face or an upside down sad face!
https://colab.research.google.com/drive/1Kzn99U1qTBcUBPht-vJdi-A1rEAmewxR?usp=sharing

I learnt the very basics of HTML and CSS and created a portfolio website showcasing my personal projects and skills.
https://abinavsriram07.github.io/Portfolio-website/
Markdown is a simple formatting language used to write styled text using plain text symbols.
I have written an article on Quantum Computing in Markdown.
https://github.com/abinavsriram07/Quantum-computing-ARTICLE/blob/main/Quantum_computing.md
Tinkercad is an online platform that allows users to create 3D models, as well as circuit simulations with a wide range of components available in their library.
I have used Tinkercad to simulate a simple radar system using an ultrasonic sensor, particularly the HC-SR04 Ultrasonic sensor, an Arduino Uno R3, as well as a servo motor to control movement of the sensor, thus enabling it to scan for obstacles in all directions.
It must be noted that the sensor emits pulses, which on interaction with an obstacle/object in the scanning range “echoes” back onto the sensor.
Thus the sensor measures the distance from the obstacle by calculating the time taken by the pulse to return.
The distance values along with the angle are displayed on the serial monitor in real-time.

I learned how to control the speed of a DC Motor using the L298N driver and an Arduino Uno acting as the microcontroller.
The Arduino is responsible for sending PWM(Pulse Width Modulations) signals with varying duty cycles to control the speed of the motor.
Youtube link https://youtube.com/shorts/5scqQlX1YoA
In this task, first the ESP32 was connected to a Wi-Fi network by providing the SSID and password in the code.
After connecting successfully, the board displayed its IP address in the serial monitor.
This IP address was then used to access the ESP32 web server from a browser.
When a client connects to the ESP32 using its IP address, the ESP32 sends a simple HTML webpage.
This page contains buttons to turn each LED ON or OFF.
When a button is pressed, the browser sends a request to turn the LED’S ON or OFF.
The ESP32 reads this request and changes the corresponding LED state by setting the GPIO pin HIGH or LOW.
The webpage also displays the current state of each LED so the user can see whether it is ON or OFF.
This demonstrates how the ESP32 can be used as a small web server to control hardware remotely through Wi-Fi.

Soldering is a process of joining two metal surfaces together using a filler metal called solder.
I learnt the basics of soldering using basic soldering equipment like solder wire, soldering iron, flux and stand in the presence of a Co-ordinator.

I learnt the working of the 555 timer IC and utilized it to make an astable mutivibrator with close to 60% Duty Cycle

I started this task by simply assigning a binary value of 0 or 1 to each of the possible scenarios(door open, door closed, key in, key out, alarm on, alarm off), and then putting them together in a truth table to consider when the burglar alarm would go off.
| K | D | A |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 1 | 0 |
The conclusion was that the alarm would be activated only when the door is open and key is not inserted.
Therefore, the K-map becomes
A = D . K’
I then simulated this circuit in Tinkercad using the AND as well as NOT gates, and the alarm goes off as expected when the door is open and key is not inserted.
I participated in Silic-O-Hack competition during the IEEE Impetus event on 13th March 2026.

Report on L293D Motor Driver
The L293D is a motor driver that allows a microcontroller to control motors with high power requirements.
It must be noted that a microcontroller is capable of producing only low power control signals and these low power signals cannot directly be used to run a DC motor for example, which can require a supply voltage from a meagre 5V to anywhere upto 36V.
For example, an Arduino uses 5V logic and an esp32 uses 3.3V logic.
Thus, it can be concluded that the motor driver acts as a control interface, i.e. a controlled switch acting between the motor and the power supply.
In the technical sense, it is said that the motor driver amplifies the input power to produce a high power voltage signal that can be used to run the DC motor efficiently.
As per the datasheet, the L293D motor driver IC has the following technical specifications
Working voltage: 4.5V to 36V
Maximum current: 600-mA
Temperature range for operation: 0 to 70 degrees Celsius
• Quadruple H-Bridge (for motor direction control)
A H-Bridge is a circuit that allows to efficiently control the direction of flow of current through the motor and thus controls the direction of spinning of the DC motor.
While a single H-Bridge can control the working of one DC motor independently, the L293D consists of quadruple H-Bridge i.e two full H-Bridges and thus the driver can control the working of two DC Motors independently.
• PWM- Pulse Width Modulation(for controlling speed of DC Motor)
PWM is a technique used to control the flow of power through a circuit.
In this method, the motor is switched ON and OFF very quickly at frequencies not perceivable by the human eye.
The percentage of time the signal stays ON is known as the duty cycle.
A higher duty cycle means a faster spinning motor and a lower duty cycle means a slower spinning motor.
It must be noted that the H-Bridge and the PWM application are controlled by connection of the respective mechanisms to the Enable Pins.
• Input pins: 1A, 2A,3A, 4A
• Output pins: 1Y, 2Y, 3Y, 4Y
• Enable pins: EN1, EN2
• Vcc 1: Driver Power supply
• Vcc 2: Motor Power supply
• Ground pins
• Stepper Motor Drivers
• DC Motor Drivers
• Latching Relay Drivers
Virtual Reality can be described as a technology that enables us to escape reality and immerse ourselves in a computer generated stimulated 3D environment.
It is achieved with the help of a VR headset that displays a 3D world to the user.
It achieves complete immersion with the help of two displays close to each of the eye, thus blocking out any interaction with reality.
The fact that two displays are used, one for each eye, makes sure that a 3D artificial environment is being perceived by the eyes.
Also, the environment within the headset responds to the user, i.e. any movement of the user is accompanied by the required movement in the environment, which creates the feeling of actually being present in the virtual environment.
• VR is used as a tool to create mock-ups of real spacecraft, and is used in concept stage to simulate the working before going all in on manufacturing and application.
• VR has become extremely useful in astronaut and pilot training, since it helps the user to completely learn the usage of the space/aircraft before using it in real life.
This is particularly useful in space/aircraft application since the actual machinery costs a lot of money and beginners cannot be equipped with such economically demanding equipment for mere learning purposes.
Virtual Reality (VR) completely replaces the real world with a digital one and cuts off any possible real-life interaction.
One is placed inside a fully computer-generated environment.
Augmented Reality (AR) is different because it keeps the real world visible but adds digital objects on top of it.
The surroundings are still visible, but extra elements like 3D models, text, or animations appear on the screen.
In short, VR creates a completely virtual world, while AR adds digital elements to the real world that one is already seeing.
The technologies used include an intersection of hardware as well as software tools.
The hardware tools include the actual VR Headset, motion tracking sensors to respond to any user input, and powerful CPU and especially GPU to render the graphically intense 3D environments in real time.
The software development tools involves the use of various programming languages as well as game engines to create applications that are useful.
It has been acquired by Reliance Jio, which has massively helped the company to expand its reach.
SmartVizX
SmartVizX is a VR technology company based in Noida, India, that mainly focuses on architecture, construction, and real estate visualization.
SIMULANIS
The company develops immersive simulations that help workers and students learn complex tasks in a safe virtual environment.
This task tickles the brain just the right way.
It was a fun attempt to solve a murder mystery through linux commands and bash scripting.
I first familiarised myself with the file hierarchy in the different directories using command like cd and ls to move around directories.
Then it was just a matter of following the various hints as well as instructions and trying to find specified information using the grep command.
Moreover I used the cat command to quickly view contents of the files and upon finding the culprit, I copied his name onto the solution file using the echo command.
