Why should I know programming?

Programming simply means giving commands to a computer. Originally, programming stems from one of Hilbert's 1928 problems, 'Is there a general mechanical procedure that can solve all mathematics problems in order?' It is said that the Turing Machine problem-solving order and procedure presented by the mathematician Alan Turing who solved this
problem was the beginning of 'programming'.

That is, programming originated from math problems, and algorithms, which are various knowledge and problem solving procedures or methods, are used to solve programming. Programming requires analyzing and understanding problems, making logical procedures, reviewing and debugging them for computer language.

So, why should you study the content and method of programming? Some people are curious about the language of computers and want to create something themselves, but others may think that I have nothing to do with the developers who make programming. Learning programming is not only for becoming a software developer, but also for improving computing thinking, which is one of the main reasons for learning programming. Understanding and applying programming nurtures various thinking and problem solving skills in mathematical and logical application, and helps to apply new methods to a given problem situation in real life. In addition, you will be able to deeply understand programming that is gradually applied to various social fields.


What kind of learning activities do you do?

First of all, in the first unit, we will examine the basic understanding of programming, how to make software, how computers work with software, and the types of programming languages. You will be able to learn the basic contents of programming by knowing the reality of programming that has already entered our society. You can also know the necessity of programming and have a direction for learning programming. In addition, it introduces Python, one of the programming languages. Python is an open program that has simple grammar and is distributed free of charge. It is a language that anyone can use. It is a language that many people use in various fields by providing various libraries.

You will be able to see what characteristics of the language we will learn together.

From the next section, we will introduce Python's development environment construction and basic usage of programming languages. For visually impaired students, it was premised that the use of a screen reader was followed by the installation process centering on the tab key and shortcut keys, and the basic functions were configured to understand.

And I want to learn how to use the code editor to use Python. Since Python is also a kind of document, you need a text editor that can enter, edit, and save code like 'MS Word'. As a document editing program, a method of using IDLE, a method of using a notepad, and a method of using Visual Studio, an intelligence development tool, were presented to guide the selection of a coding method suitable for the student's characteristics.

In addition, you will be able to learn the basic method for writing Python code through problems encountered while using each method and solutions accordingly.



Learn Computer Programming

Computers play a very important role in our daily lives, and we live with them every day. If you think about it easily, you can only think of laptops and desktop computers, but tablets and smartphones are all types of computers.

In addition, computer systems are also included in refrigerators, rice cookers, game consoles, traffic lights and cars that can be seen on the street.

Computers are electronic devices that process information. Although the appearance varies depending on the type, computers are largely made up of two parts: “hardware” that can be touched and “software” that cannot be touched.

Most computers cannot think of themselves or run programs, so they absolutely need software that gives them instructions. All of the automated machines around us like this have something in common. That is, it performs tasks according to the instructions of the software built into the machine. Software that is executed according to this command is called a program.

These days, Facebook, which we use a lot on a daily basis, is all one program. In addition, these programs are used in various ways in life such as games, music playback, internet shopping, and smart TV.

In the future, software will play an even more important role in all societies in general. The era when software needs to be well understood and used in various fields is approaching.

What is programming?

Programming refers to the work of creating a program. A program is a collection of instructions that are given to a computer. These programs come together to become software. In other words, programming is the process of creating software, and the tool used to create such software is called a 'programming language'. Just as we have English, so for computers, we use the “programming language”, the language of computers.

Most programming languages consist of a collection of alphabets, numbers, symbols or punctuation marks. When a command is entered, the computer's hardware converts it into an understandable sequence of 0s and 1s, but it is made into a programming language that is easy for humans to understand. Such letters or numbers are called codes. So, in
the sense of writing code, programming is called “coding”.

What can you do with programming?

1. Programming to improve problem solving

It is said that Microsoft's Bill Gates, who is essential in the history of the modern IT field, Mark Zuckerberg, who

created Facebook, and Larry Page, who founded Google, all started programming from an early age. The thing to think about is that the managers of this big company have never taken business classes. The CEO of a company is a position that requires a variety of business skills.

I put a lot of effort into developing these skills. But how did they
succeed in creating a large company without even taking business classes? Their commonality lies in programming.

