Thursday, April 28, 2016

The Application Process for Google Anita Borg Memorial Scholarship: Asia Pacific

I think many girls may have some questions about the "Google Anita Bord Memorial Scholarship" application process. Below I have listed some questions and answers for your reference: 


Q: Why should I apply?
A:  There are many reason to apply:
  1. It is an internationally recognized scholarships
  2. Getting the award looks good on your resume
  3. You get more money to spend on tuition fees and books. 
  4. No restriction on the scholarship you currently receiving (Some scholarship may give the applicants lower priority of getting the scholarship because they are currently receiving some other scholarship) 
  5. It is a stepping-stone for another award/ scholarship (This is less obvious but it is true that even if you get an gender-specific award, it helps you in getting another award because it makes your resume stands out among all other applicants) 
  6. You can always keep re-applying each year with minimal additional effort (I applied for twice before I actually obtained the scholarship. The best part is that I can reuse most part of my previous applications in my second application so I can focus more on strengthening my applications.). 

Q: Do you need to have recommendation letters?
A: No. I think this is the best part of the application process! As most scholarships required recommendation letters, girls who want to apply may think they need to allocate significant time in figuring out who to ask for the reference letter and also worrying about the reference letter not being ready before the deadline. So, isn't it a big relief that you do NOT need a recommendation letters?


Q: Is there a restriction on how I use the money?
A: While some scholarships restricted the usage of the money for paying the tuition fees or travelling to particular conference, there is no such restriction for this scholarship. You can use it for any academic purposes, e.g., buying books, attending conference, paying for tuition fees or attending summer schools.


Q: Am I good enough to apply? 
A: Some girls are hesitant to apply due to the lack of self-confidence. But, what is there to lose even if you apply? You may need to spend some time in completing the applications or risk feeling sad if your application get rejected but it is really a huge loss? On the other hand, if you don't apply because you think that you are good enough, when will you be good enough to apply if you even cannot face such a small challenge?

Q: The requirement stated one must have "Exemplify leadership and demonstrate passion for increasing the involvement of women in computer science", what does it mean?
A: There will be one essay question asking about your involvement in encouraging more women in computer science. Again, don't hesitant to apply thinking that this seem unrelated to you. In the field with women as minority, I am sure that you have encountered situations in which you wish that more women could be in this field and you may have subconsciously done something to encourage women in computer science even though it may be of a small scale. For example, you could attend some networking events for women in engineering or take part of some mentoring program catered for women in computer science. By attending these events, you are actually showing support for organizer of these events and this could be a form of activities that could encourage more women into computer science. Another example is that you may have some weekly gathering with other girls in CS department. While you may think that this is merely a social gathering, demonstrating good social support to your female peers in the same department is a good start to encourage more women to computer science because "words of encouragement" may be the only thing one needs when going through obstacles in life.


I hope that you will really consider applying for the "Google Anita Borg Memorial Scholarship" after reading what I wrote in the previous lengthy paragraph. Please leave some comments if this post is helpful to you.

Apply Now to Google Anita Borg Scholarship by May, 8th 2016

Who can apply?

To be eligible to apply, applicants must:
  • Be a female student enrolled in undergraduate or postgraduate study in the 2016 academic year.
  • Be enrolled in a university in Asia Pacific. Citizens, permanent residents, and international students are eligible to apply.
  • Be majoring in computer science, computer engineering, or a closely related technical field.
  • Exemplify leadership and demonstrate passion for increasing the involvement of women in computer science. 

How to apply?

Please sign in with a Google Account in the Sign In box at our online application portal and complete the required steps which include:
  • General background information (includes contact information and information about your current and intended academic for the 2016-2017 school year).
  • Current resume (Submit in the language you feel most comfortable with)
  • Academic transcripts from your current university (and prior institution if currently in graduate school).
  • Responses to three essay questions (Submit in the language you feel most comfortable with)  

Go to  http://www.google.com.sg/anitaborg/apac/ for more details.

Download the poster for "Google Anita Borg Scholarship 2016"

Friday, February 26, 2016

Troubleshooting Compilations Problems for C/CIL Programs


I have recently encounter several issues when I try to compile some open-source C programs. I am able to resolve all of these issues by searching for solutions on technical forums. I have summarized the solution that I have for each error message that I have encountered for your reference. Note that I have tested all the mentioned solutions only on Ubuntu 14.04.

