# EDA

computer_basics:computer_science_fundamentals

This is an old revision of the document!

# Computer Science Fundamentals

Mithat Konar

## What is computer science?

• Webster: The study of computers and their uses.1)
• Oxford: The study of the principles and use of computers.2)
• University at Buffalo: The systematic study of algorithmic methods for representing and transforming information.3)

## What is computer science?

• computer science: The science of what can be computed.
• _computational_ science
• What is computation?

## Major branches of computer science

• algorithms
• theory of computation
• computer architecture
• software systems
• artificial intelligence

^[“UB - University at Buffalo, The State University of New York.” What Is Computer Science? Accessed July 25, 2016. http://www.cse.buffalo.edu/undergrad/what_is_CS.php.]

## Computer science topics

• computer graphics
• databases
• networks and protocols
• numerical methods
• operating systems
• parallel computing
• simulation and modeling
• software engineering.

^[“UB - University at Buffalo, The State University of New York.” What Is Computer Science? Accessed July 25, 2016. http://www.cse.buffalo.edu/undergrad/what_is_CS.php.]

## Application fields

![Computational fields](img/computational-fields-600px.png)

!['Tis but a tool](img/gear-tools-300px.png)

## Algorithms

• The word *algorithm* is derived from the name of 9th-century mathematician and astronomer Al-Khwarizmi.
• Worked under the caliphate of al-Ma'mun in Baghdad.
• Also introduced “al-jabr”, which in English is called “algebra”.
• First appears in European texts in 17th century.
• Modern usage in 19th century.

## Algorithms

• *A set of steps that are followed in order to solve a mathematical problem or to complete a computer process.*

(Webster ^[Merriam-Webster. Accessed July 25, 2016. http://www.merriam-webster.com/dictionary/algorithm.])

• *A process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.*

(Oxford ^[“Definition of algorithm in English:” Computer Science: Definition of Computer Science in Oxford Dictionary (American English) (US). Accessed July 25, 2016. http://www.oxforddictionaries.com/us/definition/american_english/algorithm.])

## Algorithm example

• “Long” cardinal number multiplication: A * B

 let C equal 0 repeat the following B times: add A to C the desired result is C 

## What is a computer?

![Computer diagram](img/computer-diagram.png)

## Hardware

• The physical stuff.

## Software

• computer software: a set of program instructions and its related data and documentation that can be executed by computer.

## Kinds of software

![The software stack](img/kinds-of-software.png)

1)
Merriam-Webster. Accessed July 25, 2016. http://www.merriam-webster.com/dictionary/computer science.
2)
“Definition of Computer Science in English:” Computer Science: Definition of Computer Science in Oxford Dictionary (American English) (US). Accessed July 25, 2016. http://www.oxforddictionaries.com/us/definition/american_english/computer-science?q=computer science.
3)
“UB - University at Buffalo, The State University of New York.” What Is Computer Science? Accessed July 25, 2016. http://www.cse.buffalo.edu/undergrad/what_is_CS.php.