Friday, April 16, 2010

Last day of school~ end of my university days~

Today is the last day of school. I guess a normal day for most of students in SFU, but somewhat significant for me.
Last day of my whole university life~ Well, I mean temporarily...who knows, I might come back for grad study...


WICS had a ice-cream sale, which turned out pretty good. I am glad I had an event ending my last day of school. Nice chats with WICS members and other staffs...

Happy Sunny Day! Above 17 degrees. Great day for icecream.

But inside somehow feeling sad, for the ending.

Wednesday, April 14, 2010

AUC: a better measurement for predicate performance

While working on the JBN project with Oliver and his PhD student, I came across a more complex measurement for predication performance, the Area under the ROC curve (AUC). Normally, people would just use accuracy to evaluate a inference algorithm, that is how much percentage the predicted result is correct.
But AUC is far more complex and accuracy and measures the predication performance from another aspect. It can be interpreted as the probability that when we randomly pick one positive and one negative example, the classifier will assign a higher score to the positive example than to the negative.

First, I need to explain what is ROC. A receiver operating characteristic curve (ROC) is a graphical plot of true positive rate v.s. false positive rate, for a binary classifier system as its discrimination threshold is varied.
For a binary classification problem, where the outcomes are labeled either as positive (p) or negative (n) class, there are four possible outcomes.
• True positive (TP): the prediction outcome is positive and the actual value is also positive
• False positive (FP): the prediction outcome is positive but the actual value is negative
• True negative (TN): the prediction outcome is negative and the actual value is also negative
• False negative (FN): the prediction outcome is positive and the actual value is also positive
The true positive rate (TPR) is the percentage of correctly classified positive instances out of all real positive instances, i.e. TPR = TP / P = TP / (TP + FN). The false positive rate (FPR), on the other hand, defines the percentage of incorrect positive results among all negative instances, i.e. FPR = FP / N = FP / (FP + TN).
In ROC space defined by FPR and TPR as x and y axes respectively, each point is corresponding to a threshold value. For instance, with one threshold, if probability values below or equal to that are sent to the positive class, and other values are assigned to the negative class, a pair of TPR and FPR can be calculated. The lower leftmost point for a given ROC curve is a classifier's performance on the raw data. The upper rightmost point is always (100%, 100%). The more the point is towards up-left corner, the better, while the more the point is towards right-below corner, the worse. A ROC curve is plotted through points for each possible threshold values results in a curve.
In our project, we use the area under the ROC curve (AUC) to summarize the ROC curve into a single number as one metric to measure performance of a classifier. We used 11 thresholds with interval 10% to form a ROC curve with 11 points and the AUC is calculated using a form of the trapezoid rule, i.e. the sum of trapezoids’ area.


I found it is a very interesting and sophisticated measurement and it was the most interesting thing I learned out of this project. I know it is really hard to explain it in plain text here and I probably did really bad job. But happy to give it a try. :p

Saturday, April 10, 2010

FAS Ambassadors

During the past four days, I was doing FAS Ambassadors. My job was to call newly admitted students to welcome them to SFU and answer questions they might have about the university experience.

I summarized my experience in a report as follow:

1. Student Response: How they did respond to your call? Were they nervous to speak to you? If so, how did you put them at ease during the conversation?

The student response varies. I don't think any of them were nervous (I guess this is because the call is from a student, and just to welcome them), they were more like "don't know what to ask or what do talk about".

Most of the time, when I asked "Do you have any questions", they would be like "No, not at this moment." In order to continue the conversation and guide them through, I would ask whether they have been to SFU campus before and invite them to our events, ( e.g. the information evening, Bits & Bytes ). I would also ask if they have paid the deposit and if they have gotten SFU Computing ID. Usually, it gives some time for the questions popping up to their mind.

Sometime, the students are at the stage of waiting for other school's answer or deciding which school should they go to. In these cases, I would encourage them to come to our information evening or Bits&Bytes events. I would tell them attending these events helps them to find out more about SFU, as they can talk to other SFU students and be shown around the campus.

There are cases (not too many though) when the students were thrilled and really curious about life here in SFU. They would ask many questions regarding various issues. This is the best case. I would just talk about my own experience in SFU, tips that I feel useful, and recommend the student groups ( e.g. WEG, WICS and CSSS).




