Кое-что о программировании

Основные понятия информатики

Наша главная задача - научиться программировать. Сначала нам нужно разобрать основные термины той области знаний, с которой мы будем работать. Программирование относится к науке информатике.

В данном уроке мы рассмотрим основные понятия информатики.

Информатика, компьютерные науки и информационные технологии

В работе мы будем использовать очень простые определния, может быть, даже немного неточные/неполные, но зато, понятные. Информатика - всё, что касается информации. Или, другими словами: знания касающиеся компьютеров. Синонимы слова информатика - информационные технологии (ИТ) и компьютерные науки.

В англоязычной литературе для обозначения информатики используется словосочетание Computer science (компьютерная наука).

Уже в различных определениях информатики присутствуют фундаментальные понятия: информация и комьютеры. Начнём со слова компьютер.

Компьютер и ЭВМ (электронно-вычислительная машина)

Буквальный перевод слова computer с английского - вычислитель. В русском языке для обозначения компьютеров есть устоявшееся понятие: ЭВМ - электронное вычислительное устройство.

Компьютером называется устройство, которое работает с информацией. Это ключевой момент, который вам сейчас необходимо запомнить. Когда мы говорим "компьютер", то подразумеваем, что происходит какая-либо работа (обработка, инструкция) над некой, т.е. естьинформацией. Здесь важны оба понятия: работа (обработка, инструкция) и информация, т.е. есть какое-то действие и есть объект этого действия. Примеры обработки информации: сложение (действие) двух чисел (информация), печать (действие) текста (информация).

Как было замечено ранее, в слове компьютер (вычислитетль) фигурирует слово число. Компьютеры могут работать только с числами. Числа состоят из цифр. Это даёт ещё одно имя компьютерам: цифровые устройства.

Все эти понятия: компьютер, ЭВМ, просто вычислительное устройство, цифровое устройство, мы будем использовать и взаимозаменять. Мы знаем, что существуют разные цифровые устройства: телевизоры, цифровые камеры, навигаторы... Даже современный холодильник обладает большей вычислительной мощностью чем персональный компьютер лет тридцать назад. Но в данном курсе нас будут интересовать более универсальные устройства: персональные компьютеры, смартфоны, ноутбуки, планшеты - всё это мы будем подразумевать под словом компьютер.

Ещё один важный момент. Как можно понять из названия, компьютер (вычислительное устройство) что-то вычисляет. Внутри комьютер может совершать только простейшие действия: складывать, умножать, делить, переносить информацию в разные участки памяти.

Кстати, calculate и compute являтся синонимами в английском языке и оба имеют значение - вычислять. Но calculate используется, когда идёт работа над более простыми вычислениями. Поэтому калькулятор гораздо более простое устройство чем компьютер.

Теперь рассмотрим, что такое информация.

Информация, данные (data)

Дать определение информации достаточно сложно. Это что-то, имеющее смысл. Какие-либо сведения. Кроме этого, слово "данные" (data) мы будем использовать, как синоним слову информация.

Примеры информации: числа, текст, звуки, изображения, видео

Кодирование информации

Компьютер умеет работать только с числами. Поэтому всю остальную информацию нужно кодировать: представлять в числовом (цифровом) виде.

Хоть комьютер и умеет работать с числами, но привычные нам числа всё равно нужно кодировать. В повседневной жизни мы используем числа в десятеричной системе счисления. А комьютер понимает числа только в двоичной системе счисления. Числа достаточно просто переводить из одной системы счисления в другую, не считая особенности кодирования отрицательных и вещественных чисел, но об этом мы ещё поговорим.

Текст также кодируется очень просто: каждой букве присваивается какое-то число. Например, слово hello для компьютера выглядит как последовательность следующих чисел: 104 101 108 108 111. Существуют различные кодировки, при этом даже для одного алфавита их может быть несколько (так было с русским). Сейчас наиболее актуальна универсальная кодировка - юникод. Эта кодировка включает символы всех алфавитов (в том числе и мёртвых языков) и многие специальные символы (например, обозначения нот).

Звуковая информация тоже может кодироваться с помощью чисел. Это, наверное, самый сложный тип информации для понимания и его мы будем рассматривать в последнюю очередь.

