Fresher's Tasks 2019-20
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
Make a repository in GitHub with the name amfoss-tasks and please store your results and project code in the respective folders with the name task-# (where # is the task number). You can explain how you have approached the solution in a README.MD file.
Updated Deadline - 7 January, 2020
Make sure you don’t get sidetracked into learning the whole language for completing a task. You only have to learn the necessary things which are required to complete the task.
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 18.04
Resources: https://github.com/amfoss/vidyaratna#linux
You can get the ISO file from your friends or download it from the Ubuntu website. Try writing a blog on the same so that it’s useful for others. Create a Blog [Wordpress, dev.to]. You can also mention about the errors that you encountered.
You may encounter errors while installing Ubuntu, so keep a separate copy of your data. If you need help in installing the same, send us an email.
1. Star all the amFOSS repositories Since you have made it here, we thought you would be interested in them. You can use this if you need some help in automating this whole process : )
https://github.com/amfoss/star-me
Please add your final successful screenshot 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.
2. Programming
Solve the following problems from HackerRank and Codeforces 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.
Try: https://www.codechef.com/ide to run your solutions
HackerRank:
https://www.hackerrank.com/challenges/compare-the-triplets/problem
https://www.hackerrank.com/challenges/diagonal-difference
https://www.hackerrank.com/challenges/staircase/problem
https://www.hackerrank.com/challenges/birthday-cake-candles/problem
https://www.hackerrank.com/challenges/time-conversion/problem
Codeforces:
http://codeforces.com/problemset/problem/1/A
http://codeforces.com/problemset/problem/71/A
http://codeforces.com/problemset/problem/158/A
http://codeforces.com/problemset/problem/282/A
http://codeforces.com/problemset/problem/96/A
Please push your solutions to the task-2 folder and in the respective HackerRank and Codeforces sub-folders.
3. Google Scraping using Ruby
Given a keyword example, ”Linux”, you need to get the top 10 Google search results for the given particular word. You can use Ruby for doing this task. Ruby has a gem (library), nokogiri which is an HTML, CSS and XML parser.
https://github.com/sparklemotion/nokogiri
4. Advanced XOR:
Read the encryption script "xor_adv.py" and try to understand how the encryption is really working.
You have been given the ciphertext in "ciphertext.txt" which has been encrypted using the script mentioned in Point Number 1
Try finding the key length and then the plaintext to get the flag (You will have to make a python script for this)
After you get the flag, run the script "check_hash.py" and submit your flag there!
5. Get it using Javascript:
In this challenge, you need to generate a web page using the GitHub API. Please use the latest version, GraphQL for accessing the data.
https://developer.github.com/v4/
Write a function to take GitHub username as an argument and display the information of the user (anyone valid information). If no user exists, return “No person exists”.
Username
Name
Avatar
Bio
6. CLI App using Go
Using the flags package in Go, build a command-line tool that prints the details (count of followers, user handle, etc) of a Twitter user. You must give the Twitter handle as input to the flag. The output must be written to a text file (learn about file handling in Go).
Resources**:**
https://tour.golang.org/ (basic understanding of Go syntax)
https://gobyexample.com/command-line-flags (learn about the flags package)
7. Rusted Email
Patterns are really fun to work with and finding one in real life gives you extreme happiness. There exists a unique pattern with email ids too. It would be wonderful if you can write a program in Rust to find whether the given input is an email or not.
Example: [email protected] is a VALID EMAIL
Hint: https://docs.rs/regex/1.1.9/regex/
8. Captcha Breaking:
We would like to know whether your a human or a robot? Download/Create a .png file which contains a simple arithmetic expression like “2 + 2”. Write a python script which can interpret the expression, evaluate it and return the calculated value.
9. Setup a Simple Personal Website
It would be cool if you can have a personal website of your own. We will help you with that. Please look at this awesome repository. Go through the documentation and try to set up your personal portfolio and blog.
https://github.com/github/personal-website
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
11. A Pong game
To create a clone of Pong using Javascript (minimal GUI is enough).
It should be multiplayer.
It can be offline.
12. Python Source
In this challenge, you are expected to find a string whose hash is similar to a given hash in the program, which when passed as input to program produces the output "You are a Genius"
13. Project Euler (for math freaks)
https://www.hackerrank.com/contests/projecteuler/challenges/euler001
https://www.hackerrank.com/contests/projecteuler/challenges/euler002
https://www.hackerrank.com/contests/projecteuler/challenges/euler003
https://www.hackerrank.com/contests/projecteuler/challenges/euler004
https://www.hackerrank.com/contests/projecteuler/challenges/euler005
14. Bandit
Complete Bandit till level 10.
Refer: http://overthewire.org/wargames/bandit/
Please store the password of each level in a .txt file and upload it to your project repository.
You are expected to try the tasks only on Ubuntu or whatever distribution of Linux you prefer as part of the first task.
It is recommended to begin with Task 10 (CS50) if you do not have / or if you feel you aren't confident enough, and then move to the other tasks.
Last updated