COURSEWORK
Anish Dev Edward | AUTHOR | ACTIVE |
14 / 9 / 2025
09-09-2025
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.
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
Familiarized myself with the command line and terminal in Linux.
Learnt some commands like:
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.
Overall, implementing this from scratch reinforced my understanding of fundamental ML concepts, which are the building blocks of various advanced algorithms.
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.
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
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.
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.
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.
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.
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.
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'
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.
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.
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.
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