Чем отличается информатика от программирования в компьютерных системах
Информатика – это научная дисциплина, изучающая структуру и общие свойства информации, а также вопросы, связанные с ее сбором, поиском, хранением, переработкой и распространением с помощью средств вычислительной техники.
Введение
Информатика в качестве науки развивается относительно недавно, а именно, с пятидесятых годов двадцатого века. Возникновение информатики как науки связано с изобретением и реализацией первых электронных вычислительных машин (ЭВМ). Но не следует считать, что до этого момента информатика не существовала, поскольку, если бы люди не занимались научными исследованиями в этой сфере, то и ЭВМ бы появились. Необходимо выделить следующие периоды в развитии информатики:
- Первый период был связан с развитием устной речи людей, возникновением письменности, книгопечатания, становлением точных наук.
- Второй период был сопряжён с созданием ЭВМ и дальнейшим бурным развитием информационных и компьютерных технологий. Как раз во втором периоде информатика стала развиваться как система взаимосвязанных наук, примерами которых являются кибернетика, синергетика, криптология, программирование, моделирование и ряд других.
Информатика смогла проникнуть во все области деятельности людей. Информационные и компьютерные технологии применяются в науке, в сфере образования, в промышленности, медицине, экономике, политике и других областях. Тем не менее, невзирая на бурный прогресс информатики как науки, единого и согласованного определения термина «информатика» нет и по сей день. Сам термин «информатика» возник в середине шестидесятых годов прошлого века практически одновременно во Франции и России и применялся, чтобы обозначить самую молодую науку среди других естественных и технических наук.
Информатика и основы программирования
Развитие информатики в целом невозможно себе представить без программирования. Программированием является процесс проектирования компьютерной программы, то есть формирование программного обеспечения, такого как, операционные системы для компьютеров, драйвера для каких-либо типов оборудования или же просто компьютерные игры. Прежде чем будет создан какой-нибудь конечный продукт, нужно осуществить ряд этапов по созданию программы (или решению задачи) на ЭВМ:
- Этап постановки задачи.
- Этап разработки модели.
- Этап разработки алгоритма.
- Этап программирования.
- Этап тестирования и отладки программы.
- Этап анализа итоговых результатов и дальнейшего сопровождения программы.
Сам процесс программирования в свою очередь так же делится на следующие этапы:
- Осуществление выбора языка программирования.
- Выполнение уточнения методов организации данных.
- Осуществление записи алгоритма на выбранном языке.
Процесс программирования осуществляется программистами, которые делятся на следующие основные категории:
- Системные программисты. Осуществляют разработку, эксплуатацию и сопровождение системного программного обеспечения, которое поддерживает работоспособность компьютерного оборудования и создаёт среду для исполнения программ.
- Прикладные программисты. Занимаются разработкой и отладкой программ, позволяющих решить функциональные задачи.
- Программисты аналитики. Это программисты, которые анализируют и проектируют комплекс взаимосвязанных программ.
- Постановщиками задач являются разработчики формальных постановок задач, которые требуют реализации на ЭВМ.
- Администратором базы данных является специалист, обеспечивающий её организационную поддержку. Администратором сети является специалист, обеспечивающий организационную поддержку работы локальных сетей.
Действия по разрешению любых задач с применением компьютерного оборудования состоят из следующих основных этапов:
- Формулирование постановки задачи.
- Осуществление формализации задачи.
- Формирование алгоритма.
- Создание программы на языке программирования.
- Выполнение отладки и тестирования программы.
- Осуществление расчетов и анализ сформированных результатов.
Непосредственно к программированию в данном перечне могут быть отнесены этапы формирование алгоритма, создание, отладка и тестирование программы. На этапе постановки задачи необходимо четко сформулировать, что является исходными данными и что необходимо определить.
На этапе, где осуществляется формализация, задача должна быть переведена на язык математических выражений, уравнений, отношений. Затем формируется алгоритм решения задачи при помощи каких-либо специальных средств (блок-схемы, псевдокоды). После формирования алгоритма необходимо реализовать его исполнение на выбранном языке программирования.
Трассировка программы - это метод ее пошагового исполнения с отслеживанием значений всех переменных.
Многие родители ошибочно полагают, что раз ребенок изучает в школе информатику, то он научится в полной мере пользоваться компьютером, и, более того, станет программировать. Отнюдь… Конечно, школьный предмет «Информатика» связан с компьютерами, но программированием в обычной школе дети не занимаются. Да и информатикой этот предмет не всегда назвать можно. В лучшем случае научат детей элементарным навыкам работы на компьютере, может быть, познакомят ребят с некоторыми офисными программами, необходимыми для подготовки рефератов.
Информатика – это наука об информационных процессах, о методах сбора, хранения, передачи и обработки информации. Она пронизывает все сферы человеческой жизни. Это интереснейшая и многогранная наука. Беда, однако, заключается в том, что глубоко понять и оценить ее можно, только изучив высшую математику, физику, философию, логику, то есть лет через 10 после окончания школы.
Однако, XXI-й век – это информационный век, и мы живем в информационном обществе, поэтому невозможно представить образование современного школьника без изучения информатики. Иначе, позвонив своему провайдеру в случае потери Интернета, он даже не сможет ответить на элементарные вопросы об IP-адресе и роутере. Вот в таком объеме информатика и присутствует в школьном расписании.
Современные информационные процессы компьютеризированы, компьютер является носителем информации и именно под таким углом зрения компьютер изучается в рамках школьной информатики. Применение компьютера как средства для программирования, дизайна, сайтостроения в школьную программу обучения не входит. Это слишком специфичные знания, которые не каждый ребенок освоит и не каждому ребенку эти знания нужны, это уже шаг к определенной профессии, а школа дает всетаки общее образование.
А как же быть со сдачей ЕГЭ по информатике, ведь там половина вопросов связаны с программированием? А как же быть студентам-первокурсникам факультетов, связанных с программированием? Ведь ВУЗы свою программу начинают не с нуля, там считают, что студент должен обладать априорным набором представлений о программировании? А как же быть тем ребятам, которые хотят и могут сами писать программы и мечтают создать свою 3D-игру?
Выход один – дополнительное образование. В любом виде – дома, on-line, в кружках, в детских учреждениях дополнительного образования. Единственно, что родителям нужно понимать, что программирование, как впрочем, и компьютерный дизайн, построение сайтов и системное администрирование, это в конечном счете профессия, сложная и глубокая, а значит, учиться этим предметам лучше системно и по правильной методике. Вопрос в том, с чего начать, как не пропустить важное, как выстроить правильную образовательную траекторию?
Начинать обучение программированию надо как можно раньше, чтобы максимально повысить шансы на своевременный и грамотный выбор профессии и высшего учебного заведения.
Для изучения программирования школьниками младших классов существует множество специализированных сред, как в форме on-line проектов, так и настольных приложений. Это и Scratch, и App.Inventor от Google, и многочисленные код-классы от Microsoft и отечественных разработчиков. Они позволяют создать игровые условия обучения, при которых у каждого ребенка точно получится хороший результат. А это повышает мотивацию к изучению фундаментальных технологий и решению сложных задач.
Познав азы в облегченном игровом формате, можно переходить к обучению по классической программе. Например, начать освоение языков Pascal или Python. Правда, здесь уже лучше довериться профессиональным педагогам. Иначе, нахватавшись поверхностных знаний, потом, очень сложно будет переучиваться. Именно поэтому мы рекомендуем для будущих программистов занятия в Учебном центре вычислительной техники.
В завершении, хочется отметить, что современная информатика без программирования немыслима, современное программирование базируется на информатике, одно без другого невозможно. И если школа по информатике дает какие-то базовые представления, то программирование освещает весьма поверхностно. Стоит об этом задуматься, если вы видите свое будущее в сфере информационных технологий.
Я новичок в информатике и программировании, и мне было интересно, есть ли разница между информатикой и программированием? и вы можете выбрать, чтобы учиться только один из них в университете, или оба?
Информатика - это изучение того, что могут делать компьютеры; программирование - это практика, заставляющая компьютеры делать вещи.
Взгляните на курсы / учебные планы, предлагаемые интересующими вас университетами, чтобы узнать, является ли этот курс курсом CS, курсом программирования, чем-то еще (например, разработкой программного обеспечения) или даже комбинацией вышеперечисленного. Многие курсы, рекламируемые как «информатика», предлагают значительный программный компонент, который может быть таким, чтобы вы могли применять теоретические части курса на практике, или может быть ради них самих, чтобы вы могли научиться навыкам создания программ.
Важно отметить, что большинство курсов по компьютерным наукам вообще не имеют отношения к теоретической CS, так как TCS, по крайней мере, так же отделен от практической CS, как и CS от программирования.
Я не думаю, что вы должны привязывать CS (несмотря на название) слишком близко к компьютерам: в первую очередь, это изучение информации . Просто случается, что термин «компьютер» охватывает большинство различных физических инструментов, которые мы используем для работы с информацией, поэтому практически любое изучение информации будет включать программирование компьютера.
Таксономия может подойти под прозвищем информатики. Но это не кажется мне подходящим под CS. Полезно в междисциплинарном смысле, но CS неразрывно связан с тем, что мы можем сделать с компьютерами, IMO. Я мог бы сделать ваше определение «компьютера» более общим, но не определение CS.
Предостережение: «Компьютерные науки» стали запутанной областью в наше время, потому что (по крайней мере, в Соединенных Штатах) университеты не имеют степеней в «программировании». Это означает, что люди, интересующиеся программированием, должны зарегистрироваться для получения степени информатики, и в качестве реакции на это программы информатики делают упор на программирование все больше и больше.
Тем не менее, сама информатика является строго математической наукой - вычислительная математика могла бы быть более подходящим термином. Он включает в себя изучение теории графов, алгоритмической сложности, формальной логики, автоматов и вообще любой логической структуры, которая может описывать преобразование или реакцию на входные алгоритмы. Компьютерный ученый в классическом смысле мог бы рассуждать о правилах, которые управляют любой вычислительной системой (включая современные компьютеры), не обязательно зная детали реализации на текущей архитектуре. Хорошие знания в области компьютерных наук дают вам возможность разрабатывать (или вспоминать) эффективные, масштабируемые алгоритмы, предвидеть логические сокращения и разумно рассуждать о том, что можно отслеживать.
Напротив, программирование - это то, что делает человек, когда использует язык программирования для преобразования алгоритма в то, что может сделать машина. (Это должно сделать очевидной тесную связь с информатикой и откуда большая часть путаницы.) Программист (по отношению к среде и языку) должен быть в состоянии взять практически любой набор алгоритмов и преобразовать их в форму как человека - и машиночитаемым путем написания кода. Хорошие знания в программировании (как и большинство степеней CS) позволяют вам писать лучший код, где «лучший» код легче понять другим и более успешно выражать алгоритм, который вы реализуете.
Конечно, существует большое количество перекрестных помех, и высокий уровень опыта в одной из них будет в значительной степени соответствовать опыту разработки в другой - как отмечалось, майор CS почти всегда является компетентным программистом, и опытный программист подобрал много принципов CS. Подумайте, физика и инженерия.
Хороший способ запомнить разницу заключается в следующем: если ему требуется компьютер, чтобы увидеть, работает ли он, он программирует - если вы можете сделать это с помощью карандаша и бумаги, это компьютерная наука.
Да, последнее предложение - загвоздка, не так ли? Это вызывает в воображении образы помятых профессоров с вьющимися волосами и меловыми пальцами, развевающимися вокруг пригоршни пергамента, и напоминает цитаты типа «информатика не больше о компьютерах, чем астрономия о телескопах». Если наука в конце концов так или иначе не превратится в машину, то какой в этом смысл? Какой астроном в здравом уме никогда не смотрит в телескоп?
Я не думаю, что меня когда-либо просили «превратить алгоритм в то, что может делать машина» за последние 30 лет. Вы думаете не о программисте, а о компиляторе.
@ gnasher729 Хорошо, допустим, у меня есть алгоритм: «Для каждого слова в списке, если оно начинается с буквы A, переместите его в начало». Какой компилятор вы бы порекомендовали?
Информатика не больше о компьютерах, чем астрономия о телескопах. Эдсгер Дейкстра
Программирование - это умение создавать компьютерную программу.
Информатика, с моей точки зрения, должна быть такой же наукой, как физика.
Он включает в себя изучение компиляторов и генераторов компиляторов, концепций аппаратной архитектуры, различных форм систем счисления, алгоритмов и алгоритмической эффективности / производительности и теории арифметических операций над процессором. Когда я занимался CS в университете, мы проводили много времени с ассемблерами, изучая разницу между компиляцией, связыванием и интерпретацией и так далее.
Многое из этого было сделано с помощью программирования, то есть акта написания кода, который затем компилировался или выполнялся через интерпретатор с целью генерирования результатов для решения проблемы. То есть программирование - это процесс решения проблем, который можно описать с помощью знаний информатики. Это что-то вроде Pure Maths / Applied Maths.
Чтобы стать программистом, вам не нужна степень по компьютерным наукам, но программист, имеющий опыт работы с CS, вероятно, будет иметь более глубокое понимание поведения компьютерных программ.
@mcfinnigan, я бы сказал, более ошибочный. Студенты CS, которые обосновывают себя в теории, как правило, имеют меньше понимания, потому что они на самом деле не имеют опыта, чтобы знать, что компьютеры могут сделать , или как добраться на разных языках.
опять вы меня не так поняли. Я говорю, что программист, который потратил время на то, чтобы овладеть некоторой реальной теорией CS, с большей вероятностью узнает, почему Set лучше, чем List в определенных ситуациях, или почему с плавающей запятой сложно.
Несколько лет назад я изучал алгоритмы и сложность. Восхитительно чистая область, где каждая концепция чётко определена, каждый результат построен на предыдущих доказательствах. Когда узнаёшь факт в этой области, ты можешь на него положиться, поскольку сама математика вывела его. Даже у несовершенных результатов, как приближение и вероятностные алгоритмы, есть строгий анализ их несовершенства. Другие дисциплины информатики, вроде сетевой топологии и криптографии, имеют такой же удовлетворительный статус.
А теперь я работаю с разработкой ПО, и это невыносимо скользкая тема. Ни одна концепция точно не определена. Результаты оцениваются с характеристиками «обычно» или «в целом». Сегодняшние исследования могут или не могут помочь завтрашней работе. Новые подходы часто опровергают предыдущие методы, а сами ярко горят недолгое время, а потом выходят из моды, когда всплывают их ограничения. Мы верили в структурное программирование. Затем начали верить в языки четвёртого поколения, потом в объектно-ориентированные методы, потом в экстремальное программирование, а теперь, может быть, в open source.
Но программирование — это именно то место, где происходит контакт шины с асфальтом. Мало кого волнует, действительно ли равняется , чисто ради красоты вопроса. Компьютерная область имеет дело с компьютерами. Это написание программ для решения реальных человеческих проблем и работа этих программ на реальных машинах. Согласно тезису Чёрча-Тюринга, всё компьютерное оборудование по существу эквивалентно. Так что пока компьютерная архитектура классная, реальным ограничением в информатике остаётся проблема создания программного обеспечения. Нам нужны программы, которые можно собрать за разумное время и за разумную стоимость, которые работают примерно так, как планировали дизайнеры, и работают без ошибок.
Имея такую цель, я всегда был озабочен одним вопросом (как и многие другие исследователи): почему программисты не могут получить более строгие результаты, как в других областях информатики? Если спросить иначе, «Какую часть архитектуры и конструкции программ можно сделать формальной и доказумой?» Ответ на этот вопрос находится на рисунке 1.
Рисунок 1: Яркая линия в информатике
Темы выше этой линии принадлежат к разработке программного обеспечения. Области исследования ниже этой линии — основные предметы информатики. У последних есть ясные, формальные результаты. Для открытых проблем в этой области мы ожидаем получения новых результатов, которые будут формально сформулированы. Эти темы основаны друг на друге: криптография на сложности, а компиляторы на алгоритмах, например. Более того, мы верим, что доказанные результаты в этих областях останутся таковыми и через 100 лет.
Так что это за яркая линия, и почему ниже неё нет ни одной из тем программирования? Линия — это качество под названием «прямое человеческое участие». У разработки ПО есть такое качество, а у традиционной информатики его нет. Результаты из дисциплин ниже линии могут быть использованы людьми, но эти результаты напрямую не подвержены влиянию людей.
У разработки ПО есть неотъемлемый человеческий компонент. Например, эксплуатационная надёжность ПО представляет собой возможность понимания, нахождения и исправления человеком дефектов программной системы. На эксплуатационную надёжность могут влиять некоторые формальные понятия информатики — может быть, цикломатическая сложность графа контроля программного обеспечения. Но эксплуатационная надёжность критически зависит от людей и их способности постигать значение и замысел исходного кода. На вопрос, обладает ли конкретная программная система высокой эксплуатационной надёжностью, невозможно ответить просто механически изучив ПО.
То же самое с безопасностью. Исследователи использовали некоторые формальные методы, чтобы узнать влияние программной системы на здоровье и собственность людей. Но никакая дискуссия о безопасности программ не может считаться завершённой без обращения к человеческому компоненту изучаемой системы. Аналогично для разработки требований. Мы можем разработать любые техники опроса, чтобы добиться от заинтересованных сторон точных требований, и можем создать различные системы для их записи. Но никакой объём исследований в этой области не изменит того факта, что сбор требований часто предусматривает разговор или наблюдение за людьми. Иногда эти люди сообщают нам правильную информацию, а иногда — нет. Иногда люди лгут, возможно, по уважительным причинам. Иногда люди честно пытаются передать правильную информацию, но не могут этого сделать.
Это наблюдение приводит к Тезису Коннелла:
Разработка программного обеспечения никогда не будет строгой дисциплиной с подтверждёнными результатами, поскольку в неё вовлечена деятельность человека.
Это экстра-математическое утверждение о границах формальных систем. Я не имею никаких доказательств за или против. Но факт в том, что человеческие проблемы остаются центральными вопросами разработки программного обеспечения:
- Что должна делать эта программа? (требования, юзабилити, безопасность)
- Как должна выглядеть программа внутри, чтобы её легко было починить и модифицировать? (архитектура, дизайн, масштабируемость, переносимость, расширяемость)
- Как долго займёт её написание? (оценка)
- Как мы должны её разрабатывать? (кодирование, тестирование, измерение, конфигурация)
- Как следует эффективно организовать работу команды? (менеджмент, процесс, документация)
Мой тезис объясняет, почему разработка ПО настолько трудная и такая скользкая. Проверенные методы одной команды программистов не работают для других команд. Исчерпывающий анализ прошлых проектов может быть бесполезен для хорошей оценки следующего. Каждый из революционных инструментов разработки помогает по чуть-чуть, а затем не соответствует своим великим обещаниям. Причина в том, что люди слишком мягкие, разочаровывающие и непредсказуемые.
Прежде чем перейти к последствиям моего утверждения, рассмотрим три вероятных возражения:
Тезис реализует сам себя. Если какая-то область разработки программного обеспечения вдруг решена строго, то вы можете просто изменить определение разработки ПО, чтобы исключить из него эту проблему.
В чём-то это возражение верное, но не во всём. Я утверждаю, что набор дисциплин, обычно называемый разработкой программного обеспечения, будет и дальше по существу бросать вызов строгому решению. Узкие аспекты некоторых проблем могут поддаваться формальному подходу, но их успех будет лишь на периферии ключевых проблем разработки.
Статистические результаты в программировании уже опровергают этот тезис.
Эти методы в целом решают проблему оценки и включают в себя Function Point Counting, COCOMO II, PROBE и другие. Несмотря на свой математический вид, эти методы не являются доказательствами или формальными результатами. Такая статистика — просто попытка квантифицировать субъективный человеческий опыт по прошлым софтверным проектам и экстраполировать его на будущие проекты. Иногда работает. Но внешне строгие формулы в этих схемах — это свинья с губной помадой, если использовать современное выражение. Например, одна из формул в COCOMO II выглядит так: , где , а — это набор из пяти факторов масштабирования, таких как «гибкость разработки» и «сплочённость команды». Сама формула выглядит строго, но в ней доминирует показатель, составленный из человеческих факторов.
Формальные процессы разработки, такие как метод «чистой комнаты», постепенно находят строгие, доказуемые методы. Они поднимают яркую линию, чтобы перенести под неё ранее размытые темы.
Действительно, исследователи формальных процессов демонстрируют прогресс в решении разных проблем. Но их можно уличить в нарушении самого первого возражения в этом списке: они слишком узко определяют разработку ПО, чтобы она поддалась строгому решению. Формальные методы просто удобно для себя истолковывают любую проблему, которая основана на человеческом участии и интерпретации. Например, ключевым элементом формальных методов разработки является создание строгих, недвусмысленных спецификаций. Эти спецификации затем используются для проведения (и доказательства) последующих этапов разработки. Конечно, формальный метод может содержать недвусмысленную схему семантической нотации. Но никакой формальный метод не содержит точного рецепта, как перевести в недвусмысленное состояние смутные мысли людей о том, что должна делать программа.
Вопреки этим возражениям я заявляю, что разработка ПО по существу отличается от традиционной, формальной информатики. Первая зависит от людей, а вторая — нет. Это приводит нас к Заключению Коннелла:
Следует прекратить попытки доказать фундаментальные результаты в разработке ПО и признать, что существенные достижения в этой области будут лишь общими рекомендациями.
Например, Дэвид Парнас в 1972 году написал замечательную научную статью «О критериях разложения системы на модули». Она описывает простой эксперимент, который Парнас провёл с альтернативными стратегиями дизайна ПО, одна с сокрытием информации, а другая с глобальной видимостью данных. Затем на основе этого маленького эксперимента он вывел несколько заключений и привёл рекомендации. Ничего в статье не является доказанным, и Парнас не гарантирует, что следуя рекомендациям каждый получит аналогичный результат. Но статья содержит мудрые советы и сильно повлияла на популярность объектно-ориентированных языков программирования.
Другой пример — это огромная работа Института программной инженерии в Университете Карнеги — Меллон, известная как CMMI. CMMI начиналась как модель процесса разработки ПО, а теперь разрослась и включила в себя также другие типы проектов. Объём CMMI примерно 1000 страниц — не считая примеров, интерпретаций и обучающих материалов — и она представляет более 1000 человеко-лет работы. Многие крупные организации использовали её и добились значительного прогресса в своих процессах разработки ПО и продуктах. Но в CMMI нет ни единого твёрдо доказанного результата. Это просто набор (хорошо проработанных) предложений, как организовать софтверный проект на основе методов, которые были эффективны для других организаций в прошлом. На самом деле Институт программной инженерии констатирует, что CMMI — это даже не процесс, а скорее мета-процесс, детали которого заполняются каждой организацией.
Другие области исследований в том же духе — это паттерны дизайна, стили архитектуры, рефакторинг на основе сомнительных методов, гибкая методология разработки и визуализация данных. Эти дисциплины могут частично содержать проверенные результаты, но в целом нацелены на системы, которые изначально содержат человеческое участие. Чтобы внести ясность: ключевые темы информатики (ниже яркой линии) — жизненно важные инструменты для любого разработчика. Знания алгоритмов важны при проектировании высокопроизводительных приложений. Теория массового обслуживания помогает проектировать ядро операционной системы. Методология «чистой комнаты» тоже полезна в некоторых ситуациях. Анализ статистики может пригодиться при планировании похожих проектов с похожей группой участников. Но формализм — это просто необходимое, а не достаточное условие для хорошей разработки. Давайте для примера рассмотрим строительство и архитектуру (то есть дома и здания).
Представьте блестящего инженера-строителя, лучшего в мире эксперта по строительным материалам, зависимости деформаций от напряжений, распределению нагрузок, защите от сдвига ветров и подземных толчков, и т. д. Этот парень занесён в записные книжки архитекторов во всех странах, чтобы звонить ему для консультаций по каждому строительному проекту. Будет ли этот мифический инженер-строитель настолько же хорош в проектировании зданий, которые он анализирует? Совсем нет. Он может теряться в разговорах с клиентами, неспособен проектировать приятные для проживания места, его фантазии не хватает, чтобы придумать решения для новых проблем, и он до чёртиков скучен. Техника строительства полезна для реальных архитекторов, но её недостаточно для хорошего проекта. Удачная архитектура требует креативности, концепции, междисциплинарного мышления и гуманизма.
Таким же образом и классическая информатика полезна в разработке ПО, но её никогда не будет достаточно. Проектирование хорошего программного обеспечения тоже требует креативности, концепции, междисциплинарного мышления и гуманизма. Это наблюдение освобождает исследователей процесса разработки программного обеспечения. Они могут тратить время на изучение успешных методов — накапливая совокупность коллективных знаний для будущих практиков. Мы не должны втискивать разработку ПО в рамки расширения информатики на математической основе. Это не сработает и может отвлечь нас от полезных открытий, которые ещё ждут своего времени.
Выражение признательности
Благодарю Стива Гомера за дискуссию, которая разожгла мой интерес к этому вопросу.
Здравствуйте! Собираюсь поступать в ВУЗ, и хотелось бы узнать по точнее, чем отличается программная инженерия от прикладной информатики? На данный момент мне 16 лет, я в 11 классе, занимаюсь версткой сайтов как хобби, и хотелось бы, что бы мое хобби, в дальнейшем стало работой, но изучение других языков на факультете конечно не будет концом света. Учат ли WEB программированию на этих направлениях, и чем они отличаются?
P.S. Про самообразование я прекрасно знаю и полностью готов к тому, что мне придется изучать что-то самостоятельно, вне ВУЗА.
Простой 1 комментарий
От вуза зависит.
по аналогии
программная инженерия - это больше проектирование
прикладная информатика - это больше строительство
Кое где "прикладная информатика" - это Windows, MS Office, HTML etc.
Несмотря на образовательные стандарты РФ, которые для гос. вузов обязательны.
разница между определенными направлениями:
прикладная информатика
Computer Science (Информатика);
Information Systems (Информационные системы);
Information Technology (Информационные технологии);
и
программная инженерия
Software Engineering (Программная инженерия).
Программу никому неизвестного ВУЗа нужно узнавать в этом вузе.
Но в любом случае современное веб-программирование там не изучают.
ИТ область - это область с высоким порогом входа.
Высокий порог входа не пустые слова. Это сложно. Это очень сложно.
Это даже для того, чтобы понять чем прикладная информатика отличается от программной инженерии, вам бы поучиться годик, ибо в двух словах пояснить так, чтобы все стало понятно - не получится.
С другой стороны - совершенно не важно куда вы пойдете, главное чтобы проучились. Ибо непосредственно для работы вы все равно будете учиться самостоятельно, а вуз дает кругозор, общее образование, много специфичных вещей, общение и возможно даже полезные знакомства.
А главное - вуз, в отличие от школы, обычно прививает навыки самостоятельного изучения и решения проблем. В школе практически неважно, как вы учитесь - все равно перетянут в другой класс, разве что ты совсем даун.
В вузе - можно просидеть все лекции без опоздания, позаписывать все конспекты красивым почерком, но ничего не понять и вылететь. Поэтому приходится прикладывать усилия.
Возьмите с собой друга, пойдите к вузу, поостанавливайте выходящих людей и поспрашивайте их про факультеты.
Можете подойти к этому делу творчески, взять микрофон, камеру, организовать небольшой опросник, поспрашивать разных студентов, и даже выложить это потом на ютуб.
Готовые работы на аналогичную тему
Информатикой является наука, которая изучает структуру и общие свойства информации, а также проблемы, сопряжённые с её сбором, сохранением, поиском, преобразованием, распространением и использованием в разных областях человеческой деятельности. Большинство специалистов склонны определять информатику как научную дисциплину, которая имеет следующую структурную организацию:
- Совокупность технических средств.
- Совокупность программных средств.
- Совокупность алгоритмических средств.
Все эти элементы должны развиваться в тесной взаимосвязи. Их взаимодействие ведёт к развитию таких направлений информатики, как теория вычислений, алгоритмы и структуры данных, методика программирования и языков, компьютерные элементы и архитектура, формирование программного обеспечения, искусственный интеллект, компьютерные сети и телекоммуникации, системы управления базами данных, и так далее.
Читайте также: