cover photo

COURSEWORK

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

Sai Rachana MAUTHORACTIVE
work cover photo
This Report is yet to be approved by a Coordinator.

Report : Level 0

13 / 9 / 2025


Task 1: 3D Printing Basics

In this task, I learnt about various terminologies related to 3D printing and how the printing process works.

  • STL File: A file format that describes the surface geometry of a 3D object. It is the standard file type used for 3D printing.
  • Slicing: The process of converting an STL file into printer instructions (G-code). The slicer software breaks the model into layers and defines how the printer will print them.
  • Bed Temperature: The temperature of the printer’s build plate, important for making the first layer stick properly and to prevent warping.
  • Infill Density: Determines how solid the print will be. Lower infill saves material and time, while higher infill makes the print stronger.
  • Other Printer Settings: Include layer height, print speed, and nozzle temperature, which affect quality and strength of the final print.
    I downloaded an STL file from a website called Thingiverse and sliced it using Ultimaker Cura software to prepare it for printing.
    model on ultimaker

Task 2 : API

API or Application Programming Interface is a brigde or a middleman between the client and the provider. In the context of the Weather API, the application or the website is the client and the weather service’s server/database where all he real-time weather data is stored is the provider. How it works:

  • the app sends a request
  • the weather service processes the request
  • we receive a response Terminologies:
    -Endpoint: A specific “door” you knock on to get certain data. Example: /weather is for current weather. -Request:The question your app asks. (“What’s the weather in Bangalore?”) -Response: The answer the API gives. (“It’s 28°C and raining lightly.”) -Parameters: Extra details to customize your question. (units=metric, q=London, etc.) -API Key: A secret code that proves you’re allowed to ask. -HTTP Methods: HTTP methods tells the server what kind of action it wants to perform. -GET: Retrieve data (most common in weather APIs, e.g., current weather in Bangalore). -POST: Create new data (e.g., add a user weather report). -PUT: Replace existing data completely. -PATCH: Update part of existing data. -DELETE: Remove data from the server. Created a basic weather api using html,css and js.
    api click here to check my weather api
    click here to find the code

Task 3: Working with GitHub

GitHub is a platform that helps developers store, share, and work together on code. It uses Git, a version control system, to keep track of changes in a project. With GitHub, you can work on your own copy of a project, make improvements, and then suggest those changes to be added to the main project.

Steps I Followed

1. Forked the Repository

  • I forked the given repository so that I could have my own copy to work on.
    2.Cloned it Locally
  • I cloned my forked repository to my system using Git.
  • This allowed me to open and edit the project in VS Code.
    3. Created a New Branch
  • I created a separate branch so that my changes were kept independent from the main code.
    4. Made Changes in the Code
  • I edited the files as instructed in the README.
  • After editing, I staged and committed the changes with a proper commit message.
    5. Pushed the Changes to GitHub
  • I pushed my local branch to my GitHub repository.
    6. Opened a Pull Request (PR)
  • I went to the original repository and opened a Pull Request from my branch.
  • This is how I suggested my changes to be merged into the main project. MY PR

Task 4: Working with Ubuntu Command Line

The command line in Ubuntu is a text-based interface that allows us to manage files, folders, and processes efficiently. This task helped me practice basic commands like creating directories, files, and working with text files.

Steps I Followed

1)Created a folder named testusing mkdir test
2)Moved into that folder using the change directory command using cd test.
3)Created 2600 folders with names starting from M90 up to M2600using for i in {1..2600}; do mkdir M$i; done
4)Concatenated two text files and displayed their contents on the terminal. commands used :
touch file1.txt file2.txt //to create two new files
echo "Hello" > file1.txt //write content into file1
echo "World" > file2.txt //write content into file2
cat file1.txt file2.txt > combined.txt //concatenate contents of both files into a new file named combined
cat combined.txt //to display the combined file
ubuntu terminal

Task 5: Linear Regression from Scratch

click here to find the math behind linear regression!!
click here to find the code

