cover photo

COURSEWORK

Anish's AI-ML-001 course work. Lv 1

Anish Dev EdwardAUTHORACTIVE
work cover photo
This Report is yet to be approved by a Coordinator.

Anish's Level 0 Task Report

14 / 9 / 2025


09-09-2025

Task 2 : API

API, which stands for Application Programming Interface, is a set of rules and protocols that allows different software applications to communicate with each other. It is an intermediary, that defines how one program can request services or data from another program, and how that program should respond.

I used NASA's Astronomy Photo of the Day, which allows you to retrieve daily astronomy images and their associated data, such as title, date, and explanation.

To use it, i obtained the free API key from NASA's portal and make requests to the API server end, which returns the data to be displayed in the frontend.

The user has to enter a date, and the photo of that date and a description about it will be displayed. I used HTML and CSS for the webpage, and JS for the API call.

Task 3 : Working with Github

Git and Github are essential tools for any developers. Git is a version control system that lets users track changes made to a source file, whereas Github is a platform that hosts Git repositories.

For this task, I first forked a repository, which means I made a copy of it in my Github, then I cloned it, i.e. I copied it into my local machine.

Then, I rectified the error in the affected file, after which I committed (saved) my changes to my Github repo. After this, I submitted a pull request to the original repository to merge my changes with their repo. Repo Link

Task 4 : Getting familiar with command line

Familiarized myself with the command line and terminal in Linux.

Learnt some commands like:

  1. pwd - print working directory- prints the directory we are in
  2. cd - change directory
  3. mkdir - makes a new directory
  4. ls - lists the contents in the directory
  5. echo- prints the given argument again. It is used with redirection to create small files
  6. cat- outputs the content of the file name specified, it is only a file viewer.

Command Line

Task 5: Build your own Brain

Linear Regression is a fundamental machine learning algorithm in which you find the best-fitting line through a set of data points.

It models the relationship between a dependent variable, and one or more independent variables.

y = mx + c

This simple high school equation is the base of our model. 'm' here is the slope or the weight, and 'c' is the intercept or the bias.

We need to find suitable values for m and c, such that the line it plots is closest to all the data points in the dataset.

I implemented linear regression from scratch, and it was an enlightening experience to say the least.

  • I first performed EDA, which is crucial to understand the data and decide what are the features and target.
  • We split the data into features and targets. The features are nothing but the inputs the model takes, and target is the value it predicts.
  • Then, I split the data into a training set and testing set, and normalized it to be in the same scale.
  • Then, we train our model on the training set and predict some values, which we then compare with the real value.
  • With the real value and predicted value, we calculate the loss, that is nothing but how wrong the prediction of a model is. We then try to minimize this loss. Some loss functions used in LR is MSE and MAE.
  • To minimize the loss, i.e. optimize the model, we use an optimizer algorithm called Gradient Descent. This minimizes the loss of the model by finding the minima of the loss curve.
  • The weights and bias at this minima are the parameters required to define the line of best fit.
  • After the optimization step, I evaluated the model on the test dataset to assess its ability to generalize beyond the training data.
  • I then visualized the regression line against the actual data points, which provided an intuitive understanding of how well the model captured the underlying relationship.
  • To quantitatively measure performance, I calculated metrics such as the score along with the loss values. These metrics indicated how effectively the model explained the variance in the data.

Overall, implementing this from scratch reinforced my understanding of fundamental ML concepts, which are the building blocks of various advanced algorithms.

Regression Plot

Github link

Task 6 : Matrix Puzzle

This was a really fun challenge which felt like a brain teaser. It solidified my understanding in matplotlib, numpy arrays, and manipulation of numpy arrays.

  • Understood slicing of numpy arrays
  • Understood visualization of 2D arrays using matplotlib

Solved matrix

colab notebook

Task 8 : Markdown

Markdown is a simple markup language for formatting plain text documents using plain text syntax, which can then be converted to structurally valid HTML. I chose stackedit.io as my markdown editor for my task report, and the resource article. I learnt how to structure headings and the body, add a note section, and also embed images and videos. Resource Article

Task 9 : Tinkercad

Tinkercad is a platform that enables electrical circuit simulations along with other service like 3D design and Code blocks.

  • I created a Tinkercad account and explored the example circuits to understand the basic components and their connections.

  • A simple circuit was simulated using an HC-SR04 ultrasonic sensor connected to an Arduino Uno board, where the sensor measured the distance of an obstacle by emitting ultrasonic pulses and calculating the echo time. The measured values were displayed on the serial monitor.

  • It was then extended into a radar system by mounting the ultrasonic sensor on a servo motor, allowing the sensor to rotate and scan across a wider area.

  • The Arduino board controlled both the ultrasonic sensor and the servo motor, while the results of distance measurements were displayed.

