cover photo

COURSEWORK

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

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

13 / 9 / 2025


Task 1: 3D Printing

  • Learned that an STL file is the common format for 3D models used in printing.
  • Understood slicing → the process of breaking the model into thin layers and creating G-code for the printer.
  • Picked up some key settings:
    • Bed temperature – helps the first layer stick.
    • Infill density – controls strength vs. material use.
    • Layer height, print speed, nozzle temp – all influence the final quality.
  • Tried it out by downloading a sample model from Thingiverse.
  • Used Ultimaker Cura to slice it and get it ready for printing.

Task 2: API

In this task, I learned that an API (Application Programming Interface) is a way for two applications to communicate. Instead of collecting or storing data ourselves, we can request it from an API and use it in our own app. For example, a weather app doesn’t generate weather data. It simply fetches it from a weather API.

To practice, I built a simple weather app using the OpenWeather API. I created a webpage with a search box where the user can type a city name. When submitted, my app sends a request to the API, which responds with details like temperature, weather description, humidity, etc. That information is then displayed on the screen.

This helped me clearly understand the request–response cycle:

  1. The app sends a request to the API.
  2. The API returns a response in JSON format.
  3. The app uses that data to display meaningful information to the user.

Task 3: Working with GitHub

GitHub is a platform that helps developers store, manage, and share code.
It lets multiple people work on the same project, track changes, and suggest improvements using pull requests. It also has tools like GitHub Actions to automatically test code and make collaboration easier.

Steps I Followed

  • Forked the given repository to my GitHub account.
  • Cloned the repository using Git Bash.
  • Created a new branch to work on.
  • Fixed the error in main.py by removing the extra +1.
  • Staged the repository for commit and committed the changes.
  • Pushed the branch to my GitHub repository.
  • Opened a Pull Request (named fixed_code) to the original repository.
  • Verified that GitHub Actions tested my code and confirmed the fix.

Task 4: Working with Ubuntu Command Line

The command line in Ubuntu is a text based interface that allows users to efficiently manage files, folders, and processes. This task helped me practice basic commands and understand how to automate repetitive tasks using loops.

Steps I Followed

  • I created a folder named test using mkdir test.
  • I navigated into the folder using cd test.
  • I created a blank file without using a text editor using touch file1.txt.
  • I listed the files in the folder using ls to confirm the file was created.
  • I created 2600 folders automatically by using the command: mkdir N{1..2600}
  • I created two text files with the words Good and Work using: echo "Good" > file1.txt echo "Work" > file2.txt
  • I concatenated the two files and displayed the result on the terminal using: cat file1.txt file2.txt > combined.txt cat combined.txt

Task 5: Implementing Linear Regression from Scratch

Here is the code

Here is the math behind linear regression

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

In this task, I worked with NumPy and Matplotlib to decode a scrambled matrix into a hidden image.

NumPy is a Python library for handling arrays and performing mathematical operations efficiently. It lets you reshape, flip, and manipulate matrices easily. Matplotlib is a library for visualizing data, and using imshow(), we can display a 2D array as an image. Images can be thought of as matrices, which makes these libraries perfect for this task.

Steps I Followed

  • I started by loading the scrambled matrix from the file using numpy.load().
  • I checked its shape and noticed it was (200, 50), so I reshaped it into a 100 × 100 square matrix to make it easier to work with.
  • I used matplotlib.pyplot.imshow() to display the reshaped matrix and see the scrambled image.
  • The image wasn’t oriented correctly at first, so I experimented with NumPy operations like transpose, vertical flip, and horizontal flip until it looked right.
  • Finally, I displayed the decoded image clearly and confirmed it was correctly revealed.

Click here to view my code.

Task 7: Create a Portfolio Webpage

I coded the webpage directly using HTML for the content and CSS for styling. After completing the website, I pushed the project to GitHub and deployed it online using Vercel, making it publicly accessible.

click here to check my personal portfolio

click here for the code

TASK 8: Writing Resource Article using Markdown

I wrote a technical resource article on “Data Visualization in AI & Analytics”. Here is the link to access it

While doing this article, I learned how to use Markdown effectively (by creating headings , using bold and italic text and making bullet points and numbered lists).

Task 9: Tinkercad

In this task, I learned how to use Tinkercad for electronics prototyping. Tinkercad provides a platform where circuits can be built and tested without any physical hardware, making it perfect for quick experiments and learning.