2. Questions asked:What kinds of questions were asked by the students? Did any of the questions require follow-up from and Academic/Admissions Advisors?

- Questions regarding transcripts (they received a request about rtanscript)
- Course Selection
- Program or major
- is it easy to change the program or major
- what is it like to be in Computing Science/Engeering Science. what do you study
- are the courses hard
- Admission question:
- Registration Deposit Payment Deadline
- Is the deposit fee refundable / What would happen if I paid the fee but not coming to SFU
- What would happen if I pass the deadline
- Scholarship, enrtance scholarship specifically
- U-pass
- how much
- what are the available parking lots
- Parking ( adults students usually. Parking fees, parking slot availability)
- Civil Engeering ( Many BGSAP students asked about that )


3. Resources: What additional resources would have been helpful during your call? What things could have been addressed during the training session to prepare you for talking to students? What other information might have been useful to know about the students you were calling? Did it help to know if they were confirmed or registered?

- Yes. I think information of student is definitely helpful, like if they were confirmed or registered, which campus is your program located, which program do they register at, what is their current status.
- Informationa about student adimission office operatiing hours and phone number is helpful too, since many students asked about it.
- A piece of additional information, to call Victoria phone number, i.e. 250-, dial 8 before the phone number

4. Stats for each night (ie how many students you spoke with, left message for, emailed...etc anything that will help with planning).

The first day was very tiring. I was just making calls. I think it is a better idea to mix the phone call and emailing every night, versus just do one thing the whole night.
I feel the following days are better.

5. Overall volunteering experience.

I was a very cool and different experience. I had many interesting and engaged conversations and interaction.

Take some cases as examples:

- I was impressed by one student who has very good knowledge about computing science and it was fun to talk to him about some of the projects I have been involved in. I am glad that I can inspire him in someway and help him gain a better insight of what computing science is like. I also introduced DDP to him and encouraged him to check it out.
- There was one girl who sounded very uncertain and not sure what she should go for. She was worrying about the math part of computing science. I gave her some tips, told her the very good advising service we have in CS department, and also talked about WICS. I think I have helped her to relieve some concerns and worries, and make her more exciting about her university life.
- I was assigned to email some international students. One Karean student who enrolled in DDP replied my email, and also added me on facebook to ask questions through online chatting. I am also glad that I was able to share some of my experience from an international students' perspective of view, as I went through the similar frustrations he has right now.

I also found this volunteering experience is beneficial for myself. I gained different working experience, pratised skills of talking to different people through the phone and guiding them through a conversation, learned things that I didn't know about SFU before and promoted WICS. Doing this ambassoder work makes me feel more involved in the community. The dinner part at end of the day was awesome too. I got to know other FAS students (who I probably won't get a chance to meet otherwise).

Overall, I think this is very well-orgranized. It is good idea to assign students to the volunteers with similar background. Emailing is a good way to greeting students who are abroad or students that we don't have phone number of. It was my pleasure to be part of this and help the upcoming students in SFU.

Friday, April 2, 2010

My interview tips and experience

Coop program in SFU is organizing an technical interview panel and I was invited to join the panel, based on my interview experience with Microsoft, Google, Facebook, IBM Extreme Blue. I think it would be nice to share some of my tips and experience here in my blog too.

General Tips:

* The types of questions you will get depend more on what position you applied.
* Research about the company and their interviews online ahead of time
* Prepare for the behavioral questions. Career service in SFU provides mock-up practice, which I found very useful. You can contact them to make an appointment. They have very good resources too. http://www.sfu.ca/career/students/findajob.html
* To prepare for the technical questions

o review the data structure and algorithm concepts. I recommend one very useful book, "Programming Interviews Exposed", which summarizes a few main data structures and its associated technical questions, and includes tips for technical interviews as well.
o practice some coding questions in real time
o practice you ability to describe a approach to solve problem orally.
o practice solving problem or writing code in white board, because it is very different from coding on computer

My Facebook interview experience:

