Обзорные лекции по прикладной информатике


Однажды студенты спросили меня, нет ли у меня какого-нибудь самого основного, самого элементарного вводного курса, который бы разъяснял «на пальцах» для «чайников» какие-то базовые вопросы информационных технологий. Я был удивлен этому вопросу, поскольку всегда считал, что базовые сведения по информатике современные студенты получают еще в школе. Однако из дальнейшего разговора со студентами оказалось, что это не совсем так.

В школе действительно преподают предмет, который называется «информатика», однако в нем не дают общих базовых представлений о компьютерной технике, а в большинстве случаев пытаются сразу давать какие-то прикладные технологии вроде С++, pascal, HTML или MS Office. А вот самые базовые вещи, которые лежат в основе понимания любой IT-технологии почему-то упускают, или поясняют крайне невнятно. Это похоже на попытку построить каменный замок на песке. Я подумал, что наверное неплохо было бы создать такой курс, в который можно было бы собрать различные околокомпьютерные вопросы, важные для начального понимания информационных технологий, но при этом без непосредственного обращения к самому программированию. Студенты на занятиях довольно часто задают вопросы из этой серии, иногда приходится давать очень сжатые и краткие ответы, поскольку время на занятиях отведено под изучение конкретной технологии и если я буду на занятиях по технологии программирования рассматривать какие-то азы, то остальные более подготовленные студенты меня просто не поймут и сочтут, что я трачу время занятия впустую.

Поэтому я написал этот курс, который не является курсом информатики в полном смысле, но содержит в себе какие-то базовые элементы информатики, которые должен знать каждый программист. Это что-то вроде введения в специальность. В этом курсе я отвечаю на такие, к примеру, вопросы, как «Почему программисты 90-х годов программировали лучще, чем современные», «Как самому купить запчасти чтобы тебя не обманули продавцы и собрать себе производительную и надежную машину», «Что такое мышление квадратиками и зачем оно нужно программисту», «Почему в объявлениях о найме программистов пишут «отсутствие дресс-кода»», «как оборудовать себе удобное рабочее место» и многие другие вопросы. Прослушав лекции из этого курса каждый начинающий сможет определенно решить для себя, нужно ли ему развиваться дальше в этой области или эта специальность не для него. Можно считать этот курс введением в специальность программиста. Надеюсь он будет вам полезен.

Тематика лекций

Тема 1: История компьютерной техники

Общие тенденции развития. С чего все начиналось. Профориентация. Специализации программистов. Общее описание языков программирования. Сферы применения различных ЯП. Обзор современного рынка труда.

Тема 2: Архитектура ПК

Машина Поста. Архитектура Фон-Неймана. Кибернетика и концепция «Черного ящика». Понятие об иерархическом построении компьютернях систем. Драйвера, операционные системы. Общие принципы построения операционных систем.

Тема 3: Как собрать себе компьютер. Покупка и абгрейд

Обзор компонентов. Важнейшие характеристики. На что обращать внимание. Рабочее место программиста. Стиль рабочей одежды представителей субкультуры.

Тема 4: Основы информатики

Компьютерные исчисления. Разрядность системной шины. 32-х битные и 64-х битные машины. Таблицы истинности. Основные логические элементы

Тема 5: Пользовательские навыки

Основы работы с командной строкой. Стандартный виндусовский интерфейс. Понятие стека разработки. Базовый набор программ для рабочего места программиста. Поисковики и правильные запросы. Поиск информации в интернете. Основной цикл разработки программ. Тестирование кода и виртуальные машины.

Тема 6: Понятие об алгоритмах и протоколах

Блок-схемы алгоритмов. Понятие о конечных автоматах. Различие между алгоритмом и протоколом. Модель OSI. Критерии безопасности протоколов и алгоритмов. Три составляющих программистского мышления.

Тема 7: Основы компьютерной безопасности

Различие между аутентификацией и идентификацией. Базовые схемы аутентификации и построение защищенных компьютерных программ. Безопасность платежных систем.