- রুবিকস কিউব (পর্ব ৪) : রুবিকস কিউবের সমাধান
- ফিজিক্স অলিম্পিয়াডের প্রস্তুতি নিয়ে কিছু কথা: ইমরোজ খান (BUET, EEE)
- গণিত অলিম্পিয়াডের প্রস্তুতি: কিছু সাধারণ প্রশ্নের জবাব (FAQ): পর্ব ১
- এসএসসি, এইচএসসির ফলাফলের ভিত্তিতে মেডিকেলে ভর্তি: আমার ভাবনা
- মেডিকেলে ভর্তি নিয়ে জাফর ইকবাল স্যারের সাদাসিধে কথা: লেখার স্ক্রিনশট
- Naeem Hasan on গণিত অলিম্পিয়াডের প্রস্তুতি: কিছু সাধারণ প্রশ্নের জবাব (FAQ): পর্ব ১
- SALSABIL on গণিত অলিম্পিয়াডের প্রস্তুতি: কিছু সাধারণ প্রশ্নের জবাব (FAQ): পর্ব ১
- sumana on ফিজিক্স অলিম্পিয়াডের প্রস্তুতি নিয়ে কিছু কথা: ইমরোজ খান (BUET, EEE)
- Shishir Kumar Das on গণিত অলিম্পিয়াডের প্রস্তুতি: কিছু সাধারণ প্রশ্নের জবাব (FAQ): পর্ব ১
- Ahnaf Tahmid on রুবিকস কিউব (পর্ব ৪) : রুবিকস কিউবের সমাধান
Follow me on TwitterMy Tweets
Tag Archives: education
*insert the name of a prestigious US university
For US admissions you need—1) Academics (SSC/HSC/A/O level) 2) Tests (SAT, SAT II, TOEFL) 3) Extracurricular Activities (ECA) 4) A Story
But if you stop there, you’ll never get into Harvard/MIT! As we get this question on our facebook group ALL THE TIME, I just wanted to address this.
First, why do you want to get into Harvard/MIT? This is a question that you must ask yourself because Harvard might not be a fit for you and you’d be unhappy. Education quality-wise, many US top colleges will have similar quality of education, but the networks and other opportunities make these prestigious places, well…so prestigious.
How do they select?
First, let me tell you how places like Harvard/MIT build their “classes”. They take people from different fields and try to find the promising ones (or already young stars) in their fields. So if you are in the 12th grade and have nothing to show that you are that great in something, maybe you have no chance of getting into those—I will be honest. However, if you are in grade 8, 9, or even 10, you might have time to invest in something, improve yourself, and achieve greatness. Do something that really interests you, be really good at it, and make it your story. So what is your story?
The reason admission into any US university is hard is because they take a holistic approach—they look at all your scores and extracurricular activities and try to find how you used your time and what your caliber is. For example, if you judge a kid from a village in Africa with a kid from a rich family in the US, you are not being fair. The US admissions people know that.
Let me tell you my story, I went to a school in a small city called Kushtia. There we did not even have a debate club. So I was one of the members who started that. This is the kind of initiative and passion that show your true passion and quality. I was very lucky to make into the national math team several times and won a bronze medal at the International Math Olympiad (IMO). These kind of international honors help a lot. But look—to get there I used to do Olympiad math for 5 hours average (sometime 15-18 hours before IMO) for over 6 years. That is more than 10,000 hours of work. Do anything like that in any field and you will become so good that places like Harvard would love to take you. But are you willing to spend 10,000 hours?
Math Olympiad and Cloning
There was a very interesting post on MIT admissions website that says that if you follow someone who got into MIT and become exactly like that you might as well get rejected because “cloning is still for sheeps”!
“Some applicants struggle to turn themselves into clones of the “ideal” MIT student – you know, the one who gets triple 800s on the SAT. Fortunately, cloning is still for sheep. What we really want to see on your application is you being you – pursuing the things you love, growing, changing, taking risks, learning from your mistakes, all in your own distinctive way.” (http://mitadmissions.org/apply/prepare/highschool )
So just because I got into MIT/Harvard with Math Olympiads, that does not mean that you’d too. I had a lot other things that I did, but more importantly—I had an interesting story to tell relating to all these. It is not even true that just Math Olympiad kids got into Harvard/MIT/ other prestigious schools. People who won international debate contests, made a difference with their social work also got into those colleges. But see one similarity? They were all passionate about what they did and did something really well along with being good in academics and other stuff. So to make yourself stand out, do well in something you really love. That would make you happy in the long run.
Please don’t ask me “I have X in SAT, have done Y ECA, have Z gpa. Will I get into Harvard?” I can’t answer your question—because everyone has a different story to tell and that’s why in the essay you write your story. If a kid from a village in Bangladesh started a business that helped a lot of people that would be more impressive if the kid of bill gates did the same, right?
Finally, nobody is sure to get admission to MIT/Harvard. Historically, Harvard rejected many IMO gold medalists and even IMO perfect scorers. Because they were not a good fit or had severe lacking in some of those 4 fields. So instead of trying to get into Harvard/MIT try to improve yourself and be world class at something. Then you’ll realize that it doesn’t matter whether you got into Harvard or not, but the path you took to become a master is what matters in life.
p.s. If you have more questions:
1. Jon our group: Bangladeshis Beyond Border: Undergrad Admission Info Portal
2. READ the files in the file section.
3. For more info about Ivy league admissions read this excellent blogpost by Nazia.
(After the previous part: Part 1: The Magic Behind Computers)
Summary: Install python, learn how to start coding, and plan to successfully finish the tutorial!
How to install Python:
I have lectured enough about the reasons for learning programming and the theories behind computers, but I know that you are not here for those! You want to learn how to make that game, right? But before you do so, you need to install python in your computer. First, you need python installer (skip if you are using ubuntu or linux). Get the python installer from this link: http://www.python.org/getit/
You can see a lot of installers here. Don’t get confused! For this tutorial we will use 32-bit python 2.7 (at the time of the writeup the latest version is 2.7.6). So download the correct installer file to your computer (see the image above).
As usual double click on the installer and let it get installed (click ‘next’ and ‘ok’ many times!).
Double click on the package manager and install the package.
If you are using Ubuntu you’re all set, because Ubuntu comes with python pre-installed!
Basics and Sanity Check:
So when you write code, Python has an engine (interpreter) that turns your code into instructions that computers can read (those are basically collections of 0’s and 1’s and only computers can understand them). To give commands to computers python has a program (interface) called IDLE. Now to check if the installation worked properly, open IDLE from your programs.
(Windows: Start Menu>All Programs > Python2.7>IDLE (Python GUI), in general you should get it in the list of programs in any operating system).
Now you should see the following window (minus the code text):
Now the “>>>” is the terminal where you can enter any valid python command and it will show you the output. Now type:
print "Hello world! I am learning to code!"
And you should see the output text. Congratulations! You have written your first piece of code!
So what you just did is that you outputted some text on the screen and print is the command for doing so in python. We will explain all these in a lot more details in the next chapters, but for now enjoy your new super power of being able to code!
Now try to do these math with python (We have also included the output. Of course you don’t need to type those!):
Arithmetic operations in Python
>>> 2 + 3
>>> 5 - 1
>>> 2 * 3
>>> 4 / 2
>>> 3 % 2
>>> 2 ** 3
First thing you noticed is that I have added white space in between everything. You don’t really need to do this, but this makes your code look a lot cleaner. So before and after arithmetic signs we add these spaces. Finally, what let’s figure out what these signs are doing. The first one + = addition, - = subtraction, * = multiplication, / = division. Let’s stop for a second– “but what are the next two?” you may ask. and you probably have not seen these before. Don’t worry, they are easy to understand!
The first one is “%” is modulo sign. In python a % b means you are asking for the remainder of a upon division by b. For example: 3 % 2 gave us 1 because that’s the remainder you get when you divide 3 by 2. This is a great way to check if a number is odd or even! If the remainder is 1 the number is odd, and even if it is 0!
The next one, ** means to the power. So a ** b means ab in math. And that means you are multiplying b number of a’s together. More explicitly: 2 ** 3 means 23 = 2 x 2 x 2 (i.e. multiplying 3, 2s).
Play with both the modulo and power operations on the terminal before these concepts make more sense!
Starting to Code:
Now you’re probably thinking, if you enter one line at a time and do simple addition and subtraction then probably you cannot do much. You are absolutely right! That’s why programmers write their programs in a simple text file and then make the language compiler software to run it. As we are becoming pros, we will do the same!
Select File > New Window (or press control + N). You should see a blank screen. This is just a fancy text editor (like notepad), but as you type you will see that the text contents are getting nice color coding (the color coding has a fancy name– syntax highlighting)! Now type:
print "Hello world! I am learning to code!"
# Arithmetic operations
print 2 + 3, 3 - 2, 2 * 3, 4 / 2, 3 % 2
Finally select: Run > Run Module or press F5 key on keyboard and it will probably ask you to save the file. Now give the file any name and end the name with .py (we named it first.py). It is the python file extension (like .pdf, .exe etc) and if you do this the computer will understand that it is python code! Now you can see the output printed in the terminal. Neat!
By the way, the gray texts after the hashtags (#) are called comments. When python runs the code, it goes from top to bottom, but ignores the comments. The goal of these comments is to make the code more clear to the human readers, but you can choose not to type them.
How to a complete this tutorial successfully:
Remember the last time you sat down to learn something? Yes, I do too! And I did not finish it! So it is important that you follow these instructions to learn python successfully:
- Set one hour (or maybe half an hour of time daily). This will make sure you are learning everyday.
- Go through one or two lesson(s) at a time. You might be tempted to go through everything in a single sitting, but that way you will forget everything really fast. So don’t rush and take your time.
- Type everything up yourself. I know it is really tempting to copy-paste the code, but don’t do it! Typing up will ingrain the lessons and commands to your brain as so called muscle memory. So after a while you will be able to code without looking at any tutorial or help!
- Remember the cool game we will be making at the end? Good!
- Finally don’t be disappointed if you don’t understand anything. Especially if you find anything unclear leave a comment below and I will try my best to help.
I know it was lot of materials for a single lesson. But hey! Now you know how to write a legit piece of python code! If you did not understand anything– no worries, because we will cover everything in details. Just wanted to make sure you know how to run code and where to write code to run them!
Previous Part: Part 1: The Magic Behind Computers
Next Part: Part 3: The Magic Starts with Variables
All parts: Play with Python
(After the previous part: Part 0: Introduction)
Summary: Introduction to programming and algorithms, reasons for choosing python.
What is programming?
In simple words, programming is just talking to computers. It is similar to learning a new language in the sense that you learn how to order a computer to do something for you. However, the problem is computer itself is really dumb (no matter how smart things it can do after getting programmed!). So you have to give it painfully clear and explicit instructions to make it do anything.
Before I give a concrete example of programming, imagine you have an assistant who does everything for you. However, the only problem is that he is really dumb (still smarter than a computer). Yesterday you asked him to make simple peanut-butter sandwich for your breakfast and he made a mess! So today you are giving him instructions:
- Get whole-grain breads
- Put peanut-butter on them
- And finally put those breads together
No matter how dumb your assistant is, hopefully after this instruction he will be able to make a sandwich, but if you ask a computer (assume it is a robot with hands!) to do this job, it will still fail because all of the statements are still ambiguous. Let’s go through them again:
- Get whole-grain breads: How many? 1, 2, 100?
- Put peanut-butter on them: Both side single side? How to put peanut-butter? What to use? How much peanutbutter to use?
- And finally put those breads together: How should we put them together?
So let us write another instruction, which is very explicit and clear:
- Get 2 whole-grain breads, 1 peanutbutter jar, 1 butter knife, 1 table spoon
- Take one of the breads and put 1 table spoon on peanutbutter on it.
- Then smooth out the butter with a knife.
- Similarly do the other loaf.
- Finally put two breads so that the faces with peanutbutter on top are facing each other!
Now you understand what I mean by painfully unambiguous and clear! Watch the video from CS 50 to see how things can go wrong if you don’t have a precise algorithm.
The recipe you just made is called “algorithm” in computer programming. Before you solve any problem you need to solve it yourself and give the computer all the ingredients and the recipe (algorithm) to solve it.
Now you may ask, why do we use computer if we need to solve the problem ourselves first. Very good question! The answer is that a computer is very, very fast compared to a human being. Once you teach the computer how to solve 1 class of problems, it can solve any of those problems in future extremely fast. This great advantage of fast automation is what made computers so popular.
If you want to know a bit more about algorithms you should check this nice animated tutorial video by Dr. David Malan, the famous CS50 course instructor from the Harvard University.
You probably thought about a big snake when you heard the name python. Here we are of course talking about the computer programming language Python. Like there are many languages in the world, there are many programming languages to talk to computers. So you may ask, why I chose python and why you should learn python instead of any other languages. In general, people use different languages for different purpose, but python is one of the very few languages that is used for almost everything. So if you learn python you can pretty much do anything!
That is probably the main reason python got so popular in the last few years.
Apart from that here is my laundry-list of reasons for which I love python and you should too:
- Python is smarter. In python you don’t need to tell the computer that you are working with a number when you can clearly see that it is a number.
- As a result, you need to write a lot less code than most other languages for doing the same work, which is great if you are lazy like me!
- As python is very popular people have written a lot of code in it and made many libraries (extra functionalities) that are freely available for your use. So basically no matter what you want to do with python almost always you will find a library. So instead of working hard and coding that functionality, you can work harder on real problem solving and do more with less code!
- Finally according to xkcd, python helps you to fly!
Tarik Adnan Moon
Harvard College, Class of 2015
Previous Part: Part 0: Introduction
Next Part: Part 2: Preparing for the Magic
All parts: Play with Python
বাংলাদেশে যেকোন কিছুতে বড় একটা সমস্যা হল মাথা ব্যাথা হলে মাথা কেটে ফেলার প্রবণতা—ট্রাফিক জ্যাম রোধ করতে আমরা যেমন কথায় কথায় রাস্তা বন্ধ করি, তেমনি ভর্তি পরীক্ষা নিয়ে এরকমই নতুন একটা সিদ্ধান্ত দেখে এই ব্লগটা লিখছি। প্রথম আলোতে প্রকাশিত রিপোর্টে দেখতে পেলাম যে মেডিকেল কলেজে ভর্তির ব্যাপারে কলেজের অধ্যক্ষরা প্রস্তাব দিয়েছেন ভর্তি পরীক্ষার বদলে পাবলিক পরীক্ষার ফলাফল দিয়ে ভর্তি নিতে এবং এর কারণ হিসেবে দুইটা হাস্যকর কারণ দেখানো হয়েছে:
১) ৫০-৬০ হাজার পরীক্ষার্থীর পরীক্ষা নেওয়া
২) প্রশ্নপত্র ফাঁসের অভিযোগ এড়ানো
এক্ষেত্রে আমরা সবাই জানি যে যেহেতু মেডিকেল কলেজগুলোর কেন্দ্রীয় পরীক্ষা হয় তাই তাদের এত শিক্ষার্থীকে জায়গা দিতে খুব সমস্যা হওযার কথা না। আর যদি এত সমস্যা হয় তাহলে সর্বনিম্ন জিপিএ আরেকটু বাড়ালেই পারে—পুরো পরীক্ষা বাদ দেওয়া লাগবে কেন? আর প্রশ্ন পত্র ফাঁসের দায় তো তাদের নিজেদের ঘাড়েই কিছুটা হলেও পড়ে, সেই দায় এড়ানোর জন্য পুরো সিস্টেমের মাথা কেটে ফেলার সিদ্ধান্ত তারা নিচ্ছেন। অবশ্য আমাদের দেশে পাবলিক বিশ্ববিদ্যালয়ের প্রধানরা যেখানে বিশ্ববিদ্যালয় নিজের সম্পত্তি মনে করে বেচে দেওয়ার হুমকি দিতে পারেন সেখানে ভর্তি পরীক্ষার বাতিল তো কোন ব্যাপারই না! Continue reading