Первая лекция. Аналоговые – непрерывная функции. Дигитальные – сигнал разбивается на отрезке, меряет силу сигнала. Шина адреса, шина данных, контрольная шина. Электронный – транзисторы, нужно электричество. Механический (компьютер Zuse). Общего назначения. ASCII История Вавилон – 60-ричная система 1900 до н.э Ноль 300 до н.э Индукция – от частного к общему, факты, потом общий вывод. Позволяет эволюционировать. Дедукция – От общего к частному, использования знаний, средство доказательств. Силлогизм – две посылки и одно заключение. Любое оружие опасно для человека. Винчестер (винтовка) – оружие. Винчестер опасен для человека. Паскаль – машина могла складывать и вычитать. 50 штук. Лейбниц – машина могла складывать, вычитать, умножать и делить. Логическая система основанная на двоичных числах. Перфокарта – запоминает информацию. Чарльз Бэббидж – в 1822 первый программируемый компьютер. Ada Lovelace – первый программист. Морзе 1837 – телеграф. 1857 – перфолента. Джордж Буль 1850. Герман Холлерит 1896 создал оборудование для работы с перфокартам, что было полезно при переписи населения. Основал фирму IBM. 1900 – вакуумный диод, 1906 – триод 1921 – слово робот. Чапек. Кантор – теория множеств. Формальная система: синтаксис, семантика, система правил. Семантика – смысловое значение, корректная запись. Синтаксис – как построить запись(if, then,else). Система правил – библиотека. Машина Тюринга – 1935-1937 – модель абстрактного компьютера. Есть проблемы алгоритмически не решаемы. Основы теории алгоритма. Стибиц – 1940 дигитальный компьютер (на реле). Claude Shannon – отцом теории информатики, булева алгебра для построения компьютеров. Кодирование информации, передача информации. Теория поиска информации. Первый электронный дигиталный компьютер Atanasoff 1940. Дигитальный механический програмируеммый компюьтер Zuse 1941-1944. Присоединился к компании Siemens. Howard Aiken – дигитальный компьютер MARK I от IBM. Джон фон Нейман – 1945, принцип компьютера: память (данные и инструкции, однородность), центральное устройство для вычисления (арифметические и логические действия), контрольное устройство (выполнять инструкции из памяти). Грейс Хоппер – 1945, первый баг. ENIAC – 1946 1947 – создание транзисторов, Уильям Шокли и два других инженера создали в Bell Telephone Laboratories. Заменили вакуумные трубки, более стабилен. EDSAC – 1949, программы сохранялись внутри компьютера. 1950 – накопитель информации, жёсткий диск, заменил перфокарты. UNIVAC I – 1951, первый коммерческий компьютер. Heinz Nixdorf основывает Nixdorf Computer Corp. , в 1900 присоединилась к Siemens. 1954 – IBM 650, коммерческий компьютер, нужен один человек. 1955 – основал Shockley Semiconductor, просуществовала 2 года. 1956 – IBM выпустила первый жёсткий диск, 5 MB, RAMAC 305. Первый компьютер на транзисторах. 1957 – язык программирования FORTRAN. 1957 – восемь инженеров уходят из Shockley Semiconductor и основывают Fairchild Semiconductors (Gordon Moore, Robert Noyce). 1958 – Texas Instruments и Clair Kilby создал интегральную схему (монолитный кусок силикона и на него напаяны элементы). 1958 – SAGE – первая сеть компьютеров. 1960 – AT&T – первый коммерческий модем, через аналоговые телефонные линии. Модем преобразует цифровой сигнал в аналоговой. 1960 – язык программирования COBOL. Grace Hopper. LISP для логических программ. John McCarthy. 1962 - виртуальная память – неиспользуемая память выгружается на жёсткий диск. 1962 – Sketchpad – возможность рисовать геометрические фигуры на компьютере. 1963 – на мышь получил патент Douglas Engelbart. ASCII позволил компьютерам обмениваться данными. 1964 – Ian Sharp основывает компанию Sharp Associates. System/360 от IBM. 1964 – BASIC. 1964 – OLTP для резервации билетов. 1965 – Закон Мура: “Сложность интегральных схем будет удваиваться каждый год.” 1965 – DEC построила первый коммерческий миникомпьютер PDP-8. 1967 – floppy disk. 1967 – LOGO компьютерный язык для детей. 1968 – IBM продаёт программы отдельно от компьютеров. 1968 основал Intel (Gordon Moore, Robert Noyce). 1968 – RISC уменьшено конечное число инструкции (например убрано мультимедия), CISC – большое количество инструкций. 1968 – Douglas Engelbart продемонстрировал первый компьютер с мышью, клавиатурой и осциллографом, программы для удалённой работы с коллегами. 1969 – Jerry Sanders и 7 инженеров покинули Fairchild Semiconductors и основали AMD. Ted Hoff из Intel придумал компьютер общего назначения. 4004 microprocessor. Bill Gates и Paul Allen основывают компанию Lakeside Programming Group и ищут баги в PDP-10. RS-232 стандарт соединения электронных устройств между собой. AT&T – создала UNIX. Intel выпустила 1 KB RAM chip. Xerox выпустила лазерный принтер. Матричный – формирует знак из точек. Струйный впрыскивает краску. Лазерный – порошок на бумагу и нагревает. 1970 – первый компьютер общего назначения. Intel создал 4004. 1969 – первый микропроцессор. 1970 – Ted Codd написал статью о базе данных. System R выпустила SQL принцип для работы с базой данных. ISO стандарт. 1971 – ARPANET, компьютеры объединены в сеть, возможность передать информацию, даже если один компьютер выходит из строя. 1971 – Steve Wozniak создал первый свой компьютер Cream Soda. Kenback-1 программируемый компьютер. 1971 - Niklaus Wirth изобретает язык Pascal. 1972 – 8008. Atari выпустила игру Pong. Xerox выпустила первый портативный Dynabook. Steve Wozniak изобрёл “blue box” для бесплатных звонков. Bill Gates и Paul Allen основывают компанию Traf-O-Data, которая занималась регулированием дорожного движения используя 8008. AT&T Dennis Ritchie - язык программирования C (1974). Email для ARPANET. 1973 – Xerox выпустила Alto, графический интерфейс. Traf-O-Data закрывается. Gary Kildall пишет операционную систему CP/M для персональных компьютеров на его языку PL/M на 8008. Steve Wozniak присоединяется к Hewlett-Packard. Винчестер – IBM 3340 70 MB. 1973 – Bob Metcalfe изобретает Ethernet (локальная сеть). 1974 – 8080. 1974 – WYSIWYG (видно на экране, что хотите распечатать). 1974 – Altair 8800 широко-распространнёный компьютер. Motorola выпускает 6800 процессор. 1975 – Paul Allen демонстрирует интепретатор для языка BASIC на Altair. Основывают Microsoft. Project Mercury – портативный компьютер IBM 5100. Bill Gates жалуется на пиратство. McDonald первый работник Microsoft. 1976 – Apple (Steve Wozniak, Steve Jobs). Apple I. 1976 Texas Instruments TMS9900 16-bit. Zilog Z80. Intel 8085. 1976 – AMD и Intel подписывают соглашение о обмене лицензиями и патентами. 1977 – Commodore PET Apple II TRS-80 1978 – 8086 16-bit архитектура до сегодняшнего времени. 1979 – Visicalc (Daniel Bricklin, Robert Frankston) для Apple II. Похож на Excel. 1979 – 8088 как и 8086, но шина 8-битная. Bob Metcalfe основывает 3Com. dBase II – база данных Motorolla 68000 16-bit. 1980 – Project Chess - IBM решила создать компьютер который можно улучшать (аппаратное обеспечение). QDOS - выпущен Seattle Computer Products. Apple III Microsoft Xenix OS (Unix). 8087 math coprocessor. Sony – 3,5 floppy. iAPX-432 32-bit Intel. 1981 – MS-DOS. Osborne I – лаптоп. Apollo Computer. Silicon Graphics - James Clark. 1981 – IBM 5150 PC. IBM: CGA графическая карта– 640x200, 16 colors. Microsoft разрабатывают Interface Manager. 1982 – основана Sun Microsystems. Один сервер и много терминалов. Использовала (TCP/IP). Изобрели NFS. Мультфильм Tron. Основали Compaq. 80286 16-bus. Microsoft выпускает программы для Macintosh. Microsft выпускает FORTRAN. Mitch Kapor основывает Lotus Development Corporation. MPC – первый IBM PC clone компьютер выпущен Columbia Data Products. 1983 – Lisa первый персональный компьютер с графическим интерфейсом. Compaq выпустил PC clone. Стоило US$1 сделать такой же ROM BIOS. Microsoft выпустила Word и Windows. MIDI 1983 – Oracle: SQL Borland International основана Philippe Kahn. Выпустила Turbo Pascal. IBM разрабатывала OS TopView. Совместно с MS начали разрабатывать OS/2. AT&T работает над C++ (Bjorne Stroustrup). Philips и Sony выпускают CD-ROM. 1984 – Apple Macintosh. Для UNIX X Window System. Open source – принадлежит всем, можно изменить и продать, исходники доступны. В 1984 году Ричард Стальманн (Richard Stallmann) запустил проект GNU, чтобы в его рамках создать некоммерческую, бесплатную во всех смыслах этого слова систему. То есть любой продукт, обладающий лицензией GNU, можно свободно копировать, распространять, а также вносить любые изменения. В рамках этого проекта была создана и по сей день развивается ОС Linux. 1985 – Steve Jobs основывает NeXT Incorporated. 80386 32-bit. SUN работает над SPARC процессором. 1986 – Norton Commander. Compaq захватывает рынок над IBM своим Deskpro 386. Pixar основана Steve Jobs. 1988 – Compaq разрабатывает стандарт ISA (расширить структуру). Pixar (основал Steve Jobs) первый мультфильм Tin Toy. Первый вирус. Стандарт SCSI. 1989 Maxis – SimCity. Microsoft – SQL Server. Creative Labs – Sound Blaster. AOL (доступ в Internet). 1900 WWW – Tim Berners-Lee (W3 Consortium) HTTP — протокол передачи данных в первую очередь в виде текстовых сообщений. Основой HTTP является технология «клиент-сервер», то есть предполагается существование клиентов, которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом. 1900 – IBM и MS заканчивают работу над OS/2. MS выпускает Windows 3.0. 1991 – Linus Torvalds начал разрабатывать Linux. 1992 – Bill Gates самый богатый человек в мире. Выпущена Windows 3.1. GSM связь в Финляндии. ID Software (Wolfenstein 3D, Doom, Quake). 1993 – Sun выпускает SuperSPARC процессоры. Pentium процессор. Plug and Play – изменять аппаратное обеспечение, драйвера будут ставится сами с помощью OS. Apple – Newton MessagePad 100 (PDA). NCSA Mosaic v1.0 – первый Browser. Mosaic Communication выпустили Netscape Navigator (Clark, Andreessen). 1994 – первая версия Linux. Zip drive – 100 MB. 1995 – Apache веб-сервер. Windows 95, IE, Office 95. 1995 – DVD. IBM покупает Lotus Development. Sun выпускает UltraSPARC 64-bit. Sun выпускает язык Java. Sony выпускает PlayStation. 1996 – в интернете появляется интернет-банки. Opera 1997 – Deep Blue обыгрывает Каспарова в шахматы. 1998 – Mozilla Browser Intel Pentium II Xeon iMac АО Внешний цикл – череда инструкций.+ Внутренний цикл. = Тактовая частота Количество шагов за единицу времени. Регистры X и Y (данные над которым надо сделать операцию) AC (аккумулятор, хранение результата) FLAG (регистр особых ситуаций (например при 5 битах на 4 битном компьютере)). ADDR (адресный регистр, ячейки памяти) PC (номер шага на каком находится подсчёт) IR (определённая команда которая выполняется на этом шаге) COUNT (отсчитывает внутренние шаги, сперва загрузить A и B и т.д. ) Assembler – 16-bit Более высокие языки программирования: Lisp, Ada, Java. Машинные: Fortran, C. Интерпретирование – процесс с высокого в некий промежуточный код, а в машинный код в момент выполнения. Компилирование – процесс при котором из высокого языка программирования переводится в машинный код. JIT – докомпилируется при первом запуске. Логические (для искусственного интеллекта): Prolog, Prolog 2. Функциональные (): Haskell, Lisp. Объектно-ориетированные (): C++, Java. ОС Общий стандарт для пользователя. Без ОС звук можно вывести только работая напрямую с звуковой картой, ОС делает это сама. 1. Умеет считать и запустить программу. 2. Умеет установить и переключать программы. 3. Умеет читать файлы, записывать. 4. Умеет общаться с другими компонентами (клавиатура и т.д.). Процессор, память, устройства. ОС – расширенная виртуальная машина, которая предоставляет стандартный компьютер, который может использовать другие программы. ОС – менеджер ресурсов (память). Распределяет. Запускается в привилегированном режиме. Платформа для других программ для запуска, неважно какое аппаратное обеспечение. Программы общаются с ОС, а она с аппаратным обеспечением. Организация очереди и переключение между задачами. Управление памятью (сегменты – участки памяти). Процесс swapping – перенос памяти задачи на HDD. Символьные имена (a=1) – виртуальные адреса (001) – физические адреса (11011001). Кэширование – оптимизация времени доступа к памяти: регистры, RAM, HDD. Чем ближе к процессу (регистры) тем быстрее, но зато цена (размер) дороже. Многопользовательская (UNIX) – данные одного пользователя защищены от других. ПО Паради́гма программи́рования — это совокупность подходов, методов, стратегий, идей и понятий, определяющая стиль написания программ. База данных, графический интерфейс, инфо-системы. Алгоритмические: C, Basic, Java, assembler. Описательные: HTML, XML, SQL – не компилируется в машинный код. 1945-1970 – большие компьютеры, машинные коды, большие фирмы. 1970-1995 – персональные компьютеры, языки высокого уровня, маленькие фирмы. 1995-20.. – сеть, библиотеки, связь компонентов, открытие компоненты. Локальная сеть – Ethernet Интернет – TCP/IP Интернет Ethernet: MAC адрес – уникальное имя сетевой карты. Хаб – центральный сервер. Internet: IP адрес – уникальное имя, зависит от месторасположения. OSI: Интерфейс – возможность соответствующим уровня общаться между собой Протокол – одному и тому же уровню но на разных компьютерах. IP —сетевой протокол, основа стека протоколов TCP/IP, гарантирует маршрутизацию. TCP – разбивает поток информации на сегменты, гарантирует, что информация дошла (таймер), контрольная сумма, . UDP – 517 (для передачи DNS) для системных сообщений, самодостаточный, не гарантирует дошла ли информация, использует контрольную сумму, не отсылает обратно информация, что пакет дошёл. Порт Сервер пассивный, клиент запрашивает. DNS сервер – конвертирует имена домена в IP. ARP – передаёт от одного компьютера к другому по MAC адресу. NetBIOS – протокол для передачи информации, для локальной сети (используются имена компьютеров). CSS – разные стили. XML – язык для разметки текста и превратить произвольный набор букв в термины и обрабатывать их. Используются теги. Для хранения информации. DOM – возможность видеть вашу страницу в виде дерева элементов. Internet – открытая информация. Intranet – локальная сеть, закрытая. Extranet – объединение локальных сетей базируется на Internet, доступ ограничен, зашифрованная информация. Рекурсия Рекурсия – Итерация – Алгоритм Определённым, на один и тоже набор входов – один набор выходов (1+2 всегда 3). Одна операция – один результат. Должен быть конечным. Каждый шаг должен быть хорошо обоснован. Желаемые свойства: корректность, заканчиваться за определённое время, быстро выполнять задачу. Скорость и память. Машина Тюринга: лента с символами, считывающая головка, есть алгоритм, решаемые и не решаемые задачи. Kurt Godel – математика не может быть и полной и цельной одновременно. Искусственный интеллект Самодостаточная, сама принимает решения и осуществлять их. Попытка понять лучше, что такое человек. Попытка облегчить жизнь простому человеку. Тест Тюринга. Eliza – на определённые слова выдавала ассоциации. Hard AI – воспринимать факты и делать выводы (самообучающаяся), умение использовать знания. Экспертная система – низко-интеллектуальная, на базе фактов даёт советы. Например, диагноз по симптомам. Интелликтуальные агенты – программа, по поиску информации из сети, распознавание картинки, речи (контекст, перевод). IT-проект Управление – скоординировать действия всех работников, финансовая часть, цель проекта. Увеличить количество выпускаемого товара, уменьшить расходы. Управление ИТ – заём в банке. Отличие: использование АО, ПО, ИТ - делают ПО. Проблемы не ИТ: отсутствие клиентской базы, сложно отслеживать деньги, общение с поставщиками очень долго, компьютеры то работают то нет, штраф за нелегальное ПО, надо помочь с компьютером. Возможности не ИТ: построение инфо-системы, продажа продуктов в интернете, создание сети с партнёрами, поддержка пользователя по интернету. Либо заказать инфо-систему (высокое качество), либо самим сделать в своём ИТ отделе (дешевле, безопасно). Проблемы ИТ: Возможности ИТ: автоматизированная работа, организация инфо-системы. Оперативное управление: на низком уровне, нету денег в данный момент, конкретная задача на данном этапе, чтобы никто не ждал никого. Управленец хорошо должен разбираться в устройстве, чтобы знать какие новые технологии использовать. Умение оценивать время очень важно (от этого зависит цена). Излишняя самоуверенность. ПО должно соответствовать тому, что хочет заказчик. Умение общаться плохое. Этапы проекта: предварительный анализ (обладаете ли ресурсами), детальный анализ (архитектура, интерфейс), план, реализация, тестирование, документация, локализация, обучение персонала, возможная поддержка в будущем. В программе увеличивать скорость работы там где это действительно нужно. Факторы: проанализировать, взяться только тогда, когда можете сделать. Тесная связь с теми кому вы делаете (должны сделать то, что просят). Продумать методику работы (надо всё учесть). Веб-проект – продукт всё время улучшается. Solution Framework – состоит из моделей. Модель команды – команда экспертов, их роли: менеджер продукта (общается с клиентом, представляет его интересы), менеджер программирования (представляет интересы команды, ответственен за создание плана, бюджета), разработчики, тестеры, учат пользователей, логисты. Общение, размер команды (15 человек макс). Модель процессов – виденье (анализ продукта, общее понимание с клиентом, scope – что технически возможно), планирование (время, как, кто, язык), разработка (метод пирамиды, разбиваем куски на подзадачи), стабилизация (тестирование). План (функциональность, время, ресурсы) – треугольник компромисса Project Charter – для чего продукт, функциональность, факторы успешности (что обязательно в программе), риски (все возможные проблемы), роли и ответственности, как и где будет работать программы, описание системы, какие события в системе, использование системы, язык, технические характеристики, временной план. Модель приложений – user services (интерфейс), business (как можно двигаться через интерфейс), data (база данных). Модель solultion design – модель приложения: концептуальная (начальная концепция приложения), логическая (вытекает из первой, добавляет технические данные), физическая (вытекает из первой, дополнение к логическому, сколько серверов). Модель архитектуры – бизнес (как двигается информация), приложения, информация (какие документы), технология (какие технологии). Total cost of ownership (TCO) – все траты: мыслимая цена, компоненты, улучшить АО, интернет, специалист, управление (скрытые) системы не совсем правильное, время затраченное на неработающая систему.