To practice, I built a simple circuit using an ultrasonic sensor connected to an Arduino. It uses the same principle as that of SONAR. The sensor sends out ultrasonic pulses and measures the time taken for them to bounce back from an obstacle. The Arduino then calculates the distance based on this time and displays the result on the serial monitor. The entire setup was tested virtually on Tinkercad, eliminating the need for physical components while still showing accurate output.

TASK 10: Speed Control of DC Motor

In this task, I learned the basic techniques of controlling DC motors using an Arduino and an L298N motor driver. A DC motor requires more current than the Arduino can provide directly, so the motor driver acts as an interface that allows us to control both the direction and speed of the motor safely. The L298N, which works as an H-Bridge, enables forward and reverse rotation by controlling current flow through the motor.

To practice, I built a setup using an Arduino UNO, an L298N motor driver, and a 5V DC motor. First, I simulated the circuit in Tinkercad to ensure the connections and code worked correctly. The Arduino sent control signals to the motor driver, which then powered the motor. By using PWM (Pulse Width Modulation) signals from the Arduino, I was able to vary the motor’s speed.

After the simulation, I replicated the same setup on actual hardware and successfully demonstrated motor control, recording videos of the process. Click here for the video

TASK 11: LED Toggle Using ESP32

In this task, I learned how an ESP32 can be used as both a microcontroller and a web server. The ESP32 has built-in Wi-Fi capabilities, which allows it to host a web page and let users interact with connected devices remotely. By setting it up properly, we can control hardware like LEDs from any device connected to the same network.

To practice, I built a simple project where an LED was connected to one of the ESP32’s GPIO pins. Using the Arduino IDE, I wrote and uploaded code to the ESP32 that turned it into a standalone web server. On the hosted webpage, I added buttons to turn the LED ON and OFF. When a user clicked a button, the ESP32 received the request and changed the state of the LED accordingly.

Task 12: Soldering Prerequisites

Soldering is the process of joining electronic components by melting solder to create a strong and conductive bond. It is one of the most important skills in electronics since it allows us to build and assemble circuits on a perf board or PCB. For this task, I learned about the basic soldering tools available in the lab and practiced making a simple LED circuit under the supervision of a coordinator.

Steps I Followed

  • Got familiar with the soldering tools in the lab:
    • Soldering iron – heats up to melt solder.
    • Solder – the filler material that bonds the components.
    • Flux – helps the solder flow properly and prevents oxidation.
  • Placed an LED and a resistor on the perf board and used the soldering iron to connect their terminals with solder.
  • Took care while soldering to avoid short circuits and overheating of components.
  • Removed any excess solder carefully to keep the joints neat.
  • Finally, tested the circuit by connecting a power source, and the LED glowed successfully, confirming that the soldering was done correctly.

Task 14: Karnaugh Maps and Burglar Alarm Circuit

For this task, I designed a simple burglar alarm system using Karnaugh Maps and basic logic gates. The system has two inputs:

  • Door (D) → 0 = closed, 1 = open
  • Key (K) → 0 = not pressed, 1 = pressed

The alarm (LED or buzzer) should activate 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 the two variables D and K, the K-map looks like this:

D\K01
000
110

From the K-map, the Boolean expression for the alarm is: Alarm = D · K'
This means the alarm turns ON only when the door is open (D=1) and the key is not pressed (K=0).

Circuit Simulation

I implemented the circuit using logic gates on CircuitVerse. When D=1 and K=0, the LED blinks to indicate the alarm is ON. on

For all other input combinations, the LED remains OFF, showing the system works as intended. off

TASK 15: Active Participation:

I participated in CodeFury 8.0, organized by IEEE UVCE. CodeFury 8.0 Participation Certificate

Task 20: Notebook Ninja – Getting Started with Jupyter

For this task, I explored Jupyter Notebook. It’s like a digital notebook where I can write code, run it instantly, and also explain things using Markdown in the same place. This makes it really helpful for both learning and presenting ideas.

What I Learned

  • How to use Markdown for adding headings, lists, formatting, and even images or code.
  • That Jupyter is useful not just for coding but also for adding explanations right next to the code.
  • How to do basic Python calculations and see the results directly.
  • How to plot a simple graph using Matplotlib.
  • Why it’s important to keep the notebook neat and easy to read. Here is the link to my jupyter notebook.

Task 21: Watch & Reflect – Intro to Machine Learning

I completed this task by writing a report on the two given videos. Here is the link to read it.

UVCE,
K. R Circle,
Bengaluru 01