Task 6: The Matrix Puzzle — Decode with NumPy & Reveal the Image

In this task, I explored two powerful Python libraries: NumPy and Matplotlib.

  • NumPy is a library used for working with arrays and performing mathematical operations efficiently. It makes it easy to reshape, rotate, and manipulate data stored in a matrix form.
  • Matplotlib is a plotting library in Python. Using its function imshow(), we can display data as an image and visualize it.
    Together, these libraries are very useful for handling image-related problems because images can be represented as matrices (grids of numbers).

Steps I Followed

  1. Loaded the scrambled matrix from the given file using NumPy.
  2. Checked the shape of the matrix and noticed that it wasn’t square, so I reshaped it into a square matrix.
  3. Plotted the matrix using matplotlib.pyplot.imshow() to visualize the scrambled picture.
  4. Rotated the image using NumPy operations to correctly orient the picture.
  5. Finally, displayed the decoded image clearly using imshow().
    before image reveal!!

Task 7: Create a Portfolio Webpage

For this task, I built a portfolio website using HTML, CSS, and JavaScript.

  • HTML → gives the structure of the webpage (headings, paragraphs, links, sections).
  • CSS → adds styling, layout, and makes the site look attractive and responsive.
  • JavaScript → adds interactivity, like animations or button actions.
    The website contains details about me, projects, and links to my social media profiles.

Steps I Followed

  1. Designed the webpage using HTML for content, CSS for styling, and JavaScript for interactivity.
  2. Pushed the repository to GitHub.
  3. Deployed the site using Vercel for easy online access.
    click here to check my personal portfolio
    click here for the code

Task 8: Writing Resource Article using Markdown

Markdown is a simple markup language used to format plain text with headings, lists, links, and images. It is lightweight, easy to learn, and works consistently across devices.

Some Basic Markdown Syntax

# Title
## Subtitle *bold* \ *italic* - Item 1
- Item 2 I used Markdown to write a technical resource article on Big Data.
BIG data

Task 9: Tinkercad Radar System

Tinkercad is a web-based tool for simulating 3D designs, circuits, and code.
It was a fun experience where I created a simple circuit using an ultrasonic sensor and a servo motor.

Connections

Ultrasonic Sensor → Arduino UNO

  • VCC → 5V
  • TRIG → Pin 7
  • ECHO → Pin 6
  • GND → GND

Servo Motor → Arduino UNO

  • Power → 5V
  • Ground → GND
  • Signal → Pin 2

How It Works

  • The ultrasonic sensor sends sound waves.
  • If they hit an object, they bounce back.
  • The sensor measures the time taken and calculates the distance.
  • The servo motor rotates the sensor left and right, like a small radar.
  • The Arduino shows the distance on the Serial Monitor.
  • The servo pin shall rotate when the distance between object and sensor becomes less than 80cm.

Code

the code Watch on YouTube

TASK 10: Speed Control of DC Motor

Concept

The speed of a DC motor can be controlled using PWM (Pulse Width Modulation) signals generated by the Arduino.

  • A PWM signal is a square wave with a variable duty cycle.
  • The duty cycle (percentage of ON time vs OFF time) determines the average voltage supplied to the motor.
  • By increasing the duty cycle, the motor runs faster. By decreasing it, the motor runs slower.
    The L298N motor driver acts as an interface between the low-power Arduino signals and the higher current required by the DC motor.

Connections

  • Arduino pin 9 → ENA (L298N) (PWM speed control)
  • Arduino pin 7 → IN1 (L298N)
  • Arduino pin 8 → IN2 (L298N)
  • Motor terminals → OUT1 and OUT2 (L298N)
  • External power (e.g., 9V) → L298N VCC (12V) and GND
  • Arduino GND → L298N GND (common ground)
  • Arduino powered via USB

Observation

  • Motor speed increased and decreased with PWM values.
  • Motor direction reversed when IN1/IN2 signals were toggled.
  • External power was needed to run the motor reliably.
    Watch on YouTube