People think that programming influenced the abilities of these CEOs. There are a number of reasons, but it's because programming improves your logical reasoning skills. Several studies have shown that computer programming helps us improve our logical reasoning ability.

In addition, when we try to solve a problem with a programming language, we simplify the problem through abstraction and make it in a form that is easy to solve, and we design the algorithm according to the procedure and method. When the designed algorithm is expressed in a programming language, the computer can interpret the language and solve it
automatically. Programming like this improves logical thinking, planning and analysis skills, and problem solving skills.

2. Turn your ideas into reality

Even if you have a good idea, it's useless if you can't find a tool or a way to make it a reality. If you can program, you can implement simulations of your ideas, review them, and share opinions with others. Code is a great
stuff to turn our ideas into reality. For example, in the past, you had to wait at the bus stop because you didn't know the bus arrival time, but nowadays, you can check the bus arrival time anywhere and move to the bus stop according to the arrival time by receiving the location of the bus. In old days, people felt uncomfortable in their daily lives. Thus, by creating software that collects and delivers bus information and traffic information, many people can now live a convenient life.

In other words, programming is a creative activity that allows you to express your thoughts. Programmers sometimes develop software that people can use conveniently, solve various problems, and create and provide game software, computer graphics, and websites.

3. Programming that anyone can do

In the early days when computers first appeared, only scientists and technicians could use them. However, as programming languages were created to make computers easier to manipulate, in recent years, even elementary school students and non-majors can easily learn programming languages. In countries around the world that have become aware of the infinite possibilities of programming, both men and women, young and old, participate in various educational courses to learn programming.

Programming is not just done by developers, anyone can do it if they are interested.


How to make software?

Suppose we are building a house. Plan to build a house, make a blueprint, and build a house using materials. And after all the houses are built, they check to see if they are built properly. If a problem is found, it will be
repaired again.

The same goes for software. In front of a problem situation, think of a way to solve the problem and write code that expresses it. Prepare what materials to use, in what order, and in what way. And express this in a programming language. When programming is finished, we test and debug to find out if anything is wrong.

Since machines cannot think flexibly like humans, they must give commands accurately and logically. We need to think like a computer in the language of the computer in order for us to give the computer appropriate commands. The ability to think in this way is called 'computational thinking ability'. Computational thinking ability refers to the ability to think efficiently to solve problems based on the basic concepts and principles of computing. In other words, understanding the way computers solve problems and applying them to real-world problem solving is computational thinking.



How can a computer be run with software?

Today's computers differ in appearance, size, and performance, but the basic structure is almost the same. It follows the structure of a computer described in "EDVAC," a paper published by genius scientist John von Neumann in 1945. In this paper, von Neumann first defined the structure of a modern computer consisting of an input/output device that receives and exports data from the outside, a memory device that stores data and commands, and a central processing unit in charge of processing data.

Such a computer that embeds instructions in the memory device is called a program-embedded computer. Computers with built-in programs were introduced in von Neumann's thesis, so they became known under the name of "Von Neumann Structure."

Let's compare the von Neumann architecture with the computer we are using. Keyboard and mouse correspond to input devices, monitor and printer correspond to output devices. The Intel i7 quad-core chip is the central processing unit, and the DDR3 DRAM is the storage unit. Tablets and smartphones also follow this structure.

1. Central processing unit

The central processing unit, or CPU, is the most important device in a computer. All computations performed by computers are done by the CPU. There are two main types of CPU. It is an arithmetic and logic device that performs arithmetic operations such as addition, subtraction, multiplication, and division, and logical operations dealing with true and false, and a control device that fetches or decodes a given command, transfers data, or directs the execution contents.

The control device and arithmetic logic device repeat the following process.

1. First, the control unit fetches commands from memory.
2. The control device decodes the imported command.
3. The control device transfers the data to the arithmetic logic device according to the decoded command and instructs what operation to perform.
4. The arithmetic logic device performs calculations as directed by the control device.
5. Then, the result is saved back to the memory device.

2. Memory

The storage device serves to store commands along with data. The larger the memory capacity, the more data and instructions can be stored, and the faster the memory operates, the faster the CPU can exchange data and instructions. The computer's memory is organized into three layers. There is the cache memory closest to the CPU, and below the cache memory is the main memory, which is usually made up of RAM. And there is an auxiliary memory device that is farthest from the CPU. Hard disks were the most popular auxiliary memory devices, but as memory technology advances, flash memory and SSDs are often used as auxiliary storage devices.

