This document discusses parallel algorithms and models of parallel computation. It begins with an overview of parallelism and the PRAM model of computation. It then discusses different models of concurrent versus exclusive access to shared memory. Several parallel algorithms are presented, including list ranking in O(log n) time using an EREW PRAM algorithm and finding the maximum of n elements in O(1) time using a CRCW PRAM algorithm. It analyzes the performance of EREW versus CRCW models and shows how to simulate a CRCW algorithm using EREW in O(log p) time using p processors.