Task 11: LED Toggle using ESP32

First, I familiarized myself with the ESP32 board. Then I made the necessary connections, uploaded the code from Arduino IDE, and entered my Wi-Fi network credentials. After uploading, the Serial Monitor showed me the IP address of the ESP32 web server. By opening this IP address in a browser, I could use ON/OFF buttons to control the LED connected to the ESP32.

Connections

  • ESP32 GPIO Pin → LED Positive (through a resistor)
  • ESP32 GND → LED Negative

How It Works

  • The ESP32 connects to Wi-Fi using the credentials we provide.
  • It creates a small web server inside the chip.
  • When we open the IP address shown in Serial Monitor, a webpage appears with ON/OFF buttons.
  • Clicking the buttons sends a signal to ESP32, which turns the LED ON or OFF.
    The website
    The led

Task 12: Soldering Prerequisites

Soldering is the process of joining two or more electronic components using a filler metal called solder. It is an essential skill in electronics for assembling circuits on perf boards or PCBs. For this task, I learned about the soldering tools in the lab and practiced basic soldering under the guidance of a coordinator.

Steps I Followed

  1. Got familiar with the soldering equipment in the lab:
    • Soldering Iron → tool that heats up to melt solder.
    • Solder → alloy used as filler material for joints.
    • Flux → chemical that improves solder flow and prevents oxidation.
    • Soldering Wick → used to remove excess solder.
  2. Heated the soldering iron and applied solder carefully to connect the LED, resistor, and wires.
  3. Used the soldering wick to correct extra solder and ensure clean joints.
  4. Completed the circuit and tested the LED on the perf board successfully in the presence of a coordinator. tested the led

Task 14: Karnaugh Maps and Burglar Alarm Circuit

The system has two inputs:

  • D (Door) → 0 = closed, 1 = open
  • K (Key) → 0 = not pressed, 1 = pressed The Alarm should turn ON (blink LED/buzzer) only when the door is open and the key is not pressed.

Truth Table

Door (D)Key (K)Alarm
000
010
101
110

Karnaugh Map

For 2 variables (D, K):

K'K
D'00
D10
The 1 is at (D=1, K=0).

Boolean Expression

From K-map:
Alarm = D · K'
(Alarm is ON when Door is open and Key is NOT pressed)

Simulation

I simulated the circuit on CircuitVerse. When Door=1 and Key=0, the LED blinks (Alarm ON).
For all other cases, the LED stays OFF.
led off
led on

Task 15: Active Participation

I participated in an intra-college hackathon named Codefury, which was a 24-hour online hackathon.
The Participation Certificate

SadServers Task 18: Command Line Murder Mystery

Linux is a free, open-source operating system that runs almost everywhere.
It mainly works with files — you can open, read, search, and manage them using simple commands.

Key Linux Commands

  1. ls – List files
  2. cat filename – Display file contents
  3. grep "pattern" filename – Search text -i # ignore case
    -A n # show n lines after match
    -B n # show n lines before match
    -E # extended regex (multiple patterns)
  4. head -n 10 filename – First lines tail -n 10 filename – Last lines
  5. awk 'FNR == N' filename – Print specific lines
  6. command1 | command2 – Combine commands
  7. echo "text" > file – Print or save text
  8. md5sum filename – Creates a unique hash of the file. I navigated through the files and by applying various commands, found the murderer and hence made the Server Happy:) happy sever:)

Task 20: Notebook Ninja – Getting Started with Jupyter

Jupyter Notebook is an interactive environment where we can write code and also explain it side by side.
It makes learning and presenting easier because one can run Python code, see the output instantly, and also add notes in Markdown.
I feels like a digital notebook where one can mix text, code, and graphs together in one place.
find the notebook here!!

Task 21: Watch & Reflect – Intro to Machine Learning

The resource article summarizing the two videos has been written and uploaded.
You can find the links to the articles below:

UVCE,
K. R Circle,
Bengaluru 01