July 2018 - Fresher's Tasks

Participants : First Years - Odd Semester, 2022 Batch

The following comprises of the set of tasks that you can try to complete to join FOSS@Amrita. It will help you in understanding the basics of various fields in CS, moreover it will help you in building confidence in reading and writing code. In the present world, learning to learn is one of the key skill one should develop which will help you grow. So, approach these problems with the to curiosity to learn and try to build your skills.

Throughout all your tasks Google will be your best friend and you can take references wherever required but Plagiarism is strictly considered. Complete as many as tasks you can, and send us your work on or before 31st July. It’s not mandatory that you should complete all the tasks.

Base Rules

Plagiarism will not be entertained - You are allowed to refer to any online portal, tutorials, forum-answers etc. but copying your code from your friends (or as such from any online source) is strictly forbidden.

Note that Individuals can be disqualified from the intake procedure at the organizer's discretion. Reasons might include but are not limited to plagiarism, or other unsporting behaviors.

Tasks

0. Install Ubuntu 18.04

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, Medium].You can also mention about the errors that you encountered. You may encounter errors while installing Ubuntu, so keep a seperate copy of your data. If you need help in installing the same, write an email to us.

1. Programming

Solve problems from Hackerrank and Codeforces in Python/C/C++ or any other programming language. We will be evaluating everyone’s code submissions, so please do not 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.

Hackerrank:

Codeforces: Try: https://www.codechef.com/ide to run your solutions

2. 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.

3. Begining with Python

You will need to learn the basics of Python to complete this task. You can make use of online IDE such as: https://www.onlinegdb.com/online_python_compiler

Complete the following tasks:

  • Get input of 12 strings, concatenate them 3 at a time, and check if the result is a palindrome.

  • Try to sort a List of numbers with any technique that has been taught in CS50 lecture without using any inbuilt functions.

4. Google Scraping using Python

Given a keyword example,”FOSS@Amrita”, you need to scrape the top ten results related to the keyword given and show the output in the terminal. Write a python script to get the results. You will need to learn the basics of Python and some of to complete this task. You can refer:

5. 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!

6. Captcha Breaking:

Download a png file(using python) with two numbers and an operation, write a python script to read the numbers and operation and outputting the result of operation performed on the numbers.

7. A simple website using HTML+CSS (JS or PHP):

Make a simple website using HTML and CSS. Make a validation form to get the input from the user (email-id, username, and password). Validate whether the username and password are correct. If it’s correct then show “Login successful” in a separate page.

8. Javascript:

  • In this challenge, you will be given an api (json data)

  • Use this link to get the data of various pokemons: https://pokeapi.co/api/v2/pokemon/

  • Write a function to take pokemon’s name as argument and display the information of that pokemon(any one valid information)

  • Write a function that take a “Weakness” as an input and gives the names of all pokemon who have that Weakness. (check the weakness array in the dataset)

9. A Pong game

To create a pong game using javascript (minimal GUI is enough).

  • It should be multiplayer.

  • It can be offline.

10. Git and GitHub:

Get familiar with Git commands by referring online resources. Push all your work into your Github profile by properly placing them into separate repositories for Python, Javascript, Problems and CS50 which will be used for evaluating.

Additional Tasks

1. 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"

  • Download the python code here

2. Project Euler(for Math freaks):

3. Bandit:

Complete Bandit till level 10. Refer: http://overthewire.org/wargames/bandit/