/starter-tasks

Tasks to get started and gain knowledge of general CS

Primary LanguageSCSS

Logo

ACM Student Chapter - Amritapuri
Task List - 2021

A list of beginner level tasks to get started with crucial CS skills

Some reminders...

  • Google is going to be a very dear friend, not only for these tasks but throughout your career, so it's best to learn how to efficiently Google
  • These tasks are for you to explore the wide world of Computer Science and not just a "Get it over with..." task list. Explore what areas capture your interest
  • Don't try and cheat, for your own good, it just defeats the purpose
  • We are always here to help you, just pop a question in our Discord channel. You might not get a direct answer, but you will absolutely be pointed in the right direction

The Tasks

Task 0

Create a GitHub and Git Account

  • Why make a Github Account : GitHub is a website for developers and programmers to collaboratively work on code. Its like another social media app for coders who can help others with their code and contribute to large projects and codebases. Most companies check your github account to see your background knowledge in code and your contribution in various code projects.

  • Click this link and follow the steps to create a Github Account

  • 'Fork' this repo into a private repo of your own and update your work for each of the following tasks.

  • Use one subdeirectory per task and include a README outlining your work.

  • Note : Don't make any pull requests to the master yet !

Look into using Git purely from your terminal, it's quite eye opening for most beginners to open source

Task 1

Install Linux

Feel free to install any of the linux distributions(Ubuntu, Garuda, Debian, Fedora, Kali Linux, etc.) if you have any previous knowledge about them. Otherwise as a beginner the best linux distribution to explore is Ubuntu.

  • Dual Boot (Multi-booting is the act of installing multiple operating systems on a single computer, and being able to choose which one to boot.)

Follow the steps shown in this link to dual boot your device with both windows and Ubuntu (Note: This is only for users not using macbooks / iMac).

  • For those who do not wish to dual boot their system you can look into getting a Virtual Machine to simulate any Linux distro.

Task 2

Bandit OTW - A Terminal Based Task

  • Complete the first 10 levels of the Bandit OverTheWire Challenge: Bandit 

  • This helps to improve your navigation of the Linux terminal... Try retaining what you learn in this challenge by playing around with the linux terminal in your own time .

  • This might seem hard at points, but it is in essence simple, just really obscure. So perseverance is key !! (as well as Googling XD)

Task 3

Set up a Code Editor (VSCode Preferred)

What is a Code Editor ?

  • A code editor is nothing but a text editor that is specialized for writing software. It may be a stand-alone program or part of an integrated development environment (IDE). They make writing and reading the source code easier by differentiating the elements, so the programmers can view their code.
  • It is an integral part of any programmer's toolbox.
  • Most prefer to use VSCode for it's support of a wide range of languages, as well as it's extensions and integrations
  • This link should get you started : Download VSCode

Task 4

Project Euler - First 5 Problems

Feel free to do more of these problems / explore more interesting problems in the never ending problem archives

Task 5

Create a Tribute Page

What is a Tribute Page?

  • A Tribute page is a website of something/someone you admire the most in your life

  • Make a website describing the said thing/person and why you admire it/them so much

  • There is no requirement of using any JavaScript in your program. Tribute pages are very simple websites whose only purpose is to highlight the object/person of interest

Why make a Tribute Page?

  • Tribute pages are a way to let the world know your thoughts on something/someone and educate them along the way

  • It will teach you the basic HTML/CSS and hosting skills you require to make your own website which will be extremely useful to you in the future

  • Even though there is no "requirement" of using JavaScript, you can use any technology you want to make and host your website.

  • In the future, your CS career will depend on you highlighting your skills and achievements better than others. This is a very good way to get started with it

Create a Tribute Page FROM SCRATCH using your own source code and host it on any Hosting service that you prefer. The most popular ways to host simple websites would be : Heroku, Netfify, and GitHub Pages. Do NOT use drag and drop website builders like Wix.

How do you get started with making a website?

When it comes to the design of your websites, imagination is the only limit!
For guide on the programming part, we've provided you with all the resources you need in #resources on our Discord server

For the Hosting part, you can follow any of the following tutorials :
GitHub Pages, Heroku, Netlify

Have fun doing this and feel free to go all out 😄

Task 6