Картинки при кодировании делятся на отдельные точки - пиксели. Каждый пиксель представляется числом, в котором кодируется информация о его цвете. Позже мы это подробно будем разбирать.

Видео - это просто последовательность картинок. Поэтому его кодирование очень схоже с кодированием изображений, хотя есть и некоторые особенности.

Двоичная система счисления

Итак, как мы знаем, компьютер понимает не обычные числа (в десятеричной системе счисления), а только двоичные.

В десятеричной системе счисления 10 цифр: 0 1 2 3 4 5 6 7 8 9. Поэтому можно сказать, что десятеричная система счисления имеет основание десять. Любое число можно представить в следующем виде:

1847 = 1000 + 800 + 40 + 7 = 1*103 + 8*102 + 4 * 101 + 7*100

В двоичной системе счисления всего лишь две цифры: 0 1. Основанием данной системы является двойка. Любое двоичное число можно представить так:

1011 = 1000 + 000 + 10 + 1 = 1*23 + 0*22> + 1*21 + 1*20

Данное число нельзя прочитать как "тысяча одиннадцать". Это просто число "один ноль один один" в двоичной системе счисления.

Десятеричная и двоичная системы счисления имеют много общего и в них действуют одинаковые правила. Потому что они являются позиционными. По позиционным системам счисления у нас будет отдельный урок.

Двоичный по-английски будет binary. Отсюда на русском можно встретить слово бинарный. Это то же самое, что и двоичный.

Процессор и инструкции

Любое вычислительно устройство состоит из нескольких частей. Сердцем является процессор (центральный процессор - ЦП). У каждого процессора свои инструкции (набор инструкций). Например, у смартфона и компьютера набор инструкций отличается.

Определённый набор инструкций составляет архитектуру процессора.

На данный момент в персональных компьютерах и ноутбуках преобладает архитектура x86_64, а в смартфонах arm (на данный момент ARMv8 - восьмая версия).

Инструкция процессора - это очень простое действие. Сложение, вычитание, перенос информации из одного места в другое... Процессор может выполять только такие примитивные инструкции.

Хочу обратить ваше внимание ещё раз: вычислительные устройства работают с информацией. На самом нижнем уровне: процессор выполняет инструкции (действия) и совершает операции над информацией ( числа, состоящие из нулей и единиц). Всё действительно так просто.

И теперь мы переходим к программированию:

Программирование

Программа - это оследовательность действий приводящая к какому-либо результату. Примеры простых компьютерных программ: копирование файла, удаление файла, создание файла. Более сложные примеры программ: браузеры, текстовые редакторы, игры...

Программа для процессора выглядит как последовательность инструкций. Процессор может выполнять разные программы.

Программирование - процесс создания программ. Для создания программ используются разные языки программирования. Вычислительные устройства не понимают естественные языки (русский, китайский). Поэтому были придуманы языки программирования. В них есть много общего с человеческими языками, но есть и важные отличия: они проще и они однозначны. На любом языке программирования нельзя создать конструкцию, которую можно было бы понять по-разному.

Любую мысль (логичную) естественного языка можно выразить на языке программирования.

Разные языки программирования созданы для решения разных задач.

Ассемблер (assembly language) - язык очень близкий к процессору. По сути, каждая команда ассемблера соответствует инструкции процессора. У каждой архитектуры свой ассемблер. Ассемблер называется языком низкого уровня. Все другие языки программирования являются языками программирования высокого уровня.

C и C++. Два разных языка, но близкие между собой, пока что будем рассматривать их как один язык. Один из самых распространённых языков. Позволяет создавать очень быстрые программы.

Java. На данный момент является основным языком смартфонов с операционной системой Android. Имеет множество других применений

JavaScript - используется в браузерах.

Ну а мы начнём изучения с Python. Данный язык программирования имеет достаточно простые правила и поэтому является неплохим кандидатом для первого знакомства с языками программирования.

Вывод

В дальнейшем мы будем изучать информационные технологии и учиться программировать, основываясь на материале данного урока.

Комментарии:

No comments yet