figure procedural abstraction must know the details of how operating systems workhow network protocols are configuredand how to code various scripts that control function they must be able to control the low-level details that user simply assumes the common point for both of these examples is that the user of the abstractionsometimes also called the clientdoes not need to know the details as long as the user is aware of the way the interface works this interface is the way we as users communicate with the underlying complexities of the implementation as another example of abstractionconsider the python math module once we import the modulewe can perform computations such as import math math sqrt( this is an example of procedural abstraction we do not necessarily know how the square root is being calculatedbut we know what the function is called and how to use it if we perform the import correctlywe can assume that the function will provide us with the correct results we know that someone implemented solution to the square root problem but we only need to know how to use it this is sometimes referred to as "black boxview of process we simply describe the interfacethe name of the functionwhat is needed (the parameters)and what will be returned the details are hidden inside (see figure what is programmingprogramming is the process of taking an algorithm and encoding it into notationa programming languageso that it can be executed by computer although many programming languages and many different types of computers existthe important first step is the need to have the solution without an algorithm there can be no program computer science is not the study of programming programminghoweveris an important part of what computer scientist does programming is often the way that we create representation for our solutions thereforethis language representation and the process of creating it becomes fundamental part of the discipline algorithms describe the solution to problem in terms of the data needed to represent the problem instance and the set of steps necessary to produce the intended result programming languages must provide notational way to represent both the process and the data to this endlanguages provide control constructs and data types what is computer science