Preparing the software engineer for a modern multi-core world - Giacaman, Nasser; Sinnen, Oliver (Journal of parallel and distributed computing, 2018)
Parallel and Distributed Computing (PDC) was traditionally viewed as an advanced subject reserved for elective graduate courses. The last decade has seen two areas with rapid growth, whose synergy is demanding new skills for software engineers in a modern multi-core world. The first has been society’s increasing demand for software engineering solutions, evident in the integral role that software plays in daily life. Unlike traditional PDC applications in the scientific and engineering domains, modern software applications are interacting directly with millions of users on mainstream laptops, smartphones and tablets. The second trend is that of multi-core processors powering such devices, which is further fueling the potential of software applications. This paper proposes a Modern Parallel Programming Framework that recognizes that successful software engineering in this domain involves a combination of hard skills and soft skills. A course dedicated to this goal is presented and evaluated, incorporating a research-infused, problem-based and active learning approach. •Proposal of a Modern Parallel Programming Framework incorporating PDC concepts with mainstream application domains.•Applying PDC programming in the context of Graphical User Interfaces and Object-Oriented Programming.•Proposal of Active Classroom Programmer (ACP) to present parallel programming for desktop and mobile applications, encouraging active learning.•Proposal of Research-infused and Problem based learning environments for PDC.