I submit my resume in a conference, Grace Hopper Celebration. That is how I got the interview opportunity. After that, their HR contacted me through email, where I found out that I need to go to their website and solve a programming puzzle before receiving a phone interview. So I spent two days on the programming puzzle and finally got a phone interview opportunity. First, I was scheduled a phone meeting with the HR recuiter. I thought it was going to be very informal chat, but it turned out very much like an interview. She asked me a serious of behavioral questions along with also some programming language questions, like "what is the 'static' in C++?", "what is v-table" and etc. After that, I was scheduled a technical interview with one of their engineers. Then that technical interview was very standard, mainly one programing question. I thought I did good, but apparently not good enough to reach their standard. So I didn't get into last round of the interview, which is the site interview.

A few things I would like to bring up specifically about facebook:
- I found facebook interview process is not very well standardized, compared to other big companies.
- The facebook puzzles are very hard, at least I found so. I picked a relatively easy one, but was still struggling for a long time. However, they are very good questions for improving your puzzle solving and coding skills, so I definitely recommend to practice on them. http://www.facebook.com/careers/puzzles.php.
- Facebook has not very strong connection with SFU. Few of their employees are from SFU.

Thursday, April 1, 2010

TryCatch event is on May 15, 2010 at 2pm, SFU Burnaby

**********************
WHAT:
Try/CATCH (Computing and Technology Conference for Her) is a half-day event for high school girls from grades eight to ten, with a major objective of helping girls develop an interest in computing science and the field of technology.

WHEN: Sat May 15, 2010 at 2pm

WHERE: SFU Burnaby Campus
**********************
DETAILS:
Try/CATCH is an exciting outreach project organized by the Women in Computing Science (WICS) at Simon Fraser University.
Throughout the event, students will participate in a variety of enriching activities focusing on developing skills in areas such as programming, user interface design and other computing-related aspects. Networking will be encouraged and the advantages of working in a technology field will be highlighted through discussion with women mentors.

Try/CATCH will provide cakes, snacks, a casual reception for participants to enjoy. They will also be eligible to receive prizes awarded in both the workshops and at the end of the night with a raffle draw.


Please register online: http://trycatch.cmpt.sfu.ca/
or
Email us at trycatch.info@gmail.com

Entrepreneurship & Technology Commercialization workshop feedback

I just attended the Entrepreneurship & Technology Commercialization workshop on March 12, 19 & 26 at SFU Harbour Centre. This 3-day workshop is organized by the Faculty of Applied Sciences in collaboration with the British Columbia Innovation Council, and the intended is to provide students with intensive, applied training in technology entrepreneurship, product management and commercialization.

Overall, it was a very valuable experience for me.
The course content is well organized and covers various aspects and mainly focuses on technology commercialization. For me, the best part is the interaction with entrepreneurs. The students get paired up with entrepreneurs, working on their real business cases, which definitely brings me valuable hand-on experience and helps to get more insights of the industry. In addition, the networking with them is very beneficial.

However, I feel like the courses are very intense as there are only 3 days in total. The schedule of a day from 9 to 5pm is a little overwhelming. I easily lost my attention and got tired during the class. Moreover, I haven't taken any business classes, thus have very little business background. Sometime, it is hard to follow the lectures. So maybe a schedule based on half-a-day session would work out better.

The case studies are good and valuable. But without enough background knowledge, I lost track of the story. Maybe it would be better some brief introduction of the companies can be included in the slides for case studies.

But again, overall, it was a very informative and helpful workshop. I really appreciated the opportunity.

Thursday, March 25, 2010

"Late" Happy Ada Lovelace Day

I totally forgot I have this blog and I should have post this Ada Lovelace Day poster earlier! But better late than never! "Late" Happy Ada Lovelace Day! I am so pound that the first programmer is a women! Yay~


March 24th (just passed for 2 hours) is Ada Lovelace Day, an international day of blogging (videologging, podcasting, comic drawing etc.!) to draw attention to the achievements of women in technology and science.
The official site is http://findingada.com/

Augusta Ada Byron King, Countess of Lovelace (1815-1852), born Augusta Ada Byron, was the only legitimate child of the poet Lord Byron. She is mainly known for having written a description of Charles Babbage's early mechanical general-purpose computer, the analytical engine. She is today appreciated as the "first programmer" since she was writing programs for a machine that Babbage had not yet built. She also foresaw the capability of computers to go beyond mere calculating.

XX evening event

