본문 바로가기

CS

[CS] Fundamental concepts of Computer Science

1. What is Computer Science?

Computer Science is the study of problems, problem-solving, and the solutions that come out of the problem-solving process. Given a problem, a computer scientist's goal is to develop an algorithm.

 

However, we must be careful to include the fact that some problems may not have solutions. So we can say that computer science is the study of problems that are and that are not computable,

 

Computer science is also the study of abstraction. Abstraction allows us to view problem and solution in usch a way as to separate so-called logical and physical persepective.

 

  • logical perspective(Interface) : See problem on user's perspective.
  • physical perspective(Implementation) : See problem on engineer's perspective.

 

2. What is Programming?

Programming is the process of taking an algorithm and encoding it into a notation, a programming language, so that it cna be executed by a computer. So, programming is the way that we create a representation for our solutions.

 

3. Why study Data Structure and Abstract Data Types?

To manage the complexity of problems and the problem-solving process, computer scientist use abstractions to allow them to focus on the big picture without getting lost in the details.

 

An abstact data type, ADT, is a logical description of how we view the data and the operations that allowed without regard to how they will be implemented.

 

 

 

The user interacts with the interface, using the operations that have been specified by the abstract data type. The abstract data type is the shell that the user interacts with. The implementation is hidden one level deeper. The user is not concerned with the details of the implementation.

 

The implementation of an abstract data type, often referred to as a data structure, will require that we provide a physical view of the data using some collection of programming constructs and primitive data types.

 

This provides an implentation-in dependent view of the data. This implementation independence allows the programmer to swith the detals of the implementation without changing the way the user of the data iteracts with it.

 

4. Why study Algorithm?

Computer scientists learn by experience. We learn by seeing others solve problems and by solving problems by ourselves. Being exposed to different problem-solving techniques and seeing how different algorithms are designed helps us to take on the next challenging problem that we are given. By considering a number of different algorithms, we can begin to develop pattern recognition so that the next time a similar problem arises, we are better able to solve it.

 

As we study algorithms, we can learn analysis techinques that allow us to compare and contrast solutions based soley on their own characteristics, not the characteristics of the program or computer used to implement them.

 

 

Source from : Problem Solving with Algorithms and Data Structures using Python — Problem Solving with Algorithms and Data Structures 3rd edition

'CS' 카테고리의 다른 글

[CS] Complexity of Algorithms  (0) 2022.09.22