Data scraping using Python - A Web based Task

  • Use a Python script to record the number of searches for the term 'machine learning' from the year 2000 to present.

  • You can use the Google Trends page for the term to get the values, and save whatever you get into a table / graph

  • This should be sufficient to get started - Web Scraping Basics

Task 7

Kaggle + Intro to ML course - An AI based Task

  • Create a Kaggle account

  • Complete the "Intro to Machine Learning" course by Dan Becker : Learn Intro to Machine Learning Tutorials 

  • Pay special attention to the 7th and final part of this course which walks you through how a typical AI / ML Hackathon would take place

Task 8

Secret Agent Password

Task 9

Advent of Code

What is Advent of Code?

  • Advent of Code is a set of annual Christmas-themed computer programming challenges.

  • Each challenge consists of two parts which much be solved in order

  • Challenges are released according to The Advent Calendar

  • Every participant is provided with a large amount of input and a challenge.

  • You must solve the challenge and give the input to your code to get the desired output.

  • The output is then submitted on the website

  • If the output is correct then, the participant is awarded a star

  • Input is unique to each user so, there might be thousands of solutions for each problem which won't work for any other input.

Why Advent of Code?

  • The website provides you with input, a problem statement and a place to submit the output. It doesn't matter which language you use to solve the problem.

  • Along with the above point, Advent of Code only wants the proper output so it doesn't matter how slow/fast your code is.

  • This provides a ton of flexibility for beginners to start with programming and learn any language they want and not worry about slow beginner code

  • A real time leaderboard is maintained so, even if you're an extremely advanced programmer you can aim for the top by making the fastest possible solution and winning Goodies along the way!\

How do you get started with Advent of Code?

  • Once you've logged in, visit the earliest event (2015)

  • Start with the 1st problem

  • Then, click on  "Get Your Puzzle Input"

  • Once, you have the input, copy and paste it in a file in your system

  • Use your mind and Googling skills to understand the problem and solve it in any language of your choice

  • Once you have the answer, submit it and if it's correct you will be awarded with a 🌟

  • If it isn't correct, keep trying until you figure it out

  • Continue solving problems until you reach the point where you think you no longer have any clue. Once you reach that point, go to the next year and keep honing your skills

Give it your best shot and solve as many puzzles as you can from each and every year 😉

Task 10

Explore LaTeX

What is LaTeX?

  • LATEX is a great tool to create documents. It's based on the 'WYSIWYM' (what you see is what you mean) idea, meaning you only have to focus on the contents of your document and the computer will take care of the formatting. With LATEX, it's very easy to create professional-looking material.
  • This article presents the basics of how to create a document - [LaTeX Tutorial]https://www.overleaf.com/learn/latex/Creating_a_document_in_LaTeX
  • Your task is to follow the tutorial make a short write up on yourself, your interests, dislikes, hobbies and life in general.
  • This is going to be a very useful tool when you want to write / publish papers in the future

Task 11

Having Fun with Logic Gates

What are Logic Gates?

  • Logic Gates are the building blocks to every digital circuit ever built

  • You're seeing this task from a computer? There are logic gates in each and every part of your computer.

  • Logic Gates form the basis for the digital era that we are living in

Why learn Logic Gates?

  • Computers only understand two things : 0's and 1's

  • Well there isn't much we can do with a few zeros and a few ones right?

  • And you'd be right. What can anyone do with nothing but 1000101?

  • So, this is where logic gates come into play

  • Logic Gates are decision makers. They take a bunch of 0's and 1's and perform operations on them

  • Everything from a simple calculator to a satellite rely heavily on these logic gates to perform tasks

Simulate and design every one of the standard logic gates on an online Simulator like TinkerCAD

However, if you're a very cultured person like the good folks at ACM, design all of the logic gates in .... drumroll please MINECRAFT

We've provided a link to the trial of Minecraft Education Edition if you feel like trying it out. Use your Amrita mail ID to sign up for the trial.

How do you get started with designing Logic Gates?

Let your creativity flow through for this task. Learn the standard logic gates and simulate them! How you get it done doesn't matter. The knowledge you gain through this does!

Task 12

Hackerrank Competition in C/C++

Coming Soon !!

Task 13

Enjoy !! 🤘