I just came back from a social networking event, XX Evening at TELUS World of Science. XX evening is an annual event hosted by SCWIST (Society of Canadian Women in Science and Technology).
During the event, there are 30 Wonder Women (I really like the name!) who are working in technology related field. Participants get the opportunity to chat with these Wonder Women about their careers in science, engineering and technology.
Women there are from various fields, programmers, engineers, researchers, entrepreneur, writers, managers and ... It was very exciting to see so many women in technology gather around with a big variety.
The event starts with a panel discussion. Four panelists talked about what their typical day look like, how do they get into technology, how do they overcome black holes in the lives, and etc.
After that, the social networking was fun. I talked to a couple of wonder women and trying to get some sponsorship for Try/Catch. Especially, I talked to a lady who is running tutor company and brought up that sponsoring Try/Catch can be very beneficial to her company as we will have 50 highschool girls coming up to the event. She seems interested and we just need to follow up with her.
The last part of the evening was a IMAX movie, Ultimate Wave Tahiti. It is my first time watching IMAX movie. So cool and I really enjoyed it!
Over all, it is a very good experience. I think the best part is it is local in Vancouver. Like I even came across my previous colleague from IBM, which is very nice!
After a 5 hour event, I am feeling exhausted but I feel like to write down my experience when it is still fresh!

Monday, March 15, 2010

Grace Hopper Celebration Proposal Draft

Youyou (a Chinese girl from DDP 06) and I are trying to put up a panel about DDP for Grace Hopper 2010. I think our program fits this year's theme is "Collaborating Across Boundaries". We just finished the proposal draft. It is definitely not something well written, but at least something I think can attach here to count as one post. :p

========


Cross cultural collaboration between different institutions has been increasingly important due to globalization. While exchange programs are the most popular choice for internationalization, a Dual dual Degree degree Program program presents a more deepened model of collaboration. A typical computing science DDP would consist of the following characteristics dual degree program would consists of studying experiences in both collaborating institutions and students being granted degrees from both schools in the end.: students spend several years studying computing science in both collaborating institutions; they will be granted degrees from both schools. In this panel, we will use the DDP program between Simon Fraser University and Zhejiang University as an example to discuss how such programs influence involved students and faculty.
Dual Degree Program of Computing between Simon Fraser University and Zhejiang University was launched in 2005 and has been recruiting students from both universities every year since then.
Simon Fraser University (SFU) and Zhejiang University (ZU) have had a DDP collaboration in computing science since 2005. Though some policies in the program are still being refined, they are mature enough for us to analyze DDP’s current state and examine how to further its development.
The panel will cover following information:

Administrative aspects
• Program Structure and Benefits
(I think we should add some content to cover the benefits)
• Difficulties:
- Two institutions may have different requirements on admission (e.g. English proficiency)
- Language barrier. Especially for Canadian students who typically are required to a fairly high proficiency level of Chinese in order to understand lectures in China.
- Education background. Students from China and Canada have very different high school curriculum, but the curriculum for the university is designed based on their local high school curriculum.
- Prerequisite transfers between institutions. Similar courses in different institutions may have different focus and depth.
• Specially designed policies for SFU-ZU DDP
- Each institution has set up dedicated advising/admin staff to provide contact point for students and faculty, specialized expertise in new program.
- Each Two institutions exchanges faculty members to teach at other university each year.
- SFU has established a Capstone project dedicated to DDP students.

SFU-ZU DDP related Faculty members’ experience:
• The exchanged faculty members play an essential role in helpingin helping students prepare themselves for their studying and living abroad for everyday life.
• How SFU faculty members adapt to the newly-established Capstone project, and guide DDP students throughout their research.
• Faculty members have gained in-depth cross cultural experience.

DDP students’ experience:
• Comparing our DDP program with other exchange programs, students feel that DDP provides more involving intercultural experience.
• With different cultures and strengths, both institutions promote students’ competitiveness in different areas.
• Students find the keys of how to succeed in such a program through their own experience.

How our DDP promotes women in computing science
• Statistics show that DDP enrols more female students than general computing science program in SFU.
• We conjecture that the female students are more interested in the DDP program because of the international experience component.
• Female students in the DDP take an active part in Women In Computing Science in SFU and both the students and the organization benefit tremendously.

Monday, March 8, 2010

[WICS] International Women's Day Lunch

