Oct 17, 2008

Aspect-Oriented Programming (AOP)

Aspect-oriented programming (AOP) is one of the “advanced software engineering topics” which goes beyond object-oriented programming (OOP) by offering a powerful way to modularize cross-cutting concerns with regard to object hierarchies.

In object-oriented programming (OOP), one usually captures the main concerns of a problem (e.g. for a banking application, money withdrawal at an ATM, funds transfer,...) and then encapsulates them into classes. The problem is that some requirements/ concerns, non-business operations are needed (i.e. logging, authentication, caching, transactions...). These operations are shared by several classes of a system, and each of them has to code their firing.

The main idea behind AOP is to consider these operations as crosscutting concerns and to group them into separate modules, than fusing them throughout the entire system, which are automatically called by the system. This new approach helps building clean software architectures and are geared towards the higher modularity of the code as well as, completes the toolbox of software engineers, already containing design patterns, frameworks, refactoring, unit testing,... AOP is particularly well suited for implementing middleware frameworks which are typically responsible for these crosscutting concerns. Indeed, the additional functionalities can be transparently injected (or weaved) at compile, load or run time into the core business code which (at the source level) remains clean and unchanged.

This, relatively, new paradigm is useful for who are familiar with the design and implementation problems of classical OOP and want to learn how AOP can help them implement solutions. More specifically, AOP can be applied in many areas in the context of software engineering such security, measurement, testing, maintenance, and so forth.

Besides, they are some extension to the current programming languages which support the AOP concept such as AspectJ (extension to Java), AspectC ( extension to C) and some others. Among them AspectJ is most commonly used AO language in community, where it has got good support in terms of Eclipse IDE as well.


With information ICSRG shares

Beta Release of LETOR3.0, a Benchmark Dataset for Learning to Rank

A report from Microsoft research asia:

LETOR is a package of benchmark data sets for research on LEarning TO Rank, released from Microsoft Research Asia.
This dataset contains standard features, relevance judgments, data partitioning, evaluation tools, and several baselines, for the OHSUMED data collection and the '.gov' data collection. Version 1.0 was released in March 2007. Version 2.0 was released in Jan. 2008. Since the release of LETOR2.0, we have received valuable feedbacks from many people, such as bug reports, feasibility studies of the tools, and so on. Based on the feedbacks, we launched the project of LETOR3.0 several months ago.
Now the beta version of LETOR30 is available at

http://research.microsoft.com/users/LETOR/.

What's new in LETOR3.0?
LETOR3.0 contains several significant updates:
1) Four new datasets were added: homepage finding 2003, homepage finding 2004, named page finding 2003 and named page finding 2004. Plus the three datasets (OHSUMED, topic distillation 2003 and topic distillation 3004) in LETOR2.0, there are seven datasets in LETOR3.0;
2) More reasonable document sampling strategy was adopted. As a result, there are some changes on the documents associated with each query in the three datasets in LETOR2.0.
3) More features for learning were added.
4) Meta data for each document was provided to enable research on features for learning to rank.
5) More baseline algorithms were provided (actually the baselines will be included in the final version of LETOR 3.0);
What to do for LETOR3.0?

1) We plan to release the final version of LETOR3.0 datasets in early Nov, 2008. If you find any problem with the current beta version, please kindly let us know. We will refine the datasets accordingly. Our goal is to make the datasets really reliable and useful for the community.
2) The baselines in LETOR3.0 will be released at mid of Dec, 2008. If you want your own algorithms to be included as official baselines in LETOR3.0, please contact us as soon as possible.
We would like to express our sincere thanks to you, for your suggestions and helps on LETOR in the past years. We look forward to receiving feedbacks from you.
Please feel free to send an email to letor@microsoft.com to contact Letor team.
Best regards,
Tao Qin, Tie-Yan Liu, Jun Xu and Hang LiMicrosoft Research Asia



With information ICSRG shares

Oct 15, 2008

Video Lectures in Computer Science

VideoLctures.net is a free web site where collect more than 5,000 useful videos from the most famous lecturers and scholars in prominent universities or conferences. Although, it covers almost all sciences, videos in computer science(about 1,500 videos) is the main part of this collection. You may also find the presentation files in this web site.
Videos in computer science are divided in more than 30 categories as follow:


With information ICSRG shares

Research Methods Knowledge Base

The Research Methods Knowledge Base is a comprehensive web-based textbook that addresses all of the topics in a typical introductory research methods.


It covers the entire research process including: formulating research questions; sampling ; measurement ; research design ; data analysis; and, writing the research paper.

With information ICSRG shares

Oct 12, 2008

ICSRG Rules

  1. ICSRG is a public media to improve Iranians’ ability to communicate as an international researcher. So, do not send your private messages.
  2. ICSRG is a academic media. So, do not send any political,… messages.
  3. Official language in this media is English. So, do not talk Finglish.
  4. Members of this group should be Iranian.
  5. All members can send messages about conferences to the group, but conferences should have following criteria:
    –Articles in the conference should publish in the indexed publication (Springer, IEEE, ACM, …) OR Conference should be in CS conference Ranking List.
    –The language should be English.
  6. All members can send messages about journals to the group, but journals should have following criteria:
    –Journals should be indexed (ISI, INSPEC, SCOPUS, …)

With information ICSRG shares

Oct 2, 2008

How to find information about journals?

Open question 2:
Here we have some questions about journals:

1- How can we find the most prominent journals related to computer science?
2- What does ISI jounals mean?
3- How to access these information?

Kindly, leave you comment as answer.
With information ICSRG shares

Sep 25, 2008

How to write a research proposal?

Open question 3:
Here we have some questions about writing a proposal:

How to write a research proposal?
What are the most important parts of a proposal?
Are there any sample proposals to be used as a template?

Kindly, share your experience.
With information ICSRG shares