Thursday 6 June 2019

Some things to study before joining an IIT for masters program

I personally feel one should know these things before joining IIT delhi or IIT's in general. You can learn them during your semester but it creates immense pressure very often as every assignment would come with strict deadlines.

So don't waste your valuable time. Enjoy but be in touch with some of these at the same time !!! Your life would be then chill here at IIT Delhi...

0. Learn Typing - It is important actually. it was one of the criteria for passing one of our courses. Your typing speed should be 40WPM with eyes open and 10-15 WPM with eyes close. This takes a while but with practice you would be able to do it.
There are many good websites for doing this.
You can google.
https://www.typing.com/

1. C++/ Java - You need to be proficient in at least one of the 2 subjects. But still it is recommended to know the basics(conditionals, Iterations, functions, Arrays, Strings, Operators, Libraries-STL in C++ and Collections class in Java) of both the subject. It's a must as professors here give assignments with an understanding that you know decent programming. Also your TA duty would require you know these languages. For instance my TA duty in 1st semester was in COL100 course where C++ was being taught to the students. I did most of my assignments in Java, you can prefer C++ also.
https://www.javatpoint.com/java-tutorial
https://www.javatpoint.com/cpp-tutorial

2. Latex - This is required as you need to submit your report of assignments in PDF format generated from Latex. It looks more elegant and most of the courses also would be requiring the same.
https://www.latex-tutorial.com/tutorials/

3. Python - This would be handy in 2nd semester for sure. In first semester in some assignments it may help. Try to know the basics (conditionals, Iterations, functions, Strings, Operators). I suggest you go through the free code-academy python lectures. It's interactive and good for beginners.
https://www.codecademy.com/learn/learn-python

4. Probability and Statistics - You would find probability in almost all the courses here at IITD. So keep your foundation strong in this subject. Really strong !!!...In statistics mean, median, mode, weighted avg etc. Just the basics you should know.

5. Linux/Unix Commands - Basic linux commands like cd, touch, grep, mkdir, ssh, scp...etc. Do read it and practice a bit. Linux is all what you have to deal with at IIT Delhi.
https://www.tutorialspoint.com/unix/unix-useful-commands.htm

if you still get time after completing the above then try these:-

6. Read proofs from cormen that were not required in Gate. Like amortized analysis of binary heaps, binomial heaps...Algorithms for all versions of Knapsack....Randomized algortihms...etc...

7. Learn PHP - This really helped me in many of the tasks. PHP is basically a web scripting language which is used to build dynamic websites. You should know HTML, CSS, Javascript i assume.
https://www.w3schools.com/php/

8. Try to build a parser from scratch using C++, Java or Python. Suppose the task is to parse every print statement of C++ how will you do that? The input would be just like "print("hello world");".
You should be able to parse it and generate the parse tree and display it. Here it would be few tokens like "print", "(", "hello world", ")", ";" . Then do a traversal of the parse tree generated and print in in-order. You can google about other parser related question !!! I just made it up !!!
https://www.codechef.com/MAY14/problems/COMPILER

9. Try to learn the language PROLOG. It's bit different from the usual way we code in other languages. It is optional, you will learn here !!!
http://www.swi-prolog.org/pldoc/man?section=quickstart

10. Shell Scripting - It actually helped me in my TA duty and ultimately i got to do project under Parag sir by impressing him. This is hard though, you can skip it !!!
https://www.javatpoint.com/shell-scripting-tutorial


Most of my friends felt bit tougher because they lacked some of the above skills and they had to patch up for it which took a while. So if you can patch up before coming here, then you be bit more relaxed and your life would be easy going.

Good luck....!!! Cheers !!!

IITD HPC Details

PLEASE VISIT THIS LINK :- https://github.com/kanha95/HPC-IIT-Delhi FOR DETAILED EXPLANATION.


IIT Delhi high performance computing:- You can use it for machine learning or other tasks which require a lot of cpu, gpu and ram.

Get HPC Access from here https://userm.iitd.ac.in/usermanage/hpc.html

