Showing posts with label computer science. Show all posts
Showing posts with label computer science. Show all posts

Tuesday, September 23, 2008

Six Steps to Develop a Good Survey

Often, we researchers and scientists have to understand, evaluate, and learn different methods, processes, techniques, technologies, and so on. We discussed previously the importance of empirical studies in the area. On the other hand, another important and probable the most used research method are Surveys.

If you take look, we are often asked to participate in surveys in our life, in different roles such as: electors, consumers, service user, and so on. Doing research, many times we have to design a survey to understand and characterize some particular phenomena. However, in some situations, we forget that there is a bunch of important material about it published in other sciences and, specially, in the software engineering area.

I am designing a survey to characterize the state of reuse measurement based on expert opinion and the series of paper published by Shari Pfleeger and her colleagues were and are being extremely valuable. Thus, if you need to understand, design, construct, and evaluate a survey, I strongly recommending these papers [P1, P2, P3, P4, P5, P6]. These papers gathered experience in the field during the last years and are extremely important for someone interested in this activity.

Regarding to reuse are, I recommend for example two papers in this direction [P1, P2]. The second one presents the state of software reuse in Brazil conducted by RiSE.

Friday, September 5, 2008

Computer Science and Software Engineering Ranking

Many times, I have met students and they ask me a similar question: What are the best universities and research centers in computer science and software engineering? Who are the main researchers in the software engineering area?

It is a complex question. However, some recent research addressed by important researchers can present some insights. These research were published in the main journals in the field and sure offer a good baseline.

Think in some universities, research labs, and researchers for computer science and software engineering around the world, write your opinion and check the results here [R1,R2, R3, R4]. However, it is important highlights that it is not a final and universal ranking.

Wednesday, August 27, 2008

Patent Development - China going Deep

In a previous post, I commented the possible Computer Scientists Crisis, especially, involving Americans. This situation can be showing some the future consequences that the country will have to deal.

According to China's State Intellectual Property Office, in the last year, China received more patent applications that any country (694.000). The U.S had the second most applications (484.955), followed by Japan (443,150). [see the note in Communications of the ACM]

Still according to the note, if China's number of patent applications continues at its current rate, it will lead the world in invention patent application by 2012.

About it, some Americans are wondering about this situation in the short future. Yesterday, I had a dinner with David Weiss, director from Avaya Labs, in New Jersey, and we were discussing about politics, previous presidents, their legacy and consequences. David highlighted exactly this issue: The lost of investments for research and education, the interest for students in the area, the fact that nowadays most graduates are not Americans and they are returning for their country. Maybe, we have to wait for the next years and analyze this point which could have a great impact in science and technology around the world.

Thursday, August 14, 2008

CACM - Donald Knuth Interview

Communications of the ACM (CACM) in July and August's editions published a very good interview with Donald Knuth. The two papers The 'Art' of Being Donald Knuth and Donald Knuth: A Life's Work Interrupted are very interesting.

Don Knuth is an Emeritus Professor at Stanford University and won several awards such as Turing Award (1974) and John von Neumann Medal (1995). He is most known by being the creator of the TeX and author of the seminal The Art of Programming book series.

In his interview, Don comments curious moment in his life such as his path from physics, mathematics until arrive in computer science; his first program in 1950s and its lessons; his disappointment as a teacher; his mentor; his first text written in a motel; and his Ph.D. thesis research taken in one hour ("I felt a little guilty that I had solved my Ph.D. problem in one hour, so I dressed it up with a few other chapters of stuff").

Another good point is when he said: "if you ask me what makes me most happy, number on would be somebody saying: I learned something from you. Number two would be somebody saying: I used your software".

Wednesday, August 13, 2008

Computer Scientists Crisis?

Last July, Rick Rashid, Senior VP of Microsoft Research, published an interesting [discussion] paper in Communications of the ACM (see the paper here) about the future of computer science in the U.S. His first sentence was trick for a first look: "Is computer science a dying profession? ".

He argues that a recent UCLA survey in 2006, 1% of incoming freshman planned to major in computer science, compared with 5%, 25 years ago. In addition, he states that in 2007 occurred a one-year drop of almost 20% in computer science and computer engineering degrees and more than half of M.Sc. and Ph.D. degrees granted by U.S. universities were awarded to non-U.S. citizens.

On the other hand, everybody knows that the demands for services in the area is increasing a lot and it can be a problem soon [for some people it is happening currently].

One of Rick's issue now is try to understand why this interest is decreasing. If we talk about women the problem is still bigger. So, what Can we do? I do not know exactly the numbers in Brazil, but I know that the Brazilian Computer Society is working on this direction, especially, about women in computer science. In my environment, at C.E.S.A.R there are initial and interesting initiatives to improve this situation. Called Education for the Future, it combines researchers and practitioners from different areas where C.E.S.AR is starting Games Labs Lan Houses, Academic Social Networks for undergraduate students. The initial results are being very good and it will be better in the future with new investments from government, funding agencies and private companies.

