Skip to main content
COVID-19 information and screening Learn how we’re keeping our campus community safe, healthy and engaged during our gradual return to campus.
Note: The university’s mandatory vaccine directive is now in effect. Learn more about vaccine requirements.
Ontario Tech acknowledges the lands and people of the Mississaugas of Scugog Island First Nation.

We are thankful to be welcome on these lands in friendship. The lands we are situated on are covered by the Williams Treaties and are the traditional territory of the Mississaugas, a branch of the greater Anishinaabeg Nation, including Algonquin, Ojibway, Odawa and Pottawatomi. These lands remain home to many Indigenous nations and peoples.

We acknowledge this land out of respect for the Indigenous nations who have cared for Turtle Island, also called North America, from before the arrival of settler peoples until this day. Most importantly, we acknowledge that the history of these lands has been tainted by poor treatment and a lack of friendship with the First Nations who call them home.

This history is something we are all affected by because we are all treaty people in Canada. We all have a shared history to reflect on, and each of us is affected by this history in different ways. Our past defines our present, but if we move forward as friends and allies, then it does not have to define our future.

Learn more about Indigenous Education and Cultural Services

December 3, 2014

Speaker: David Kelk, Ontario Tech University

Title: CORE: A Framework for the Automatic Repair of Concurrency Bugs

Abstract: In this thesis, we develop the CORE (COncurrent REpair) framework. It automatically fixes deadlocks and data races in parallel Java programs.  It uses a search-based software engineering approach to mutate and evolve the source code. In these mutants, synchronization blocks are added, removed, expanded, shrunk or the synchronization variable is changed. Each potential fix is model checked or run through a thread noising tool that forces different thread interleavings to be explored. Efficiently fixing data races and deadlocks in parallel Java programs is realized by combining two techniques. First, different forms of static and dynamic analyses are brought together to constrain the search space. Second, a genetic algorithm without crossover was implemented that uses both noising and model checking to determine fitness. These techniques are unified in the CORE framework.