Download filezilla. Login into filezilla using:-
Hostname = hpc.iitd.ac.in
Username = mcs182012
Password = ********

Transfer your python and data files using filezilla drag and drop.

In linux command promt type:-
ssh mcs182012@hpc.iitd.ac.in
Then type your password and hit enter

After successful login type:-

Type:-(for first time login only)
cp /home/apps/skeleton/.bashrc  $HOME/.bashrc
cp /home/apps/skeleton/.bash_profile $HOME/.bash_profile
ln -s $SCRATCH $HOME/scratch

Now the main work comes. You need to specify the resources you need.
Type:-
qsub -IP cse -l select=1:ncpus=8:ngpus=1:mem=24G -l walltime=6:00:00
Wait till resources are allocated...

Use cd command move to your home directory. Eg:- cd ../../../home/cse/mtech/mcs182012
You can also use scratch to operate but all the files in scratch are auto deleted.
So you need to take care of this if you are working on scratch directory.

Home directory space - 30GB
Scratch directory space - 100GB

Load python3.6 modules now...
module load compiler/python/3.6.0/ucs4/gnu/447
module load pythonpackages/3.6.0/ucs4/gnu/447/pip/9.0.1/gnu
module load pythonpackages/3.6.0/ucs4/gnu/447/setuptools/34.3.2/gnu
module load pythonpackages/3.6.0/ucs4/gnu/447/wheel/0.30.0a0/gnu

module load apps/pythonpackages/3.6.0/tensorflow/1.9.0/gpu
module load apps/pythonpackages/3.6.0/keras/2.2.2/gpu
module load apps/pythonpackages/3.6.0/pytorch/0.4.1/gpu
module load apps/pythonpackages/3.6.0/tensorflow/1.9.0/gpu
module load apps/pythonpackages/3.6.0/torchvision/0.2.1/gpu


Download IITD Certificate from here - http://www.cc.iitd.ernet.in/certs/CCIITD-CA.crt
Transfer to filezilla using drag and drop again.

Now use the command.
export SSL_CERT_FILE=$HOME/CCIITD-CA.crt
lynx https://proxy62.iitd.ernet.in/cgi-bin/proxy.cgi
Login using id and password.

Now set the http and https proxy....
export http_proxy=10.10.78.62:3128
export https_proxy=10.10.78.62:3128

install python3 libraries now...
pip install scipy matplotlib scikit-learn scikit-image numpy pandas --user

Alternatively HPC has a lot of libraries. Just use the command :- module avail
to list all of them.
Copy the module text you want and type :- module load YOUR-MODULE-LINK
to load the module.

Now run using python command.
python test.py

You can use the command :- qstat -u $USER
to see the status of your resources.

You can then delete any resources using the command:- qdel JOBID
JOBID is the number obtained after type qstat -u $USER

If you stopped your program in the middle of execution, then it will give CUDA OUT OF MEMORY error next time if you try to run program on gpu from the same login node.
So you need to flush the gpu.
Type:-
nvidia-smi
kill -9 PID


------------------------------------------------------------

My Website - http://www.cse.iitd.ac.in/~mcs182012/

Things to know if you are joining IIT Delhi

I will start explaining about the course work and then will proceed with other details.

In IIT's course work curriculum is followed not class work curriculum, which means every semester courses will be offered by professors and you need to enroll in courses of your choice. So say Machine Learning course is offered, then Btech, Mtech, MSR, PHD all students can enroll in it. You will be sitting and competing with all of them during the course.

The grading system is solely dependent on the professor. Some professors use relative grading while some use absolute grading.

Here are the grading scales :-

A = 10 CGPA
A- = 9 CGPA
B = 8 CGPA
B- = 7 CGPA and so on...

Overall CGPA is the weigted average of all individual course CGPA. Like some courses would be of 4 credits and some of 3 credits.

Grading structure in each course is also dependent on the professor. The grading structure is announced by the professor at the start of the course. The general grading structure is :-