Problem: configure.ac:27: error: possibly undefined macro: AC_DEFINE
     If this token and others are legitimate, please use m4_pattern_allow.
     See the Autoconf documentation.
Solution: sudo apt-get install pkg-config

Problem: configure:11013: error: possibly undefined macro: gl_FEATURES_H
         If this token and others are legitimate, please use m4_pattern_allow.
         See the Autoconf documentation.
Solution 1: Replace m4/gnulib-common.m4 with latest version of m4/gnulib-common.m4 from master branch. e.g, http://fossies.org/linux/metalog/gnulib/m4/gnulib-common.m4.
Solution 2: Insert the following to m4/gnulib-common.m4
# Test whether <features.h> exists.
# Set HAVE_FEATURES_H.
AC_DEFUN([gl_FEATURES_H],
[
  AC_CHECK_HEADERS_ONCE([features.h])
  if test $ac_cv_header_features_h = yes; then
       HAVE_FEATURES_H=1
  else
       HAVE_FEATURES_H=0
  fi
  AC_SUBST([HAVE_FEATURES_H])
]) 
Source: https://redmine.lighttpd.net/issues/522

Problem: File be.po does not exist. If you are a translator, you can create it through 'msginit'.

Solution: make -k update

Problem: How to Install and update locale?
$ sudo locale-gen "en_US.UTF-8"
Generating locales...
 en_US.UTF-8... done
Generation complete.

sudo dpkg-reconfigure locales
Generating locales...
 en_US.UTF-8... up-to-date
Generation complete.


Problem: ja_JP.SJIS not found
Solution: Note that while the original solution was for debian, I have tested this on ubuntu 14.04 as well
sudo touch /var/lib/locales/supported.d/ja
sudo echo "ja_JP.UTF-8 UTF-8" >>/var/lib/locales/supported.d/ja sudo echo "ja_JP SJIS" >>/var/lib/locales/supported.d/ja sudo echo "ja_JP.EUC-JP EUC-JP" >>/var/lib/locales/supported.d/ja
sudo dpkg-reconfigure locales

Source: https://code.google.com/archive/p/winelocale/wikis/AddLocalesToDebian.wiki

CIL Compilations

Problem: cannot find -lstr
Solution:    

locate libcamlstr
cd /usr/lib/ocaml
sudo ln -s libcamlstr.a libstr.a

Source:http://stackoverflow.com/questions/13584629/ocaml-compile-error-usr-bin-ld-cannot-find-lstr


Scrapy Installation

Problem: Unable to install Scrapy: "error: command 'gcc' failed:

 c/_cffi_backend.c:2:20: fatal error: Python.h: No such file or directory

Source: http://stackoverflow.com/questions/33454808/unable-to-insall-scrapy-error-command-gcc-failed-with-exit-status-1

 Solution:     

1. Install the following dependency:
sudo apt-get install build-essential libssl-dev libffi-dev python-dev libxml2 python-lxml
2. Then install Scrapy using Pip:
sudo pip install Scrapy

Friday, January 15, 2016

Amazing Grace



Grace Brewster Murray Hopper (December 9, 1906 – January 1, 1992) was one of the greatest female computer scientists in 20th century. She invented the first compiler for a computer programming language, and was one of those who popularized the idea of machine-independent programming languages which led to the development of COBOL, one of the first high-level programming languages. She is credited with popularizing the term "debugging".

Curious girl and female mathematic professor

Hopper was born in New York City. She was curious as a child, a lifelong trait: at the age of seven she decided to determine how an alarm clock worked, and dismantled seven alarm clocks before her mother realized what she was doing (she was then limited to one clock).

She graduated from Vassar in 1928 with a bachelor's degree in mathematics and physics and earned her master's degree at Yale University in 1930. Hopper began teaching mathematics at Vassar in 1931, and was promoted to associate professor in 1941.

In 1934, she earned a Ph.D. in mathematics as the first female who achieved the degree from Yale.


Glorious military career from WWII

In 1943, Hopper volunteered to serve in the WAVES. She gave up the current life and graduated first in her class at the Naval Reserve Midshipmen's School at Smith College in Northampton, Massachusetts.