I have always been wanting to write something for WICS. I joined WICS in the first term when I came to SFU. I have been grown through the involvement with WICS.
Now being the president, I feel I have been more bounded to this group, taking the lead and trying to make impact. WICS has taken a big portion of my time and I have gained more skills and experiences. Well, although I will step down in the end of this semester, it is not time to farewell and sum up yet. What triggered me to write something is preparing the International Women's Day Lunch.

Today, we met up at school to decorate the room. Liyang bought many balloons and strips. We were blowing the balloons, tape the strips, tape the direction signs... ( We had very cute pink or smiley face balloons. I really like them. :D ) We were talking and laughing... It was fun.
I like it when a group of us put effort to achieve one thing. Organizing this event gives me exact this feeling. Everybody is putting effort. We put pieces altogether to achieve one goal.From this, I feel a sense of belonging.

Hm... don't really know how to expand my thoughts and express my feeling right now. I just feel kind of warm inside and look forward to the party tomorrow. (Hm... actually today! ) Happy International Women's Day!

Thursday, March 4, 2010

Entrepreneurship and Technology Commercialization Workshop for Students

Entrepreneurship and Technology Commercialization Workshop is going to take place on March 12, 19 & 26, 2010 at SFU Vancouver. This is my luck that I get the opportunity to attend. My interests of Technology Commercialization starts from my coop term.

I was working in IBM pacific development center as a software developer from January to September 2009 as a coop student. While working there, I got chances to talk with different specialists and professionists. It was very interesting to see how technology can actually be commercialized to a real product. I was amazed by how much management and other aspects aside from technology itself are involved to commercial product. I understand the importance of technology commercialization. Without commercialization, technology would be only in the labs, in academic papers, in textbooks, but never to our daily life to benefit us, which actually losses the meaning of innovation. For my personal career, no matter what I do after my graduation, whether to work in a company or start my own business, some insights of technology commercialization would be very helpful and even critical. However, with very little business background, I am in lack of knowledge about entrepreneurship and have always been willing to learn about it. This workshop is an excellent opportunity and I'm really looking forward to it!

Sunday, February 28, 2010

CMPT414 Couse project proposal

I'm currently taking CMPT414 model based computational vision. We need to do a final term project. One of my classmates and I formed a team and proposed a project about a neural network specifically for recognizing handwritten digits. Ideally, the final product would take images of handwritten digits and output predicated digit, ranging from [0, 9], with comparatively high accuracy. The product will have various real world applications. One example would be a Chinese postal code reader as in China the ZIP code consists of 5 numeric digits. If more time is available, we would also like to expand our project to real world data. For example, we can use some scanned real handwritten images as the input of the built neural network and see the results. This will involve some image pre-processing techniques, such as noise removal, skew detection and correction, character normalization and so on.
We will mainly focus on the implementation of the algorithm and leave out the UI part. Matlab will be our main programming tool.

