# Computer Science

Computer science is relatively new area of engineering and science. Alan Turing is considered as the father of compute science. Modern computers are based on the concept of Turing Machine which is an abstraction of computing machine. Computation is basically an algorithm and to be precise it is a systematic way of calculating both arithmetic and non-arithmetic steps. Algorithm is a flow chart that includes some steps and rules to be performed. Similarly computation is the system that follows some steps to do calculation. But calculation and computation are basically different. There is an obvious distinction.

The computer's evolution is quite historical. Charles Babbage developed difference engine to do calculations, which was first mechanical computer. Great mathematician Leibniz also worked on developing calculating machines. Afterward many changes and alteration was done to develop an efficient computer. At last the first programmable digital computer named ENIAC was made. The early computers were very big in size because of vacuum tubes and large circuits that were used inside. Instructions were encoded in the machine through punch cards , which made early computer very inconvenient to use. Now in modern computers the programs are easily stored in memory and more faster they are. After the invention of transistors vacuum tubes got replaced and computer became very efficient and accessible. Modern computers are general purpose machines which are also Turing complete. General purpose here has the meaning of having the ability to do almost all type of computing task providing it gets sufficient time.

The mathematical underpinning of computer architecture is Boolean logic. Computer can understand only binary numbers because all the hardware components are consisted of logic gates which works on the principle of Boolean logic. Boolean logic or algebra is a set of variables whose values can be either 0 or 1 and this set has to obey certain rules. It is basically an algebra on sets. Goerge Boole came up with this new type of algebra and named it laws of thoughts. Now modern computer is built using Boole's idea. In modern parlance 0 means false and 1 means true. But Boolean algebra cab be extended to more general case where the set of values for the variables can be more than two. Binary numbers are one and zero. 1 and 0 are the languages of computers. Everything is translated and interpreted as sequence of 1's and 0's by computer program. The CPU is the central part of computer which does arithmetical and logical calculation with the numbers fed to it. Every CPU has a clock rate which determines how fast the computer is. The greater the clock speed the faster a computer is. The clock speed is referred to as Ghz. A CPU speed of 2.1 Ghz means it can loop through 2.1 Giga(1000000) steps per second. Thus CPU can share its resources with multiple programs during each cycle giving the false impression that its doing all the tasks simultaneously. But parallel computing is now possible because of the development of multiple core CPU. Each core has a separate microprocessor. Referring to transistors , we can justify why 1 and 0 and transistors are equivalent. Transistors can be easily switched on and off which makes it convenient to express 1 and 0 as on and off states of logic gates respectively. Every elementary logic gates perform some Boolean function. That is to say it takes two or more binary inputs and returns a single output. Some elementary logic gates are OR, NOR, X-OR, NOT, AND gates. Each gate has a specific truth table which determines its input output characteristics. Generally for n inputs there are 2 (power n) number of possible combinations and output is the truth value of 1 or 0. The values are calculated constructing truth functions from the truth table.

**Fig: Truth table of X-NOR.**

In the above figure we see that two inputs are designated as A and B. There is 2(power 2) = 4 possible combination of inputs as given in four rows. The output is either one or zero depending on the combination of the inputs. Actually X-NOR is a combination of a XOR and a NOT gate (which inverts the logic) . We can calculate the truth function of the above system using Boolean logic. In this case it is A(.) B + A( _) (.)B (_) . Here the (_) means inverting the value. Similar way we can find out truth function of complicated truth table. There is truth table for every logic gate , which has similar truth function.

One of toughest problems of applied mathematics is the N= PN problem. The mathematical society has secured A prize money of 1 million dollar for the person who will solve this problem.## Digital logic design

Digital logic designing is a branch of computer science dealing with designing of the various logics circuits using the concept of boolian logic.The first law to be mentioned is De Morgan's law:Maxterm and minterm analysis are important tool in simplifying digital logic circuit.

Another method to simplifying the digital circuits is to use K-maps. The K-map of three variables would look like

From red group we get product term A`C and from green group we get product term AB. Summing this two terms we get final expression for the table A`C + AB