IT for beginners: Understand the digital world
What you'll learn
- General overview of most important IT topics (computers, hardware, software, artificial intelligence)
- How computers store and process numbers, text, images, videos, and sound
- Number system concept, how computers use 0s and 1s
- Number systems conversions (decimal, binary, octal, hexadecimal)
- What are different computer parts and their role
- Boolean algebra
- Logic gates
- Basics of algorithms and data structures
- What are programming languages, how programmers think, how to build apps, and what tools are used to do this
- What is artificial intelligence, how it is created these days, and how it looks like
- How computer can master the game of chess in just a few hours without being explicitly programmed
- How computers learn to recognize objects instantly
- Even how to create self-driving cars
- You should be open-minded and have the enthusiasm to learn
- Basic knowledge of mathematics from high school will be helpful, but not necessary
Information, number systems, data storing and manipulation, machine instructions, algorithms, programming, artificial intelligence!
From this course, you will learn how a computer works. What applications it has, in what way it realizes them, and how is it built. I will present the computer as an abstract machine and as a physical machine. You will learn how computers store and convert data. You will learn different number systems and conversions between them (binary, decimal, octal, hexadecimal). You will understand why computers use zeros and ones to represent everything. I will explain what is the phenomenon of the growing power of computers, how it affects minimization and miniaturization. You will learn the backstage of software development, you will see what a programmer's work looks like. What are the features of a good programmer. Finally, I will discuss artificial intelligence, which is a very mysterious field for many people. I will also discuss the physical and logical limitations of computers, you will learn what computers are good at and what is hard for them, and why.
This course is divided into 5 sections.
1. Introduction to the introduction
As the name suggests, it is the part that introduces you to the entire course (which in itself is an introduction to computer science :) ). You can treat this section as "mini-version" of the rest of the course. So it is the part that shows you what kind of topics you may expect in further parts of the course. I cover the various topics very briefly to give you an overall picture of the topic. For example, I mention here very briefly the topic of programming, giving a very general view of it. However, the course has a whole part named "Software", in which I show you exactly what is it about. I explain how programs are created today, what tools are used etc. Probably the completion of this part of the course, therefore, will not take you much time.
2. Computer architecture
2.1. Data representation
In this section, I discuss how to represent information and store it inside your computer. Computer as a calculating machine can not store data the same way people store it in the brain. Firstly, it is a machine. Secondly, it is a calculating machine. What does it mean and what are the implications of this, I will discuss in detail in this section.
So people had to invent appropriate techniques for transforming information from a form understandable to them (sound and image) into a form understandable for the machine. They came up with a few interesting, clever ways.
2.2. Data processing
It is very crucial in computer science to process data. In fact, data processing is the whole point of the existence of this field. If computers could only store information, they wouldn’t be as useful as they are. Now that we can force the machine to store information, let’s try to force it to manipulate it.
3. Computer organization
Anatomy of counting machines. In this section, we will look inside computers and see how they are constructed and how they operate at the lowest level. You will learn about how digital technology works, which is ubiquitous in the modern world.
From section 1 we already know what the computer is used for. From section 2, we know what operations should be performed to be able to implement these ideas. So we have specific goals and developed theory. Now we only need to build a physical, tangible machine that will carry out the appropriate operations in practice.
4.1. Operating systems - hardware-software communication
Modern computers perform many activities that often compete with each other for access to computer resources. We can request actions such as printing one document, modifying another, creating a graphic that will be used in the document, enabling background music or installing the application.
The execution of these requests requires good coordination to ensure that unrelated processes do not interfere with each other and that communication between related tasks is effective and reliable. This coordination is performed by a software package called the operating system.
4.2. Teach something to the computer - the art of analytical thinking
In order for a computer to perform any task for a human being, it must be carefully instructed on how to do it. The computer won’t come up with anything on its own. That was not the reason he was invented. The computer is to be our "slave" who performs time-consuming, schematic and repetitive activities for us, performing a lot of calculations.
Before our "slave" starts working for us, however, we need to tell him not only what to do, but how to do it. Therefore, the computer does us out in tedious work, but it does not do us out in thinking. It is us, the people, who have to strain the gray cells and use our creativity to find a recipe for solving the problem. This "recipe" is called an algorithm. Once we have an algorithm, we can use a programming language and appropriate tools to convey our idea to the computer. For more information on these tools and languages, see the next section.
4.3. Not only code writing - how the program is created
Most people have a strong view of the programmer’s work. The programmer is the man that sits at the computer for long hours, writing some mysterious code. Code that looks as if it were written in the language of beings from a foreign planet or encrypted. Programming is considered as a very difficult, even mystical field. The entire software development process is associated only with writing code. Is that the way it is? Well, no.
In this section, I will introduce the backstage of creating computer programs. I will show you how software development has evolved. I will present the tools and techniques used by programmers sometime and today. We will also write some simple code.
5. Limits of computations
Is the end of fast computer development approach? What computers do easily? What computers do hardly, why, is it possible to improve this and to what extent? What can not counting machines at all? Is it possible to force the machine to think or at least to simulate that it thinks? What is this mysterious artificial intelligence and how does it look real these days? How can a computer learn to play chess better than anyone in just a few hours? And finally, how can AI contribute to the development of medicine? You will find the answers to these questions in this section.
Who this course is for:
- Computer science students
- People that want to start career in IT
- People that want to understand how programming and artificial intelligence look like
- Anyone who wants to learn the basics of IT
- Anyone who is interested in how computers work
I am a student of IT from Poland. I am a very big fan of programming and artificial intelligence. I also like good books (Robert Ludlum and Clive Cussler are my favorite writers) and films. One of my interests is also public speaking.
I know that IT is a topic that often is taught very badly in schools and at universities. There was a time when I hated IT because I didn't know what IT actually is. I thought that this is all about using Paint, Gimp, and Office Suite. But then I discovered programming.
It was just a coincidence. I wanted to modify the characters in the game by changing some game files. And I was very fascinated that the game character has a different weapon after changing one line in the file. Or that the tradesman has different prices after changing these prices in the file. I wanted to change more! I wanted to create my own characters and stories. I wanted to modify not only this game but also other programs as well. I found out that to do this I should learn programming languages. You can force the computer to do whatever you want if you have the appropriate knowledge. So I started learning algorithms and C++ programming language and I liked it. Actually, I forgot about this game that I was very fascinated about. But I learned a lot of useful things that I can use now thanks to this game (by the way, this very atmospheric game is S.T.A.L.K.E.R).
In my opinion, the most interesting topic in IT is artificial intelligence. It's even more interesting than conventional programming. It uses some very smart techniques from mathematics and biology to force the computer to learn on its own. There are some very promising techniques with which we can mimic the human brain (at this point only to some extent of course). And thanks to this we can do amazing things that we thought are impossible for computers. Speech recognition, image recognition, recommendations systems, virtual reality, or even self-driving cars.
I really like topics that are about creating the future. I couldn't work on, for example, repairing computers. This is obviously needed but it's boring. It doesn't spectacularly impact the world. It doesn't save people's lives and time. But autonomous cars so. And one of my dreams is to work on projects like self-driving cars or to use AI to fight against cancer. Or to beat records in Beat Saber.