MNIST database (http://yann.lecun.com/exdb/mnist/index.html ) will be used as the benchmark for this project. The MNIST database of handwritten digits consists of a training set of 60,000 examples, and a test set of 10,000 examples. It has been widely used in lots of projects or research works. Dr. Yann LeCun (http://yann.lecun.com/) has implemented a neural network which achieves 99.18% accuracy (i.e., an error rate of only 0.82%). This error rate served as a type of "benchmark" for many others’ research works and could be the goal of our project as well, which might be challenging. The data files of this database are not in any standard image format. We will have to write our own program to read them.

Mike O'Neill has implemented a complete project for Handwritten Digits Recognition, with demonstration graphic UI. He has released the details of his design in the article of Neural Network for Recognition of Handwritten Digits. Mike built Five-layer Convolutional Neural Network and applied Second Order Methods in back propagation to optimize the performance. Mike’s digit recognition project achieves 99.26% accuracy on MNIST dataset. We will follow his design and implement the essential algorithm.

I think the idea and design is pretty cool. I will be very happy if we can achieve above 99% accuracy!

Tuesday, February 16, 2010

Shen Xue&Zhao Hongbo, elusive pairs gold, touching moment!

Tonight, I had an awesome dinner at Greg's place. There were Greg, Kat (his wife), me, three other DDP students and Liyang from WICS. It is kind of like potluck. Kat made fried rice; I made dumplings and helped fry Bok Choy; Yoyo and Jianfeng brought two traditional chinese dishes; Liyang brought egg tarts; Greg made Westlake Fish and cheese cake. The cheese cake was soooo good, even better than the one I had in cheese cake etc.Everybody was asking for the recipe in the end. :P

Well, the most fun part was when we were watching pair figure skating final game after the dinner. There were three chinese teams and Shen, Xue and Zhao, Hongbo obviously received most of the attentions. Both of them were above 35. They have been skating for decades and have always been partners. They actually got married a couple of years ago. They have won many golds in various games, but never in Olympic. It is all the athletes' dream to step onto the podium of Olympic gold medal. That is why this couple came to this Winner Olympic game.

So when it was announced that their final score was 216.57 points and the rank 1 was CHINA, I saw this couple crying, screaming and hugging each other. I saw their excitement and happiness flowing from their faces.Zhao Hongbo started talking in Chinese, to Shen Xue also to himself, "I can't believe it... it is like a dream..." This is such a touching moment.

I like watching games such as figure skating, because it is not as hostile. The athletes are performing. They are trying to show their best to the world, to demonstrate the beauty.Not like other kinds of sports, where it is more like fighting with each other.

And I enjoy the most at the ending part of the game, when the winning athletes shows their emotions. Always touching moment to watch.

Anyways, I'm so happy for this couple and for China!
Go China Go!

Saturday, February 13, 2010

My Olympic Break Starts with Awsome Vancouver Art Gallary Visit~

Winner Olympic comes, bringing us two weeks of break.. Yeah...
Many of my chinese went back to China and celebrate Chinese new year with family.. I feel jealous....

But anyways, yesterday after class, I went to downtown with my friend and we visited Vancouver Art Gallery, next to Robson Square. The Olympic British Columbia Pavilion was just open. And it is free for visitors to access.

There were a long line-up when we got there. But the line moves pretty fast and has very good order. Meanwhile, there were volunteers lead the visitor along the line and talked friendly. I saw so many Canadian flags flying all around, on bags, cloths,faces... Patriotism is always the theme for this kind of event...

In no more than 10 minutes, I entered the gallery. There are four floors, but only the forth one allows photography. And actually, the floor one is the most interesting one. They have a number of interactive displays highlighting the rich cultural fabric of both British Columbia and Canada. Lots of fun... The 1st, 2nd and 3rd floors are mostly about the history, culture and nature of BC, along with some art works from artists.
It was very impressing and the best of all, it is free to access. Yay~

I feel lucky now that I chose to stay in Vancouver during the Olympic break. So many things go on all around Vancouver. I can pretty much go downtown and check out events everyday...

I'm looking forward to the coming-up events. Not worry about assignment for now... :p

Monday, February 8, 2010

Offer received!

I received the phone call from the recruiter on Tuesday.He didn't tell me the result right away. Instead, he said a couple of questions, like how do you feel about the interviews, do you think you will fit in the team, how do you like the project, what makes you choose MS over IBM, and etc. I felt it was like another round of interview. In the end, he finally said "yes, we are going to give you the offer".I was not like jumping up and down, but more like, finally~

The following phone call was basically about the offer package. I think I'm quite happy about what they are offering. However, I still didn't accept the offer right away. Instead, I talked to my parents and a couple of my friends. I guess I wasn't quite sure about whether to work at States or not. But since I'm young, everybody is encouraging me to try it out. And of course, this is MS, really hard to reject.The recruiter was very nice that he sent an email to the project manager, the project that I was interviewed for, and ask him to connect with me and help me to make the decision if I have any. This kind of touches me. I emailed both of them back and accepted the offer.

It has been almost one week.My state is migrating from exciting to more like "OMG, I am going to step out of school". Am I ready yet? Will I miss school? Would I enjoy living in Seattle? Well, these are supposed to be questions before applying the position, which I start to concern about now.

No matter what, this is a step which will eventually happen. Start of another phase of my life.

Friday, January 29, 2010

Done with MS interview and Finger crossed!

OMG~~~What a LONG day!

I just finished my whole day interview in Microsoft campus and am currenting this post in their recruiting building's lobby.... I'm feeling exhausted now....I have never had such a intensive day before...

As my recruiter left early for his wife today, I don't really get a chance to recap my interviews with him today. So I guess I will do my recap here by myself :P

Hm... Overall, I think I did well. The first two interviews were especially good. I was able to solve the problem in time and show my coding ability. I had good discussion with the interviewers as well.
However, later of the day, after lunch, I got tired... after 3 - 4 hours talking and thinking... So I felt my energy level went down. So for the following two interview questions, I screwed up a little bit. I was trying to solve the problem really quick and start writing the code once I had some idea of how to do things, which was totally a mistake :(

Near the end, I was taken to the last interviewer. She was the very very nice. After solving another coding problem, we started to chat. She told me that the hiring standard for fulltime and intern is different. She also said, I should have applied for an intern if I'm not going to graduate in the august. She also mentioned another chinese girl working in her team was in the selection boundary, but now she is very good worker. I think what she meant is I'm in the edge of being hired or not hired as well, and if I was applying for intern, it would be much easier for her to say "hire"...

Well...now, I'm done with the interview, and all I can do is to enjoy the rest of the trip in Seattle and finger-crossing for myself...

O, also, tons of homework to catch up once I get back to Vancouver, including the final paper for assignment1 of CMPT376 :(

Monday, January 25, 2010

Bad design of scanner (My ENSC304 Assignment1)

1. The Problem

There was a time when I volunteered in a conference and my job was to use a little scanner to scan the bar code of the attendees’ tags. The scanner is a very small device, approximately 3cm*5cm. The interface of the scanner is very simple: the front side has a light indicator and one big blue button, and the back side has one small button with the same blue color.

When I first received the scanner, I figured out very quickly that to scan the bar code I need to hold the big button while the laser light going through the bar and also that the light indicator would flash if it succeeds. However, the problem comes with the small button on the back.

As no label on the back, without instruction I had no idea what this button is for. Later I was told that the small button is for deleting data. If that button is pressed, all the previous scanned data will be deleted. Fortunately, I didn’t press that button before I learned about its functionality. But if I did, all the data that the previous volunteer scanned would be completely lost and could not be retrieved.

Besides, there is no indication when the delete button is pressed. So in case I accidently pressed the button, I wouldn’t know. I was very cautious to make sure I didn’t touch the button while using the scanner, which of course affected my working efficiency. Due to the small size of the device, it was very hard to my fingers away from the delete button.

The scanner gives me hard time to execute my task, which can be considered as Huge Gulf of Execution. User needs to pay extra attention to the back button while working on the device. Without any label or instruction on the device, it is likely for a new user to press that button without knowing the consequence of loosing all the previous data. If user accidently presses the deleting button without knowing the functionality of that button, all the recorded data will be deleted which is actually not what user wants. Even worse, the effect of mistake is not reversible and the loss can be irreparable. On the other hand, the scanner didn’t provide enough feedback for me to interpret its state, i.e. user has no idea whether the deletion of data has been executed or not. This can be considered as a Huge Gulf of Evaluation. Above all, the scanner causes difficulties for users to execute the tasks, and evaluate the result of their actions.

2. Design Principles

The scanner violated the following principles:

a. Make It Visible

The delete button has no label beside and placed at the back with a small size. Without instruction, user will be struggling to figure out its functionality, or user won’t know the scanner has the function to delete the previous scanned data by pressing a button.

b. Provide Feedback

The scanner fails to provide any feedback for pressing the delete button.

c. Make Error Effect Reversible

The scanner has almost irreparable error effect. If the delete button is pressed accidently before backup, the data can never be retrieved.

3. Solutions

To solve the problems I observed, I have the following suggestions to modify the design.

1. A label should be added on the back side, clearly indicating that the button on the back is for deleting all the data.

2. It should use sound or light to provide sufficient feedback for the delete operation. For example, when that button is pressed and the data is deleted, the device can make a “bee” sound. The front indicator light can also flash with red color (the light flashes in green when the bar code is successfully scanned).

3. For such a small device with compact interface, it is not a good idea to have a screen to interact with user. In order to reduce the chance of mistake in operations, the deletion button should be made caved into the flat surface. This way, only when users intentionally press the button very hard, can the delete operation be executed.

Wednesday, January 20, 2010

Best Interview Experience Ever

I just finished the interview for the Extreme Blue Program. This is the best interview experience that I have ever had.
First, the interviewer follows the typical interview routing. After introducing himself, he asked to briefly tell him about me, followed by a series of behavioral questions. As I was preparing for my other job interviews recently, I was almost ready for all of his questions.
And then he started technical questions. Some of the questions were also kind of basic. Like,
- difference of C++ and Java. When will you choose one over the other?
- explain static keyword in C++
- What is deadlock?
...
He also asked a series questions about hash, and lots of complexity questions of different data structure.
Some of the questions are hard. ( Maybe just I don't know the answer!) He asked what is "vtable". I actually never heard of it before, but I asked him if I can "google" it. Lol... he said, "well, this is a phone interview..." So I cheated by searching online and came up the answer. He also asked me "what happened when you enter a URL in a browser and press enter..." I was supposed to talk about the very low level internet behavior here, like how packages are routed and stuff, which I actually had very little knowleage. So my answer was messy and not organized at all. I was just trying to tell him what I know or what I can guess as much as possible. But he was very nice that he kept giving me hint and guided me through.

The interviewer actually called five minutes earilier than the scheduled meeting time. We started at 10:55am, and didn't finished until 12:15am. More than one hour phone interview~
During the whole interview, he was talking in a very friendly and enthusiastic way. He kept encouraging me and commended my answer. I definitely felt that he was happy to talk with me and really learn more about what I know.

The best part is , in the end, when I asked about the following recruiting process, if I passed this round. He told me that he is going to tell them to hire me! This is the first time that the interviewer told the interview result right after the interview! I was so excited about that~

It was the longest interview I have ever had, also the best one ever. I felt really relaxed and just be myself. I believe he had a good understanding of my knowleadge scope as well. A win-win situation for both part. Well, look forward to the next round, which is also the last stage.

Good luck to myself!

Monday, January 18, 2010

Brainstorm for an interview question

Today, on my way to school. I was thinking about the interview quesitons that I was preparing for.

Where do you want to be in 2 to 5+ years? My answer to this question is:

As a new graduated student, I think I will start with a developer or tester position. And it will allow me to gain more experience and polish my skills. However, I would like to be in the role of project manager after 4 or 5 years of work. I like management work. What PM role attracts me is that you can work with smart ppl and collaborate among them and manage resources. As a manager of the team, you can allocate the workload and make use of the talent of people, and in the end accomplish something that is impossible for individual. This brings me a big sense of achievement. Most of my previous team work experience were very good. We had very firm group. We had good time working together and achieve the shared goal in the end....


O.. No.. I am trying to come up an answer for this typical interview question... But I don't think I'm doing a good job here >.<

Tuesday, January 12, 2010

Farewell google.cn ?! No~

It is like a bomb when the news comes out that Google may pull out of China after Gmail cyber attack.
http://news.bbc.co.uk/2/hi/business/8455712.stm
http://googleblog.blogspot.com/2010/01/new-approach-to-china.html
Everybody is talking about it in xiaonei.com, a chinese version of facebook in China, updating their status.
I'm shocked, and hope this won't happen.

I remember when I went back China during the winter break, I had no access to Youtube, facebook, my picasa photo album and ... It was so annoying and inconvenient... Now what? Even no access to gmail from China?! This is going to be insane.

I'm not into politics and I almost have zero insights to any censorship issues. But this reminds me what I learned from my middle school history textbook, which talked about the old time when china was in seclusion and was totally isolated from the outside of the world.
We have been trying to be open and to integrate into the whole world. And we have seen what we gained out of it. We opened our market, our economy. But yet, we are not going to open our mind?!

I will feel so sad if Google really withdrawed from China, because it means an essential channel towards the whole world is closed.

Saturday, January 9, 2010

New Semester, New Blog, New Post

I'm opening this blog for my CMPT376w course. We are asked to maintain a blog throughout this semester, writing in the blog at least twice per week. 
This is my first time maintaining English blog. I used to write something in Qzone, ( a personal space associated with an instant messenger ) and xiaonei (a chinese version of facebook... lol ) But I don't write on it regularly and that is in Chinese.
I like the idea of blog as a way to communicate with each other. You get to spread your ideas or say out what is on your mind in a written format, but in an informal way. I like blog as being more  causal and having more freedom in the way you express yourself.  Obviously, it is much easier to write a blog than a paper. :P
I'm not a fast writer. Especially that English is my second language. I need to look up online dictionary sometime. :( 
I hope it will be improved as the course goes on and as I write more and more in English.