Assignments - 25% weightage
Quizes - 5% weightage
Minor 1 exams - 17.5% weightage
Minor 2 exams - 17.5% weightage
Major exams - 35% weightage

There are 2 phases of course registration.

1. Pre-registration
2. Registration

In Pre-registration phase you just select the courses you might be taking or interested in taking. You can change it at later point of time. This usually happens 2 months before the start of the semester and is conveyed to everyone through mail.

In registration(add/drop) phase, you select the courses strictly. It is always advisable to select more number of courses so that you can withdraw from any course if you don't like it. This period is generally 7-15 days in the start of the semester.

You can do 4 things with a course:-
1. Credit the course
2. Audit the course
3. Withdraw from the course
4. Sit through the course

1. Credit the course:- If you credit any course then it will be added or counted to your CGPA. By default every course you add this option is selected.

2. Audit the course:- If you audit the course the it will be not added or counted in your CGPA. You final marksheet will contain a statement that you had audited the course. The audit period is generally after minor 2 exams. This is conveyed in a separate mail to everyone. The auditing requirement is set by the professor and he would announce it in the first lecture. If not you can ask the professor about it. Some professor don't allow this option but majority do.

3. Withdrawing from a course:- Apart from dropping a course there is also another option, i.e. withdrawing from a course. You can withdraw from a course just after minor 2 if you feel your grades are not good or any other reason. There will be another separate mail regarding this. This is known as the withdrawing period. So if you add more courses during add/drop phase then it would be beneficial here.

4. Sit through the course:- You can simply go and attend the classes to learn the theory without any of the above option. Some professors don't like it, but majority of them allow.

Portal for all these activities :- https://eacademics.iitd.ac.in/sportal/login
You can access the link from IITD WIFI/LAN only.

You will get your id password after joining. Your id password would same for all purposes like wifi, lan etc...

SUBMISSION OF ASSIGNMENTS AND DISCUSSION FORUM:-
In majority of the courses you would be submitting your assignments in the moodle.
Link:- https://moodle.iitd.ac.in/login/index.php
The id password are same as previous.
For most of the courses the discussion are carried out in PIAZZA forum. Make sure to enroll in piazza forum at the start of each course. You can clear your doubts here and get help at all times.
The enrolment instructions would be provided in the course webpage by the professor. The course webpage would be announced by the professor in the first lecture.

SCHOLARSHIP/STIPEND :- You have to sign a form available in the above link every month to get your stipend. You have to sign the form during the first 10 days of every month. If you fail to do so then your stipend will come in the next month after you fill the form for the same month. No separate attendance is maintained. This is helpful and best part of IITD !!!
In case of stipend not coming in any month even if you have filled the form, immediately proceed the PG section to enquire about the same. The PG section is in the building front of central library.
Note:- If you score less than 7 CGPA then your stipend will not be credited for the next semester. So 12,400 * 6 = 74,400 rupees loss !!!

You can check your daily mails at :- https://webmail.iitd.ac.in/roundcube/
Make sure to check your mails 2-3 times a day. Better to forward it to your gmail account so that you don't miss any important mail. No one would be there to tell you personally. So you should be aware of it.

You can change your id password and also forward the mails to gmail account using the link:- https://www.cc.iitd.ac.in/usermanage/index.html
or userm.iitd.ac.in

Course Curriculum Link:http://www.iitd.ac.in/content/curriculum-info
You can check your courses and other details here.

Forwarding the mail procedure :- Go to the above link. Go the update LDAP profile. Login using your id password. Scroll down, there will be an option "Email Forward address". Fill it with your gmail address. Hit proceed. Done !!!. It will take some time to redirect mails... It is really helpful and you should do it ...

The central library remains open on all days except the national holidays. You can go there with your ID card to read and borrow books. We CS guys hardly go there!!!
Link :- http://library.iitd.ac.in/

There is also one specific library for each department. For CS people there is a library in SIT building, ground floor infront of lift.