Radar 1

Radar 2

Task 10 : Speed Control of DC Motor

The L298N is a dual H-Bridge motor driver that allows control of both the speed and direction of DC motors. I built a circuit connecting a 5V BO motor to the L298N driver and interfaced it with an Arduino Uno. The Arduino was programmed using the Arduino IDE to send PWM (Pulse Width Modulation) signals to the enable pin for speed control and digital signals to the input pins for direction control. By varying the duty cycle of the PWM, the motor speed could be adjusted, while changing the logic levels on the H-Bridge input pins altered the polarity of the voltage across the motor terminals, thereby reversing its rotation.

DC Motor Speed Control

Task 11 : LED Toggle using ESP32

The ESP32 is a powerful microcontroller with built-in Wi-Fi and multiple GPIO pins that can be used for input and output operations. For this task, I used an ESP32, a breadboard, jumper wires, resistors, and an LED to create a standalone web server that could control the LED through a web interface. The Arduino IDE was configured to program the ESP32, and the code included the Wi-Fi library, network credentials, GPIO pin variables, and state variables to represent the LED status. In the setup function, the ESP32 was connected to the local Wi-Fi network and initialized as a web server. The loop function handled client HTTP requests and served an HTML page containing buttons styled with CSS to switch the LED ON or OFF. This demonstrated how the ESP32 can host a simple web server and control hardware components remotely over Wi-Fi.

LED Toggle

Task 12 : Soldering Prerequisites

Soldering is a technique used to join electronic components by melting a filler metal (solder) that solidifies to form both a mechanical and electrical connection. It is widely used in assembling and repairing circuits, and can be seen as the small metallic joints on PCBs where components are fixed. In the lab, I was introduced to the basic soldering equipment including the soldering iron, solder wire, flux, soldering wick, and the stand, along with the necessary safety precautions. Under the guidance of a coordinator, I practiced basic soldering on a perf board by creating a simple LED circuit. I also learned how to desolder existing joints using a soldering wick and then resolder the components back in place.

Soldering

Task 13 : 555 Astable Multivibrator

An astable multivibrator is a type of oscillator circuit that produces a continuous square wave output without the need for external triggering. In this task, I designed a 555 timer circuit in astable mode with resistor values R1 = 10 kΩ and R2 = 22 kΩ, along with a timing capacitor, to achieve a duty cycle of around 60%. The circuit was rigged up on a breadboard and powered using a regulated supply. Probes were connected from the output pin of the 555 to a Digital Storage Oscilloscope (DSO), where a clear square wave was observed. The oscilloscope measurement showed a duty cycle close to the expected 60%, confirming the correctness of the design.

These circuits are commonly used for timing applications, generating clock pulses, PWM control, and simple oscillators in devices like LED flashers, alarms, and motor controllers.

555

Task 14 : Karnaugh Maps

Inputs: D (door open) and K (key pressed).
Truth table shows alarm should trigger only when the door is open and the key is NOT pressed. The Karnaugh map simplifies to A = D · K'

k-map

Task 15 : Active Participation

I participated in CodeFury, a national-level hackathon conducted by IEEE UVCE. We built a functional website based on the given problem statement within a time limit of 24 hours. Working as part of a team, we brainstormed ideas, divided tasks, and implemented both the frontend and backend under the given time. The event tested our technical knowledge, problem-solving skills, and ability to collaborate effectively in a high-pressure environment.

Certificate

Website Link

Task 18 : Sad Servers

Sad Servers was a really fun detective-style task where I had to follow clues scattered across different directories and files. I moved around using cd, checked what was in each folder with ls, opened files with cat, and searched for specific information using grep. I also used pipes (|) to combine commands. After following all the clues, I was able to identify the culprit: Joe Germuska. It was a great way to put my Linux skills to the test in a hands-on, practical way.

sad

Task 20 : Notebook Ninja

This task was designed to help me get comfortable with Jupyter Notebook as both a coding and communication tool.
Through this, I learned how to structure a notebook, make it more readable, and show results clearly, which are skills that are useful for data science and machine learning work.

Notebook

Task 21 : Watch and Reflect

For this task, I watched two beginner-friendly videos on machine learning: “A Gentle Introduction to Machine Learning” by StatQuest and “How is Data Prepared for Machine Learning?” by AltexSoft. I summarized the key concepts, including types of ML, the importance of data preparation, and feature engineering, and reflected on how algorithms and data work together. Article

UVCE,
K. R Circle,
Bengaluru 01