# Lecture 8

Asymptotic Analysis (Part I)

## Learning Outcomes

At the end of this lecture, you’ll be able to:

• Describe what is meant by efficiency of algorithms.
• Explain why we use the RAM model of computation for analysis of algorithms.
• Identify what counts as a “step” in an algorithm.
• Explain how algorithm run time is calculated under RAM model of computation.
• Describe run time by counting up the number RAM instructions for a given code snippet.
• Recognize importance of input size on solution efficiency.
• Appreciate what we choose to call the size of an input can vary from problem to problem.
• Differentiate between the best-case vs the worst-case analysis.
• Explain why we focus on worst-case analysis.
• Express the number of steps for a given code segment as a function of the input size in the worst case scenario.
• Appreciate that counting the exact number of RAM instructions requires too much details and it can be very difficult to work out precisely.

## Lecture Plan

In this lecture, we'll cover the following lessons:

Lessons marked with ⚡ contain exercise/activity.