After joining, you should take access for Mtech Lab and GCL Lab. Mtech lab is in SIT building and GCL lab is in bharti building. You can go there to study or use the computers present there. IITD have strict plagiarism policy so make sure not to save your assignments and all there. They might be stolen and you will be punished for the same. No mercy !!!
You can get the access from Vandana Ma'am who usually sits beside the Mtech lab.

Teaching Assistant/ TA ship:-
In first semester you don't get a chance to choose subjects to be TA of but from following semester you can give your preference.
TA duty includes evaluation of minor/major papers, taking labs, taking assignment demos, grading etc. Each course would be having a fixed number of TA's. The tasks are usually distributed by the professor taking the course. You should be in touch at all times through your webmail else the professor might take strict action against you even leading to cancellation of stipend. 3-4 hours is sufficient for TA work in a week. Sometimes even less !!!
Your TA ship will be cancelled if you score below 7 CGPA !!!

Selection Of Guide for Minor/Major project:-
After your first semester(Mtech program), professors would be sending you mails regarding projects offered by them. You need to select projects and professors as per your choice and reply them. This is followed by a shortlisting and an interview. Shortlisting is usually based on CGPA, TA work if you have done under the professor etc. Interview is general background check. No technical questions are asked in general.
Some professors don't send mails. You can send them mails during the last month of 1st semester if you are interested. It is crucial that you select your guide properly. It would matter in placements too !!!

Specialisation:-
This is optional in IIT Delhi. You can still go for it. You have to do 6 credits in the relevant field and your minor/major project should be in the same field as well.

Booking a room:-
If you wish to book a room for any event like farewell, seminar, discussion etc, you can do the same at the SIT office. SIT 001 is the seminar room.

BSW Link:- http://bsw.iitd.ac.in/
Visit the above link for all details regarding settings, softwares etc etc.
You can also get some of the previous semester question papers here.

Hostels:-
Each hostel is facilitated with GYM, basket ball court, reading room, individual hostel mess, TV room, Music room etc etc. You can get the keys from the guard by submitting your ID card.

Hostel mess timings:-
Breakfast - 7:15am - 9:15am
Lunch - 12pm - 2pm
Dinner - 7pm - 9pm

You can request the mess people to save food for you in case you fail to attend on the specific timings someday or sick.

The hostel fees are deducted from the SBI account you have provided during the admissions. You can provide IITD SBI account if you have and account here or else any other outside SBI account.

In case of leaving for home you need to fill a rebate form available at the care takers office so that your food money is saved for the entire duration. You can get a maximum of 15 days rebate within a semester.

You can book hostel guest rooms for your parents or guests which costs 750 per day which includes food. Alternatively you can keep them in your own room at a charge of 400 per day including food. The guard has the required forms for the same.

You can also book the MAIN GUEST HOUSE which costs 1500 per day which has ac facilities.

In first year, 3 people in one room are there. In the final year you would get your single rooms !!!

Most of the hostels have their own night canteen. They remain open till 3am in case you feel hungry !!! I personally like Jwala and Aravali Night canteens.

SAC (Student Activity Centre):-
The SAC has a GYM, swimming pool, Table tennis court, music room, dance room, Barber Shop etc etc.
The swimming pool is generally active during the summers. You can enroll for the same. Enrolling instructions are provided through mail or you can check the notice board of SAC for the same.

Incubation cell, training and placement cell and Staff Canteen:-
The incubation cell and training and placement cell is located beside the staff canteen. You can give a visit there to know about the current start ups incubated by IITD.
The staff canteen is located beside the Department of Design. You can ask guards if you fail to find it. You can have some delicious snacks here and tea !!!
You can also try food at masala mix. It serves delicious food at affordable rates. There is also a 24x7 operating CHAAYOS beside it.

BICYCLES:-
You can purchase one bicycle at the start of the year. Many shops would be coming to sell only during this time. The cycle maintenance shop is beside the CHAAYOS.

Alternatively you can register for LETUSCYCLE and use the yellow bicycles available throughout the campus.


I have tried to summarize maximum of the things. Still a lot you need to explore on your own. Feel free to roam around and explore !!! Have a nice and interesting life ahead at IIT Delhi....