3. I/O device

The input/output device is the way the computer communicates with the outside world. Starting with a keyboard or mouse, a touch screen, a microphone, a game pad, and a motion recognition device are all used as input devices. Also, monitors, printers, speakers, and beam projectors are all output devices. These input/output devices exchange information with the central processing unit and storage device through the “I/O BUS”.

What are some programming languages?

In the world we live in, there are various languages such as English, German, and French. We use these different languages to communicate and live with people from other countries. That is, language serves as a medium connecting various cultures. So, how do you talk to your computer or give orders? That is, we need languages that humans and
computers can communicate and understand. That is the programming language. Working in a programming language is like learning a foreign language. There are many kinds of these programming languages. Programming languages are divided in various ways depending on the stage of development or execution method, and there are machine language with binary numbers of 0 and 1, assembly language that uses characters instead of binary numbers, Python, C, and Java.

Assembly language is the conversion of complex machine language instructions into symbols or words that humans can understand. For example, a machine instruction such as '01001100 00001000 10000001 10010000' is expressed as 'MOV' in assembly language. Of course, computers don't understand 'MOV' right away. This is because the computer only understands 0s and 1s. So this assembly language is translated into a computer understandable through a translation process called compilation. A programmer writes code in assembly language and then runs it with a 'compiler'. This executable file is a program. On the other hand, the interpreter interprets and executes machine language in real time. The interpreter method is faster than the compilation method because it can be executed immediately if an error is found and corrected. 'Python', which we will now study, is also an interpreter-style programming language.



Discover Python

Python is a programming language released by Guido van Rossum in 1991. The name python was derived from the British comedy group ‘Monty Python`s Flying Circus’, which was aired on BBC TV at the time, and the logo was made with the motif of ‘python,’ meaning the English word python.


1. Advantages of Python

1) Simple grammar and easy to learn.

First of all, the grammar is simple. Well-known programming languages such as C language often feel difficult because the syntax is complex. However, because Python has a simple grammar, it can be easily used by ordinary people as well as experts. While it is easy to use, it has strengths in numerical processing, such as being able to handle infinite
integers as long as memory allows, and it is more productive than other languages, and its ability to combine with codes written in other languages is excellent, so it is widely used in various specialized fields.

2) It is open source and provides various libraries.

Since Python is open source, anyone can download and use it for free. In addition, programs made in other languages can be included in Python programs, providing various and powerful libraries. Python is very productive on its own, but with the help of other libraries, coding time can be significantly reduced.

3) Since many people use it, it can be used in a wide variety of fields.
It can be used in various fields such as web server, IOT, machine learning and deep learning, and applications.

4) It can be used in the same way in most operating systems (Windows, Mac, Linux). For other programming languages, the operating system is often limited. And even if it can be used in several operating systems, the usage method may be slightly different. However, Python can be used in the same way on all operating systems.


2. Disadvantages of Python

1) The speed is slow.

Python is about 10 to 350 times slower than the C language that has been widely used. Most programming languages are inversely proportional to the features of 'easy to use' and 'fast'. Python is slow instead of easy to use, and C language is fast instead of difficult. Therefore, it is difficult to create an operating system such as DOS or Linux, a program that requires a large number of repetitions and operations, or a data compression algorithm development program with Python. In other words, it is not suitable for programs that require direct control of high speed or hardware. However, recently, computer performance has improved, so you cannot feel the difference in speed unless a program that requires a lot of computations such as games.

2) Mobile programming is difficult.

Python is Google's favorite language, but it is still difficult to develop Android apps with Python. Android supports Python programs to run, but it is still not enough to make apps with this alone. IPhone app development is also not appropriate for Python.


3. Code editor

Because Python code is also a kind of document, you need a text editor that can enter, edit, and save code like 'MS Word'. Document editing programs that can edit code include IDLE, a program installed by default when Python is installed, 'Notepad', 'VI Editor(Linux)', 'Sublime Text Atom', and 'PyCharm (Python-dedicated development tool). There are other various types such as, 'Visual Studio Code', etc. These can be selected according to the user's convenience.