Some of the collegues had mentioned that few years of work experience at Microsoft would be equivalent to getting a masters and it will be piece of cake for me and not worth the effort. Even I thought if I get ample amount of time, may be I can spend time in blogging or doing something on my own. Well, I was so wrong!!!. Doing MS in USC is not a piece of cake, with the part-time work, harder courses and cooking so on... I wrote my first post when I had just joined USC sometime in 2011 and lol, I am writing my second post after completion of my course.
When you start afresh in a company or a school you will always have an orientation program and going around campus and setting things up and so on. We had many in USC :-). For international students there are certain things we would need to know on immigration, safety around campus so on. Then, we had department orientations. First of all, I was amazed to see so many students in Computer Science, particularly so many Indians. This is attributed to huge intake of international students from USC. There were many short speeches on various specializations in Computer Science.
Some Wow Moments
Graduate Assistantship
Then, we had few on-campus ads, one that particularly caught our attention was graduate assistant positions. I did not quite understand what it meant by 50% appointment, tuition waiver. I interpreted that I get 50% refund for the tuition fees that I had already paid for the first semester. Most of funds came from my savings I had done for past 4 years. My one year of savings was gone on a "click of button" to pay the tuition for a semester. Hearing that one can get part of the money back would obviously catch my attention. Even, I grabbed the flyer like anybody else after orientation was over. Luckily, I had worked on all the technical skills they had mentioned at on one point or other in my career.
Even I applied for the position like most of the folks. But, there was just one position and there are around 300 odd students competiting for that. Hmm, I cannot bet on it. I started trying for many other oncampus jobs, receptionist, in restaurant, in library. I got same answer from all "Not the right fit". It was frustrating at that point, makes sense now. Sr. Software Engineer cannot be a right fit for receptionist. Every job requires specific skills, if we do not have them, no one will care.
After couple of weeks I gave up any hopes of on-campus jobs. Couple of weeks later I got call to participate in a technical test. I did not bother tell any of friends. Since, thhere is just one position and some 200-300 candidates applying, from my past experience, all it will do is create unnecessary hype and disappointment later if I cannot make it. I attended the test and answered the questions that I had worked on them before and confident and could not answer everything as time was short.
I got call for interview and it went smooth. I had done my research on what GAship is about from the internet by now. However, I did not hear back for 2-3 weeks. I thought I did not make it. I received another job ad email looking for research assistantship. I know it would be same as GAship and I immediately applied. They had to fill the position quickly and got a call from them and asked me create an flash application. I had done some flash in my undergrad for fun and you never know how some small things done in past can come handy. They liked my work and got call for interview with them. To my surprise, they had every detail of me that I had submitted to USC. It went well and I got an offer from them RAship for an year. At the same time, I recieved offer from GAship that I had been waiting since long time. Wow, now I had two offers. Initial offer of GA was for one semester and when I had another offer for an year, they also extended the offer for an year. I just accepted GAship as they had more rounds of interviews and selected me from lot of students who had applied to it.
8 Puzzle Problem
8 puzzle problem is like a hello world problem for Artificial intelligence. This is a classic little toy game that played sometime in my childhood. Just that, now we need to write a program to solve this. Given any initial configuration of tiles, we need to move tiles across to get th final configuration. We can use standard A-star algorithm to solve this, using any admissible heuristic. Later, found out from the internet that they cannot be a solution for some of the problems and we can find if the solution exists or not using parity of a permutation. This can be done in O(N).
Parity of permutation is something we had learned in undergrad math. I could not think of applying that here at all, until I found out from internet. Realized, much of the coursework in my undergrad particularly mathematics is thought without telling us when and how to apply.
Indoor Navigation using Augmented Reality
This was one of the cool projects that I got chance to work on. I had seen augmented reality applications only in some research videos, but had never seen something in real and definitely never did anything myself. This project was developed for UI course and there was not much restriction on the project that we can choose. When I started exploring, I found out that there are very few sdks available. Popular ones are one developed by qualcomm and there are few nice videos by Microsodt Research, however there was not released to market at that time.
I found out metaio sdk to be best. typical AR application would include seeing through the camera on a static target image and if image matches we would show the 3-D object. This was the hello world project of metaio sdk. I had never tried this before. It was amazing to see the 3-D image of metaio man showing up through the smart phone camera.
I had a small idea to use this concept for indoor navigation, which can show arrow directions when walking through the building to our destination inside building which can be printer, rest room or any conference room. However, realized later that many have done different applications to address this. But, there is no perfect solution so far. Given poor documentation from sdk provider, Did many experiments and played around with many target images, but in vain. They had very good apis as per site, but whats the point if there is no good documentation of the same. Had to do post many questions on forums to get the information. Finally got something working and it was fun :-).
Natural Language Processing: A system which can classify vowels and consonants using unsupervised learning.
Sounds so lame, why the world wants a system which can tell which letters are vowels and consonants and we know it from our childhood days. My first thought!!!! I am sure many will think this way :-).
If I am alone in some island who knows only english and do not speak the language of locals and they give me huge books in there are local language and i am asked to classify vowels and consonants, then it would be interesting. My thought after the course :-)
Expectation maximization clubbed with Viterbi algorithm can be used to tag the random english set and repeated running of the EM algorithm can produce higher probabilities for vowels tagged to t1 say and consonants tagged to t2.
The probabilities produced can also be used to say for example j o h n _ w e n t _ h o m e has far better chances of occurance than j i h n _ u e n t _ h o m e without using any dictionary. This may be used for spelling corrections or suggestions.
In progress...................
When you start afresh in a company or a school you will always have an orientation program and going around campus and setting things up and so on. We had many in USC :-). For international students there are certain things we would need to know on immigration, safety around campus so on. Then, we had department orientations. First of all, I was amazed to see so many students in Computer Science, particularly so many Indians. This is attributed to huge intake of international students from USC. There were many short speeches on various specializations in Computer Science.
Some Wow Moments
Graduate Assistantship
Then, we had few on-campus ads, one that particularly caught our attention was graduate assistant positions. I did not quite understand what it meant by 50% appointment, tuition waiver. I interpreted that I get 50% refund for the tuition fees that I had already paid for the first semester. Most of funds came from my savings I had done for past 4 years. My one year of savings was gone on a "click of button" to pay the tuition for a semester. Hearing that one can get part of the money back would obviously catch my attention. Even, I grabbed the flyer like anybody else after orientation was over. Luckily, I had worked on all the technical skills they had mentioned at on one point or other in my career.
Even I applied for the position like most of the folks. But, there was just one position and there are around 300 odd students competiting for that. Hmm, I cannot bet on it. I started trying for many other oncampus jobs, receptionist, in restaurant, in library. I got same answer from all "Not the right fit". It was frustrating at that point, makes sense now. Sr. Software Engineer cannot be a right fit for receptionist. Every job requires specific skills, if we do not have them, no one will care.
After couple of weeks I gave up any hopes of on-campus jobs. Couple of weeks later I got call to participate in a technical test. I did not bother tell any of friends. Since, thhere is just one position and some 200-300 candidates applying, from my past experience, all it will do is create unnecessary hype and disappointment later if I cannot make it. I attended the test and answered the questions that I had worked on them before and confident and could not answer everything as time was short.
I got call for interview and it went smooth. I had done my research on what GAship is about from the internet by now. However, I did not hear back for 2-3 weeks. I thought I did not make it. I received another job ad email looking for research assistantship. I know it would be same as GAship and I immediately applied. They had to fill the position quickly and got a call from them and asked me create an flash application. I had done some flash in my undergrad for fun and you never know how some small things done in past can come handy. They liked my work and got call for interview with them. To my surprise, they had every detail of me that I had submitted to USC. It went well and I got an offer from them RAship for an year. At the same time, I recieved offer from GAship that I had been waiting since long time. Wow, now I had two offers. Initial offer of GA was for one semester and when I had another offer for an year, they also extended the offer for an year. I just accepted GAship as they had more rounds of interviews and selected me from lot of students who had applied to it.
8 Puzzle Problem
8 puzzle problem is like a hello world problem for Artificial intelligence. This is a classic little toy game that played sometime in my childhood. Just that, now we need to write a program to solve this. Given any initial configuration of tiles, we need to move tiles across to get th final configuration. We can use standard A-star algorithm to solve this, using any admissible heuristic. Later, found out from the internet that they cannot be a solution for some of the problems and we can find if the solution exists or not using parity of a permutation. This can be done in O(N).
Parity of permutation is something we had learned in undergrad math. I could not think of applying that here at all, until I found out from internet. Realized, much of the coursework in my undergrad particularly mathematics is thought without telling us when and how to apply.
Indoor Navigation using Augmented Reality
This was one of the cool projects that I got chance to work on. I had seen augmented reality applications only in some research videos, but had never seen something in real and definitely never did anything myself. This project was developed for UI course and there was not much restriction on the project that we can choose. When I started exploring, I found out that there are very few sdks available. Popular ones are one developed by qualcomm and there are few nice videos by Microsodt Research, however there was not released to market at that time.
I found out metaio sdk to be best. typical AR application would include seeing through the camera on a static target image and if image matches we would show the 3-D object. This was the hello world project of metaio sdk. I had never tried this before. It was amazing to see the 3-D image of metaio man showing up through the smart phone camera.
I had a small idea to use this concept for indoor navigation, which can show arrow directions when walking through the building to our destination inside building which can be printer, rest room or any conference room. However, realized later that many have done different applications to address this. But, there is no perfect solution so far. Given poor documentation from sdk provider, Did many experiments and played around with many target images, but in vain. They had very good apis as per site, but whats the point if there is no good documentation of the same. Had to do post many questions on forums to get the information. Finally got something working and it was fun :-).
Natural Language Processing: A system which can classify vowels and consonants using unsupervised learning.
Sounds so lame, why the world wants a system which can tell which letters are vowels and consonants and we know it from our childhood days. My first thought!!!! I am sure many will think this way :-).
If I am alone in some island who knows only english and do not speak the language of locals and they give me huge books in there are local language and i am asked to classify vowels and consonants, then it would be interesting. My thought after the course :-)
Expectation maximization clubbed with Viterbi algorithm can be used to tag the random english set and repeated running of the EM algorithm can produce higher probabilities for vowels tagged to t1 say and consonants tagged to t2.
The probabilities produced can also be used to say for example j o h n _ w e n t _ h o m e has far better chances of occurance than j i h n _ u e n t _ h o m e without using any dictionary. This may be used for spelling corrections or suggestions.
In progress...................