She served on the Mark I computer programming staff headed by Howard H. Aiken. Hopper remained at the Harvard Computation Lab until 1949, turning down a full professorship at Vassar in favor of working as a research fellow under a Navy contract at Harvard.

First compiler

In 1949, Hopper became an employee of the Eckert–Mauchly Computer Corporation as a senior mathematician and joined the team developing the UNIVAC I.

In 1952 she had an operational compiler. "Nobody believed that," she said. "I had a running compiler and nobody would touch it. They told me computers could only do arithmetic."

COBOL

In the spring of 1959, a new language COBOL (an acronym for Common Business-Oriented Language) was defined at the Conference on Data Systems Languages (CODASYL). brought together computer experts from industry and government. Hopper served as a technical consultant to the committee along with other computer experts from industry and government. The new language extended Hopper's FLOW-MATIC language with some ideas from the IBM equivalent, COMTRAN. Hopper's belief that programs should be written in a language that was close to English was captured and COBOL went on to be the most ubiquitous business language to date.

Retire and rehire

After Republican Representative Philip Crane saw her on a March 1983 segment of 60 Minutes, he championed H.J.Res. 341, a joint resolution originating in the House of Representatives, which led to her promotion to Commodore (Admiral, O-7) by special Presidential appointment. She remained on active duty for several years beyond mandatory retirement by special approval of Congress. In 1985, the rank of Commodore was renamed Rear Admiral (Lower Half). She retired (involuntarily) from the Navy on August 14, 1986. At a celebration held in Boston on the USS Constitution to celebrate her retirement, Hopper was awarded the Defense Distinguished Service Medal, the highest non-combat decoration awarded by the Department of Defense.

She was then hired as a senior consultant to Digital Equipment Corporation, a position she retained until her death in 1992, aged 85.

Ambassador of computer science

Her primary activity in this capacity was as a goodwill ambassador, lecturing widely on the early days of computers. So during many of her lectures, she illustrated a nanosecond using salvaged obsolete Bell System 25 pair telephone cable, cut it to 11.8 inch (30 cm) lengths, the distance that light travels in one nanosecond, and handed out the individual wires to her listeners. Although no longer a serving officer, she always wore her Navy full dress uniform to these lectures, which is allowed by US Navy uniform regulations.

The most important thing I've accomplished, other than building the compiler, is training young people. They come to me, you know, and say, 'Do you think we can do this?' I say, "Try it." And I back them up. They need that. I keep track of them as they get older and I stir them up at intervals so they don't forget to take chances.

Owing to her accomplishments and her naval rank, she is sometimes referred to as "Amazing Grace". The U.S. Navy Arleigh Burke class guided-missile destroyer USS Hopper (DDG-70) is named for her, as is the Cray XE6 "Hopper" supercomputer at NERSC.

Grace Hopper and encouragement of women

The Grace Hopper Celebration of Women in Computing is the world's largest gathering of women technologists. It is produced by the Anita Borg Institute and presented in partnership with ACM.

More information could be found here:
http://ghc.anitaborg.org

Wednesday, January 13, 2016

About the Author

Hello~ It's me!    - Janice :D
Hellooo everyone, this is my very first post in this blog. Let me do a little introduction about myself. My name is Janice, and I am studying Bachelor of Software Engineering at Taylor's University, Malaysia. I am currently Year 2 Semester 3 student and I have one more year to go in my degree before it ends.

In this semester, I am having my internship at Hilti Asia IT Services Sdh. Bhd Company (HAITS). Hilti is an international constructor company that offers products, systems and services with used of current leading-edge technology and provide professional customers in the construction and energy sectors with innovative solutions that feature outstanding added value. What am I doing here is that I have a research topic that has been given during my first day of internship and I am assigned to handle a project individually which is a mobile app in Android platform. (PS: I am writing this post during my office hour :p) The office here is not consider big but I just simply love the company culture here. Today, is my second week interns here and I could feel that everyone in the office is very friendly.
 
Besides working, in my university, my friends and I (most of them are studying in IT field) have a Tech club called Agents of Tech. It is a technology club that gather all the technology passionate students in Taylor's Univeristy and explore all the latest technology together. Last year October, the club has organised a 24-HOURS Student Hackathon in our school. A hackathon is a platform to gather different field of students who are expert in a specific area and team them up by 4 persons in a group. ImagineHack 2015 was very challenging because every student joining the competition did not give up in their ideas. Every year, Agents of Tech club will organise ImagineHack for students to unleash their ideas and expertise. For more information, can visit to: https://www.facebook.com/ImagineHack/


