Is Your Research Reproducible?

When a scientific experiment achieves the expected result, researchers hurry up to draft a manuscript, submit it and cross their fingers for acceptance. When that paper gets accepted for publication – a happy camper! However, and not much later, the researchers discover that it was a fool’s paradise. Their work never gets cited by peers. Often times, simply because others cannot reproduce their scientific experiment, i.e. they cannot compare it to their own experiments. There are few reasons that block research reproducibility. In this post, I will preview some of them that frequently appear in the field of computational science. Continue reading

“Big data” challenges for software engineering evolution

In software engineering the “big data” catchphrase refers to in-homogeneous large-scale data that can stem from all software development cycles. Such data can be: source code, software bugs and errors, system logs, commits, issues from backtracking systems, discussion threads from consulting sites (e.g. stackoverflow.com), emails from mailing-lists, as well as developers’ demographic data and characteristics and user requirements and reviews. Software engineering can benefit from the aforementioned data in many ways, but there are several challenges regarding the handling of such data.

Continue reading

What is topic modeling?

Topic modeling is an Information Retrieval (IR) technique that discovers representative topics from a collection of documents. Thus, we expect that logically related words will co-exist in the same document more frequently than words from different topics. For example, in a document about the space, it is more possibly to find words such as: planet, satellite, universe, galaxy, and asteroid. Whereas, in a document about the wildlife, it is more likely to find words such as: ecosystem, species, animal, and plant, landscape. But why text classification is so useful? In this blog post, we try to explain the importance of topic modeling and its use in software engineering.

Continue reading

How can we evaluate modern software systems?

Most people maybe think that software engineers are only coders that develop and maintain applications, systems, and infrastructures. This is not false. But, software engineers are also responsible for the assessment and improvement of the source code itself, based on specific metrics and techniques. This post briefly discusses how software engineering can evaluate modern software systems.

Continue reading

Providing feedback in the classroom

In my previous post, I discussed some current and ongoing research on effective pedagogical approaches to STEM education. The problems in STEM education have gained much attention recently due to the growing gap between demand and skill in American STEM jobs, likely due at least in part to lack of interest or discouragement among American students. Continue reading