Students will learn the basics needed to understand and implement algorithms, which is the fundamental thinking process and methodology for learning computer science. This is a fundamental requirement for the USA Computing Olympiad. It builds the foundation for studying and excel in the AP computer science courses. Standard measures of efficiency (for example time and space complexity) will be introduced, and popular algorithms for sorting and searching will be explored in greater detail. Algorithms will be presented in pseudo-code, and implementations in Python and other popular languages will be covered. More specialized algorithms, such as primality testing, string matching, shortest path, or RSA-encryption will be covered based on teacher specialization.