This is the group photo of all the Imaginehack 2015 committees and participants.
"T" for Technology
"T" for Taylor's University Agents of Tech
^.^

About girls in Computer Science, I think it sounds cool right xD (Because in my country, not much girls study in Computer or IT related field. Hehehhehe)

Tuesday, January 12, 2016

Emerging Research on Automated Program Repair

While most research previously focuses on debugging and fault localization, there has been growing interest in the area of automated program repair.

I will give a brief introduction to automated program repair by answering several common questions that I came across.

Q: What is "Automated Program Repair" or "Automated Patch Generation"?
A: Imagine you are a developer who are assigned to fix a bug in your software. You are given a failing test which shows how to reproduces the bug. The goal is to fix this bug such that this failing test become passing while making sure that all other tests still pass. Firstly, you will need to find the location in which the bug are being manifested, essentially answering the "where to fix?" question.
After that, you will need to think about how to modify the code in order to complete the fix. You will also need to check if the code changes introduced indeed fix the bug by re-running all the tests. You could imagine that such process is both tedious and error prone. Wouldn't it be great if a tool could automatically do all these mentioned tasks for you? These are essentially the promises of automated program repair.

More formally, automated program repair is an approach that automatically generate fix for a buggy program by performing both fault localization and patches generation.

Q: How does it work? It sounds magical to me that a program could fix itself?
A: The idea of having a program fixing its own bugs may sound too good to be true but this is not the case. Most automated program repair techniques share lots of similarities with previous research on debugging and fault localizations. This is because if an automated technique could tell you the exact line and even the name of relevant variable in that line that cause the bug, then it is relatively easy for you to fix the bug itself. 


Q: Is it completely automated?
A: This depends on the techniques itself. From my experience of using a few state-of-the-art automated program repair tools, it is not as simple as clicking a button.
The general requirement is:
  • The bugs itself must be reproducible and deterministic
  • Test scripts need to be modularized such that each test could be run separately.
  • Each test execution should take less than a few minutes
  • The compilation of the program should take less than one hour

The last two requirement is important especially for search-based program repair techniques because these techniques spent the majority of the repair process in test execution and compilation.


Q: What is search-based program repair? Do you mean that the repair process basically proceed by trial-and-error?
A: Search-based program repair approaches solves the program repair problem using various local search strategies (e.g., genetic algorithm and random search) with the goal of optimizing the number of passing test cases. Yes, while different repair techniques may introduce some heuristics to reduce the repair time or the search space, the repair process is essentially trying to test each candidate patch until a patch that pass all tests is successfully found. 

To learn more about other relevant papers on automated program repair, refer to http://automated-program-repair.org/

Wednesday, November 4, 2015

NUS Workshop on Contemporary Research in Computer Science and Information Systems

NUS School of Computing is organizing the NUS Workshop on Contemporary Research in Computer Science and Information Systems from 26 to 28 January 2016. This three-day workshop provides a fertile ground for research discussions, collaborations and thought sharing among young as well as mature researchers from NUS and participating universities.

Full-time students who are at least in the third year of their Bachelor’s degree, and Master’s degree students are welcome to put in their applications for this workshop (Note that students studying in Malaysian Universities could apply as well). We offer scholarships (including accommodation and subsidized airfare) to all selected students, and interested students are encouraged to apply as soon as possible. Information about the workshop and the application details can be found here: http://www.comp.nus.edu.sg/graduates/rschworkshop.html. A copy of the flyer is also attached.

The application deadline is 20 November 2015.

The programme for the research workshop includes the following contemporary computing topics:

           Day 1:         Welcome/ Introduction of CS and IS Research Topics
Selected topics on Multimedia and Wearable Computing

           Day 2:         Selected topics on Programming Languages and Security
                                Selected topics on Data Analytics and Networked Systems

           Day 3:         Selected topics on IT Innovation and Organization
Selected topics on Social Computing and Healthcare Information Systems
If you have any queries, please feel free to email us at socwksp@comp.nus.edu.sg.