Foundational Sorting Algorithms
Sorting is one of the most thoroughly studied problems in Computer Science. At its core, given a structured set of $n$ elements $[a1, a2, a3, \dots, an]$ and a strict total order relation ($\le$), the objective of a sorting algorithm is to rearrange the elements into an increasingly ordered sequence.
Parallel Algorithms & Frameworks
Up to this point in our computer science curriculum, we have evaluated computational strategies under a sequential execution model, assuming a single central processing unit (CPU) running one machine instruction at a time. However, modern hardware architectures scale processing power by adding physical compute cores rather than raw clock speed.