RAM: A Hypothetical Computer!

Algorithms can be studied independent of the programming language used to implement them and independent from the hardware used to execute them. This is desired as it enables us to compare algorithms and design more efficient ones before implementation.

In this course, we stick to Java programming language to express algorithms. For a machine-independent analysis of algorithms, we introduce a hypothetical computer called the Random Access Machine or RAM (as defined in "Algorithm Design Manual" by Steven Sekiena [with some adjustments]).

Resources