amFOSS Tasks Freshers 2020
amFOSS Tasks Freshers 2020
This document comprises a set of tasks that you can try to complete to join amFOSS. These
tasks are meant to help you in understanding the basics of various fields in CS; moreover, they
will help you in building confidence in reading and writing code. In the present world, learning
to learn is one of the key skills that one should develop which will help you grow so approach
these problems with the curiosity to learn and try to build your skills.
Submission Guidelines
1. Make a repository in GitHub with the name amfoss-tasks
2. Store the results and code in the respective folders each with the name task-#
(where # is the task number).
3. Include a brief explanation of how you approached each task in a README.md file.
4. Make a folder named ‘introspection’. In the folder, write answers to the
following question in a README.md:
a. Why must we choose you?
b. What is your plan for the next 6 months?
c. How would you contribute back to the club?
d. Do you have any feedback for the selection process?
Example: https://github.com/ashwinkey04/amfoss-tasks
Make sure you don’t get sidetracked into learning a whole language for completing a task.
You only have to learn the necessary things which are required to complete the task. Google
will be your best friend throughout the tasks, it will be tricky at times but learning to Google
efficiently will help you greatly.
If you are a beginner with no prior experience with programming, Task-10 would be the right
one, to begin with.
Please ask your questions in the discord channel whose link was sent along with the mail.
Note - Check your email inbox regularly so that you do not miss important communication
from us.
Resources: https://github.com/amfoss/vidyaratna
0. Install Ubuntu 20.04 [Desktop]
Resources: https://github.com/amfoss/vidyaratna#linux
You can download it from the Ubuntu website. Try writing a blog on the same so that it’s useful
for others. Create a Blog, you can also mention the errors that you encountered. You can use
dev.to for this.
You may encounter errors while installing Ubuntu, so keep a backup of your data. If you already
have Windows installed, you could dual-boot Ubuntu alongside Windows. For macOS users,
you need not install Ubuntu but start using the terminal more ;)
If you need help in installing the same, send us an email or contact the seniors.
Please add your final successful screenshot, screenshot.png, in the task-1 folder in
the amfoss-tasks repository.
Note: Do not run the script more than once consecutively - at least not within a short time
span.
3. Programming
Solve the following problems from HackerRank in Python/C/C++ or any other programming
language. We will be evaluating everyone’s code submissions, so please don’t copy the code.
Plagiarism is not the way to get into the club :)
Show us what you did and we’ll be happy with it.
4. Debugging Derbies
Lenna was just trying to make a quiz application for maths using Java. But she seems to be
facing a lot of issues in the code that she wrote. Could you go through the code and find out all
the mistakes and fix them for her?
Once you manage to get the application running, test out each feature because Lenna isn’t
great at maths and would have made a lot of mistakes. One thing Lenna is good at is
commenting on her code, so you shouldn’t have an issue navigating through it.
For example, when you press on the addition button to add numbers, the calculator will
actually multiply them. Hunt for all such bugs, and fix them. Bugs may range from minor typos
in the calculator to, syntax errors, and then logical errors which make the calculator give a
wrong answer.
You can get the code by running the following command in your terminal:
After fixing all the bugs you encounter, upload the MathsQuiz.java file to the task-4
folder in your amfoss-tasks repository.
References:
https://en.wikipedia.org/wiki/Lenna
https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-on-ubuntu-1
8-04
https://askubuntu.com/questions/145748/how-to-compile-a-java-file-on-ubuntu
5. Rustic Scraper
Can you write a Fe2O3 (Rust) script that scrapes (web-scraping) information about the 10 most
COVID affected countries with the details (total cases, total deaths, and total recovered) from
worldometers.info and write it to a CSV file?
Format the result, manually, as a markdown table in README.md in the task-5 folder in
your amfoss-tasks repository, and also add the script & the CSV file.
References:
https://codeburst.io/web-scraping-in-rust-881b534a60f7
https://medium.com/@joydeepubuntu/rust-and-webscraping-ebecc9ae536c
https://guides.github.com/features/mastering-markdown/
6. Geddit
Have you ever explored Reddit? People say it’s a fun place to hang out, the only place which
gives you good karma. The only way we want to go to Reddit is with “Go” - geddit?
Use golang to write a script that can:
● Perform a search for subreddits using ‘memes’ as the search query
● Pick the subreddit that occurs as the first search result
● Using that, upvote posts posted in the last week (limited to 100 posts at max)
Add the golang script to the task-6 folder in your amfoss-tasks repository.
References:
https://github.com/vartanbeno/go-reddit
Tutorial: Get started with Go
7. Ubiquitous UI
After seeing an application run on a mobile phone, ever thought maybe someday you would
like to make your own? How would you feel if we told you that you could make an application
run on both Android and iOS mobiles by writing code in just one language? Well, today you get
to do just that. Using Google’s framework, Flutter, you can do this easily. For your task, you
need to make a simple user interface just like the one given below.
Add your project files into the task-7 folder in 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:
Flutter Installation | Flutter Docs
Tabs in Flutter | Making the dot animated when changing tabs
Image assets to be used as shown in the demo
Note: To be able to run the same application on an iOS device, you need to have a Mac with
XCode in it. You can run the application on just an Android/iOS/emulator device as per the
hardware available to you.
You can use the Perceval tool to retrieve and gather data from git repositories. You can collect
the commits’ information from the amfoss/cms repository using the following commands.
The task is to write a script fetching the repository names (using GitHub API) of an organization
(say amfoss) and fetch the commits of all those repositories using Perceval (given example is
for one repo) and dump them in the commits.json file. Please add the script as well as
the commits.json file in the task-8 folder in the amfoss-tasks repository.
9. Spammer_Spaghetti
Do all modern web browsers have a console in them? What can you do in this console? Spam
your lazy friend with lots of 'Hi' messages on the telegram web using JavaScript.
Please add the JavaScript file in the task-9 folder in your amfoss-tasks repository.
https://www.w3schools.com/js/js_htmldom_html.asp
10. CS50
Watch all CS50 lectures and complete problem sets till week-4. Save the work that you have
done and try to work on the CS50 IDE itself. Please update your status in the GitHub repository
and have your problem solutions in a separate pset sub-folder.
Additional Tasks
Upload the solution and screenshot of the circuit to the respective folder.
14. Bandit
Complete Bandit till level 10.
Refer: http://overthewire.org/wargames/bandit/
Please store the password of each level in a pass.txt file and upload it in the respective
folder.