Other good initiative is the Alice project or other incredibles one at Carnegie Mellon University. A good place to discuss it is the IEEE Conference on Software Engineering Education and Training (CSEE&T). This year, I presented our experience with software reuse and I could see good efforts in the software engineering are. About this conference, the call for paper is available for the next year.

Wednesday, July 30, 2008

Empirical Studies: On software and sharks

Software has become part of our society and it is found in products ranging from microwaves to space shuttles. It implicates that a vast amount of software has been and is being developed. On the other hand, organizations are continuously trying to improve their software process in order to achieve their goals.

Nevertheless, when the improvement proposal has been identified, it is necessary to determine which to introduce, if applicable. Moreover, it is often not possible just to change the existing software process without obtaining more information about the actual effect of the improvement proposal, i.e., it is necessary to evaluate the proposals before making any changes in order to reduce risks. In this context, empirical studies are crucial since the progress in any discipline depends on our ability to understand the basic units necessary to solve a problem. Additionally, experimentation provides a systematic, disciplined, quantifiable, and controlled way to evaluate new theories. It has been used in many fields, e.g., physics, medicine, manufacturing; however, in the software engineering field, this idea started to be explored in the 70s with the work of Victor Basili from University of Maryland. Currently, we can see conferences, books and other efforts in this direction.

At RiSE Labs, we are working hard in this direction. All of the research before being introduced in an industrial scenario should run an empirical study about it showing the benefits and drawbacks. Sometimes, the students and researchers arguing a lot before seeing and understanding the benefits related to it. However, if we look for other examples in the real world, we can see that it is a standard procedure and is being handled seriously.

Last Sunday, Discovery Channel started the Shark Week, a special program with a bunch of information about sharks. I did not have the opportunity to watch the first day, but on Monday I did it. In the Day of the Shark program, researchers from several places around the world were performing important experiments involving sharks attacks. I will explain some of them here and maybe it can be useful:
  • What is the best approach in a shark attack? Stay together in a group (like in cartoons. Everybody praying together) or separate, each one trying to save yourself? The experiments identified that is better to stay together. The researchers used fake humans (toys) to perform the experiments and identified it. As in a software engineering experiment, you have many threats to deal (clothes for the toys, lack of signals that human have and sharks’ sensors can recognize, types of sharks, sharks habits….)
  • Can the sharks attack during the day and night in the same way? Yes, the experiment showed that sharks are not concerned about day or night.
  • Other important experiment was performed in order to design devices to avoid sharks attacks. The researchers analyzed the use of electrical devices and a type of gas and these ones were able to scare the sharks for a while. This way, you have some minutes to find a boat, reef, etc.
  • In another experiment, they designed a material to be resistant for a shark bite. The material was very resistant, however, it was destroyed by the sharks and they are planning a replication with some adjusts. Can you imagine yourself trying this solution before its experimentation?
The program was very impressive and interesting and the researchers presented important findings, for example, comparing the surfers’ dilemma: stay quiet or try to get out with the surfboard. Nevertheless, the experiment which was more impressive to me involved two researchers rounded by sharks [It can be disgusting to watch].

The goal was try to understand the sharks’ behavior. However, one of the researchers had part of his calf bitten by a shark. That was terrible. Although, after the accident, the same researcher replicated the experiment trying to better control the variables (just him in the water, cameras away from him – the guys were in a rock) and obtain more findings about it. In this replication, he did not have problem.

As you can see, empirical studies are critical to improve the science and the way to understand part of the world and its elements. With luck, in some situations in the software engineering area, we do not have to deal with human in critical conditions to run experiments.

In addition, I agree with David Parnas when he said that we cannot do experiments for everything that we are defining (or we just have to do it for the next years and forget our current activities), however, in some situations they are very important to present evidences about something.

Sunday, July 27, 2008

An Enduring Legacy - Randy Pausch

Randy Pausch, the professor at Carnegie Mellon University who inspired countless students in the classroom and others worldwide through his highly acclaimed last lecture, has died of complications from pancreatic cancer. He was 47.

See all the information at Carnegie Mellon University website.

His legacy was incredible. I had the opportunity to learn last year about one of his project: Alice and it was brilliant. Take a time to watch his last lecture talk. It was amazing. From there, he said:
"We cannot change the cards we are dealt, just how we play the hand."--Randy Pausch


Monday, May 19, 2008

Tribute to Honor Jim Gray

If you are in the U.S during May 31, 2008, you should consider participate in the Tribute to Honor Jim Gray. Jim Gray was a computer science pioneer, known for his incredible work as programmer and mentor. The University of Berkeley is organizing this tribute which will have the participation of important names in the computer science community. At this university, Jim Gray earned the university’s first Ph.D. in Computer Science.