Every morning I read through my favourite technology blogs and one series of blog posts that I confess to enjoying are the Featured Bag posts on Lifehacker. These are basically a series of posts where different people from different jobs/walks of life describe the kind of bag they use and what they keep inside it. I find this interesting because I’m always looking for ways to ensure that what I carry to and from work, to research meetings, and to conferences is lightweight and maximizes functionality. A collection of user submitted bags/backpacks can be found on the Lifehacker Go Bag Show and Tell (hosted on Flickr).
One of the questions I often get asked by new research students in my lab is how can they find research papers that are relevant to their thesis. For a student new to research this can be a very daunting task and doing a straight Google, Bing or Yahoo search generates a lot of noise (i.e. irrelevant content, non peer-reviewed papers, etc.).
The first advice I usually give is where to start searching. There are a number of academic-specific search engines that provide good results from a wide variety of researcher, publisher and academic websites. For example: Continue reading →
The article cites an interview with Laszlo Bock, Google’s Senior VP of People Operations, and identifies the five hiring attributes that Google considers when evaluating potential job applicants: Continue reading →
On March 7th of last year I attended an OCE event called the “AMD HSA and Heterogeneous Computing Research Showcase.” I recently came across my notes from the event and I thought a few quotes from the keynote speaker, Phil Rogers from AMD Canada, were worth sharing.
Phil Rogers on AMD’s commitment to open industry standards:
“open standards always win over time.”
Phil Rogers on programming with threads:
“An expert can get two threads right. An expert can sometimes get three threads right… but cannot get all of the test cases right… doesn’t scale (to 100s of threads).”
The following quote is one of my favorite quotes regarding the right way to conduct Software Engineering (SE) research. It summarizes the importance of utilizing empirical methods to inspire and guide the development of new SE tools and techniques:
“In all fields of SE, empirical methods should enable the development of scientific knowledge about how useful different SE technologies are, for different kinds of actors, performing different kinds of activities, on different kinds of systems. Such scientific knowledge should guide the development of new SE technology and be a major input to important SE decisions in industry and services.”
– Dag I. K. Sjoberg, Tore Dyba, Magne Jorgensen. The future of empirical methods in software engineering research. In Proc. of ICSE 2007, Future of Soft. Eng. (FOSE ’07), pages 358-378, 2007. Continue reading →
Mutation testing can be used to evaluate the effectiveness of test suites and can also be used as an oracle during the creation or improvement of test suites. Mutation testing works by creating many versions of a program each with a single syntactic fault. These program versions are created using mutation operators which are based on an existing fault taxonomy (i.e., a set of known fault types that we are trying to find during testing). One mutation operator, Relational Operator Replacement (ROR), could create a new mutant version of the program in which one of the instance of a relational operator (e.g., <) is replaced with a different operator. For example, line 3 of the following Java source code: Continue reading →
With the increase in multicore processors there has been an increase in demand for concurrent programming and an increase in books and resources that focus on programming with concurrency. Below I will outline some of the books on my own bookshelf that have been useful. Continue reading →
Last year Bertrand Meyer authored a post titled Long Live Incremental Research! at BLOG@CACM. Rather then writing my own post on the topic, I instead want to encourage people to read Meyer’s post as I think he does a great job of summarizing the importance of approaching research incrementally and not aiming for the next great breakthrough. A few quotes from his post:
“First, 99.97% of all research (precise statistic derived from my own ground-breaking research, funding for its continuation would be welcome) is incremental. Second, when a “breakthrough” does happen — the remaining 0.03% — it was often not planned as a breakthrough.”
FindBugs – works on Java. In the list of bugs detected all of the “Multithreaded correctness” bugs are relevant to concurrency. Command-line interface or eclipse plugin (eclipse plugin update site:http://findbugs.cs.umd.edu/eclipse/)
This Saturday, March. 3, 2012 from 10:00am-2:00pm UOIT will be hosting its annual Winter Open House for prospective students interested in studying at UOIT. This year myself and Dr. Christopher Collins will be coordinating the Computer Science lab tour. As the undergraduate program director for Computer Science, I will be providing a 30 minute overview of the Computer Science programs (comprehensive program, digital media specialization, digital forensics specialization) while Chris will be in the undergraduate lab where a number of our undergraduate students. The students will be available to give demos, answer questions and showcase Computer Science at UOIT.
I have participated in UOIT recruitment events for the past 5 years and I have answered a lot of questions from potential students and their parents. One of the most common questions that I get asked every year is:
Why should I choose to study Computer Science at UOIT?