CompSci - Computing I


T1: 1.1 Starting CompSci

Computer Science is the study of the principals and utilization of computing systems. The subject heavily relies on mathematics and logic. There are specialized areas in mathematics dedicated to computer science such as Algorithm Analysis and Lambda Calculus. Humans use machines and computing systems to solve real problems. Firstly, we must define what a Computer system is. A computer system is comprised of Hardware( Physical components and processing units) and Software( Stored programs and instructions). From the definition of Sfotware, we know that computers must be instrcuted. This brings us to the most fundamental concept of Computer Science, the algorithm. Algorithms are, informally, a set of instructions that define how a task is executed. We encounter algorithms in our everyday lives. Walking from your house to school is an execution of an algorhtm since there are a set of steps(directions) and streets you must cross to get to your destination. Cooking may also be thought of as an algorithmic process. Before a computer can carry out a task, an algorithm must be written and represented for it. Going back to our analogy, you cannot walk to school if you do not know the directions. That representation of an algorithm is formally called a program. The process of writing or developing a program is called programming. The set of algorithms responsible for running a certain task is called software.

As you may know from basic economics, there exists only a limited amount of resources and tangible space for human utilization. It is no different for hardware and computer systems. There exists only a limited amount of storage space and capabilities for computers. Therefore, we must analyze algorithms and understand their complexities. This field is very important for computer science and will later be discussed.

A question you may be asking yourself is: What exactly is the study of Computer Science? Well, because they play such an important part in the field, computer science is really the science of algorithms and their utilization. In the early 20th century, a great Austrian-American Mathematician, named Kurt Gödel, formulated the two incompletness theorems. The meaning of these theorems will be also be discussed later. But, his work made people realize that there is a complex extension to mathematics which is based on algorithms. From this, emerged the field of computer science.

Because algorithms need to be discovered and represented, programming is a section of computer science. It is also the art of problem solving. Understanding programming languages is not only knowing the syntax, but understanding abstractions and underlying structures. For this reason, I have chosen to use the C programming language as a method of introducing you to this subject.

So, now that we have established the basic terms and definition of the subject, we shall dive into the technical side.

T1: 1.2 Data & Storage

Bits & ASCII

Information or data on a computer is represented using a binary system. The binary system all computer systems use is comprised of binary digits( or bits) 1 and 0. The information is encoded as a string of 1s and 0s on a storage system. These strings may represent text, images, sound, videos, and many other forms of information. The standard character encoding scheme is called ASCII or the American Standard Code for Information Interchange. It is the standard communication scheme for all computer methods which represent text and punctuation.

Booleans

Because we are limited to bits in classical computing, we must invent a convienient method of thinking about them. This is where booleans come in. The bit 0 represents false and the bit 1 represets true. Operations which deal with manipulating true and false statements are called boolean operations. There are many types of boolean operations we will learn about.

The first boolean operation we will learn about is the NOT operator. The NOT operator inverts the value given and it only takes one operand therefore it is a unary operator. It is better represented using this table:

The next operator is the AND operator. It has two operands and checks if both the operands are true, if one is false then the operator outputs false. It is a binary operator.