Fresher Tasks(S2) 2024-25
This document contains the tasks necessary to proceed with the amFOSS Praveshan process. These tasks are designed to test your skills, and determination, and introduce you to various aspects of software development.
Ensure you stay focused on learning only what's necessary to complete each task, without delving into mastering an entire programming language. Google will be your best friend throughout the journey. While it may be testing at times, developing efficient Googling skills will greatly assist you.
We hope you find these tasks engaging and that you enjoy yourself completing them. All the very best!
Submission Guidelines:
The use of AI tools is strictly not allowed.
Create a private GitHub repository named amfoss-tasks.
Create a README.md file in the root directory of your repository to introduce yourself and answer the following questions:
Why should we choose you?
How do you intend to contribute back to the club?
What are your fields of interest (doesn’t have to be strictly technical) and how do you plan on working on them?
Create directories titled task-## (where ## is the task's serial number) to upload your work for each corresponding task.
Include a brief explanation in the README.md file within each task folder, that portrays your approach to the task and also share your review on the task, unless instructed otherwise.
You may refer to this repository to get an idea of how to format yours: https://github.com/AadarshM07/amfoss-tasks
TASKS
0. Install Linux
Linux is widely recognized among developers for its robust security measures, stable performance, and flexibility. Its open-source nature allows for extensive customization and adaptation to various development needs.
To get you started we need you to install Linux. Don’t forget to backup important data before adjusting disk partitions. You could either switch your OS to Linux or dual boot along with Windows. Mac users are encouraged to use the terminal and Homebrew for package management.
Make sure that all the following tasks are performed on Linux or MacOS.
Resources:
1. The Command Line Cup
Have you seen the Harry Potter movies or read the books? If you have, then you must be familiar with the Triwizard Tournament, where participants must complete a series of dangerous and thrilling tasks. The winner is awarded the Triwizard Cup and eternal glory. Now, for this task, imagine yourself as a daring participant in the real-life magical spectacle known as the Terminal Wizard Championship! Imagine the Linux terminal as your wand, and let its powerful commands be your spells, which will help you to conquer the championship.
Your objective is to explore the Linux command line and complete the given task by using the necessary terminal commands. As you complete each challenge, you’ll receive fragments of a secret code that are scattered across countless files and git branches. You have to find all the secret codes to win the Terminal Wizard Cup and thus, complete the task.
Check out the given repository for further instructions.
GitHub Repository: https://github.com/KshitijThareja/TheCommandLineCup
2. Pixelated Problem Solver
We would like to confirm whether you are a human or a robot! Download or create a simple .png file that contains a simple arithmetic expression like “2 + 2”. Write a Python script that can interpret the expression, evaluate it, and return the calculated value.
3. Beat The Buttons
Here you will uniquely explore JavaScript and get to know its power! There are 4 levels in this exploration. The site is a drum kit site with 7 different buttons. The task starts from the basics, i.e. linking the CSS and JS to the index.html. Post this, you have to add event listeners to the button so that when any of the 7 buttons is pressed, a unique sound should be played. Lastly, you have to do some basic styling on the website to make it look unique and embed attractive fonts from Google Fonts into the site.
GitHub Repository: https://github.com/amfoss/praveshan-tasks/tree/2022/task-08
4. Code The Puzzles
Once you start programming, you don’t just learn how to code but you also learn how to think logically and clearly. In this task, we’ve come up with a few puzzles for you to put your logical ability to the test. You’ll need to solve these questions and implement the solutions in a programming language of your choice. For those who are new to programming, we suggest Python as it hides a lot of complexity with its simple, easy-to-use functions.
Once your answers have been accepted, upload the files for the solutions to directory task-04 in your repository. Provide your Hackerrank username in the README file in this directory.
Contest Link: www.hackerrank.com/cp-praveshan-24
5. Pokémon Rescue
Professor Oak urgently needs your assistance! While he was diligently working on an essential update for the Pokedex, disaster struck, and he accidentally deleted some code from the main repository. Now, he's in dire need of your Python programming skills to help him rebuild the necessary functions using PySide6 and retrieve Pokemon data through the Poke API. Your task is crucial to ensure that his work gets back on track.
GitHub Repository: https://github.com/amfoss/tasks/tree/2023/task-08
6. Flutter JumpStart
Have you ever played Shadow Fight or Super Mario? Well! What about them is similar? One is from the smartphone era, the other dates back to the 1990s. The similarity is that both are games. To be more precise, both games are in the second dimension and need us to move a character, the player, or the game's protagonist. Have you ever considered creating your character and running it wherever you please? What if we told you that by writing code in just one language, you could create a gaming application that runs on both Android and iOS mobile devices? You now have the opportunity to accomplish that. You can achieve this simply by using Google's Flutter framework. Navigate to the repo link and look into the demo bunny game and replicate it. The assets required are contained in the repo itself.
GitHub Repository: https://github.com/amfoss/praveshan-tasks/tree/2022/task-06
Add your project files into the task-6 folder of your amfoss-tasks repository. Add a README.md to the folder as well, and add a short screen recording of the UI you made.
References -
7. Weather Guardian
Comrade Kalashnikov got drenched on his visit to the motherland. He was punished by his superiors for not being properly dressed. Create a handy chrome extension for
Kalashnikov which will keep him well informed about the weather at his next rendezvous location so that he can prepare and dress accordingly to not get reprimanded by his superiors again.
Use HTML, CSS, and JavaScript to complete the task. The extension should return real-time weather data of any location according to user input.
As a developer, nothing is more satisfying than seeing your product out in the wild being helpful to a lot of people. While deploying your extension on the Chrome store would benefit a lot of people, that is beyond the scope of this task and is completely optional.
GitHub Repository: https://github.com/amfoss/tasks/tree/2023/task-07
Resources:
8. Compute Shader
Dive into the world of Vulkan and discover the true potential of compute shaders by mastering Shader Storage Buffer Objects (SSBOs). SSBOs are like a GPU’s superpower — they provide flexible, high-performance storage for reading and writing large amounts of data directly in your shaders.
In this task, you’ll:
Get to grips with how SSBOs work and how they can transform your data processing workflows.
Upgrade a basic compute shader to integrate SSBOs, allowing it to efficiently read and write complex data in GPU memory.
Learn to manage and synchronize SSBOs to ensure smooth, high-performance operations while minimizing errors or data mismatches.
Experiment with custom algorithms and use SSBOs for tasks like simulations, image processing, or other computationally intensive applications.
By the end of this task, you’ll have a solid understanding of SSBOs and how to use them to unlock new levels of efficiency in Vulkan. Whether you're building simulations or pushing complex algorithms to their limits, you’ll be ready to let the GPU handle the heavy lifting.
Review the previous tutorials and documentation, then implement the code based on the concepts covered.
Resources:
https://vulkan-tutorial.com/Drawing_a_triangle/Graphics_pipeline_basics/Introduction https://vulkan-tutorial.com/Vertex_buffers/Vertex_input_description https://vulkan-tutorial.com/Uniform_buffers/Descriptor_layout_and_buffer https://vulkan-tutorial.com/Compute_Shader#page_Shader-storage-buffer-objects-SSBO
9. Operation Kernel
A kernel is the core program around which an operating system is built. Using a custom open-source or self-made kernel can mitigate potential spyware built into operating systems such as Windows.
Tanya Von Degourachaff was delivering a package on behalf of Doktor Wilhelm Voigt that contained such a kernel. It was a little program called the Kreschnder cypher, a kernel written in Rust that contained a unique text pattern required to activate their new state-of-the-art aerial defence system.
Unfortunately, the kernel sustained some damage due to an enemy ambush on the way to the destination. Now it’s up to you, a field engineer Dingus, to restore the kernel before shipping it back out.
GitHub Repository: https://github.com/BiscuitBobby/ruskos-problem-repo
Resources:
Last updated