ПРЕАМБУЛА
Задумался тут. Развелось в наше время так называемых программистов (как большинство из них думают), хотя на деле по большей части это "специалисты" недалеко ушедшие от машин - для реализации прикладной , скажем, технической задачи к ним нужно приставить "няньку в теме", которая разжует алгоритм, который надо тупо закодить (на форуме это не раз уже обсуждалось). Естественно, при поиске ошибок начинается муторная работа общения на разных языках "няньки" и "программиста". ИМХО, проще и эффективнее "няньке в теме" научиться программировать, чем "программисту" въехать в тему, т. к. многие из них просто на корню пресекают данный совет и искренне верят, нарекая себя громким словом - ПРОГРАММИСТ. Хотя у меня имеется по этому поводу несколько иное скромное мнение...
Так вот собственно задумчивость моя.
Сам не программист, поэтому хочу спросить у сообщества - существуют ли какие-то области программирования, в которых можно задаться НАУЧНОЙ работой именно с точки зрения, например, методов программирования. Или же все основные принципы давно сформулированы, языки созданы и всё это является ИНСТРУМЕНТОМ при решении прикладных задач, который может просто как-то модернизироваться, не имея под собой истинно научных исследований. Или же в данной области есть чем заняться и с точки зрения науки? Просто наблюдаю такую картину, что некоторые "программисты" думают, что занимаются какой-то близкой к научной работой, при всем при этом умея только практически кодить разжеванное "нянькой в теме" алгоритмизированное решение задачи и ни в какую не хотящих хотя бы на качественном уровне вникать в суть задачи, что намного бы повысило эффективность отладки программы.
Я думаю, есть и будут диссертабельные темы, связанные с математической обработкой (да и той же цифровой обработкой - ближе к электронике), с нечеткой логикой - непаханное (в нашей стране) поле, с оптимизацией программ и программирования, с системами реального времени, просто с новыми операционками - туча тем, тесно связанных с программированием.
На Ваковском сайте можно посмотреть перечень специальностей, требования (программы) кандидатских экзаменов и уточнить и расширить вышеприведенный список.
vvs157
Jan 15 2010, 22:12
Программирование в современном понимании - это такое же ремесло, как скажем токарная обработка металлов. Соответственно и нет диссертабельности. Однако в том, чем пользуются программисты может быть достаточно диссертабельных тем, по аналогии с теоретическими и практическими аспектами металлообработки, по которым защишено достаточное количество не только кандидатских.
Цитата(V_G @ Jan 16 2010, 00:27)

Я думаю, есть и будут диссертабельные темы, связанные с математической обработкой (да и той же цифровой обработкой - ближе к электронике), с нечеткой логикой - непаханное (в нашей стране) поле, с оптимизацией программ и программирования, с системами реального времени, просто с новыми операционками - туча тем, тесно связанных с программированием.
Так в этом случае программирование и выступает таки в роли только инструмента, реализующего математические и прочие исследования.
Цитата(EUrry @ Jan 16 2010, 08:37)

Так в этом случае программирование и выступает таки в роли только инструмента, реализующего математические и прочие исследования.
Матобработка - да, а оптимизация кодов, СРВ и операционки - чистое программирование. Под программированием я понимаю не только чисто кодерскую работу по заданию и алгоритмам начальника-инженера-технаря. У микрософта кодер - одна из низших должностей. А сверху сидит Блин Гейтс - архитектор, или как он там себя называл. Вот архитектор - весьма научная, диссертабельная (зачастую) область.
И вообще грань между программированием и непрограммированием весьма размыта - см. нечеткую логику и нечеткие множества.
Цитата(V_G @ Jan 16 2010, 12:17)

Матобработка - да, а оптимизация кодов, СРВ и операционки - чистое программирование.
А оптимизация не инженерная работа?
Цитата
Под программированием я понимаю не только чисто кодерскую работу по заданию и алгоритмам начальника-инженера-технаря.
Вот фраза "
по алгоритмам технаря" и есть главная проблема "программиста" при написании программ, не связанных с мобилами и проими гаджетами - такой "специалист" никогда не будет ценен, что видно из текучки кадров подобных контор, в которых работают бОльшей частью студенты. Для начала может и неплохо, но чем дальше оставаться на том же месте, тем хуже.
Цитата
У микрософта кодер - одна из низших должностей.
А вот большинство программистов считают наоборот, как бы их не критиковали.
Цитата
А сверху сидит Блин Гейтс - архитектор, или как он там себя называл. Вот архитектор - весьма научная, диссертабельная (зачастую) область.
У этого архитектора, ИМХО, диссертабельности больше в области экономики, по крайней мере сейчас.
Цитата
И вообще грань между программированием и непрограммированием весьма размыта - см. нечеткую логику и нечеткие множества.
Та к вот, собственно, и задумался.
Andron_
Jan 16 2010, 10:10
в процессе создания ПО разделяют несколько процессов...
есть процесс "кодирования", который по моему мнению и выполняют рядовые программисты. По своей сути, процесс достаточно сильно механизирован... гмммммм... короче, хз... по-моему, писать диссертации по процессу кодирования весьма проблематично...
EUrry
Трудный вопрос. Сам не раз об этом задумывался.
Возможно, применение автоматизация выбор алгоритма реализации какой-либо функции (к примеру приёмника фазоманипулированных сигналов) в зависимости от целевой платформы и требований по качеству реализации (помехоустойчивости).
Кстати, видел научные труды, посвященные процессу автоматизации реализации алгоритма с разделением на программные и аппаратные части. То есть, описываешь алгоритм на определённой языке, задаёшь необходимые интерфейсы, запускаешь компилятор и на выходе получаешь бинарный файл для процессора и бинарный файл для прошивки в FPGA.
haker_fox
Jan 16 2010, 11:38
Цитата(vvs157 @ Jan 16 2010, 06:12)

как скажем токарная обработка металлов. Соответственно и нет диссертабельности.
Это неправда! Научные работы в области обработки металлов резанием еще, видимо, долго не исчерпают актуальности. Тоже самое можно сказать и о программировании. Другое дело кому это нужно, а кому нет.
Существует два программирования:
1. описание алгоритмов на языках программирования;
2. то, что у буржуев называется Computer Science (точнее, ее часть) - изучение и разработка как ЯП целиком, так и отдельных аспектов ЯП.
Второе вполне научно. Первое - нет, как уже сказали выше, это по сути своей ремесло.
Цитата(ASN @ Jan 16 2010, 14:11)

Возможно, применение автоматизация выбор алгоритма реализации какой-либо функции (к примеру приёмника фазоманипулированных сигналов) в зависимости от целевой платформы и требований по качеству реализации (помехоустойчивости).
Опять таки необходимо комплексное знание инструмента-программирования и соответствющего раздела техники.
Цитата(dxp @ Jan 16 2010, 16:26)

Существует два программирования:
1. описание алгоритмов на языках программирования;
2. то, что у буржуев называется Computer Science (точнее, ее часть) - изучение и разработка как ЯП целиком, так и отдельных аспектов ЯП.
Второе вполне научно. Первое - нет, как уже сказали выше, это по сути своей ремесло.
Так вот собственно то по второму направлению что-то делается или там практически всё сделано (по крайней мере при существующей парадигме)?
Цитата(EUrry @ Jan 16 2010, 12:53)

А оптимизация не инженерная работа?
Никак нет. Это конкретная математика. ИМХО программирование это вообще не наука, а ремесло. А наука, на которой базируется программиирование - дискретная математика (например в ней теория алгоритмов, теория автоматов, графы, кодирование, теория функционального программирования, и т.д.). И вот там тем есть. И любая разработка ЯП, оптимизаторов, и т.д., базируется на теоретических принципах, построенных при помощи дискретной математики.
программирование это что - это описание алгоритма при помощи ЯП, и ничего более. А сам алгоритм - голимая дискретная математика.
Цитата(SM @ Jan 17 2010, 00:23)

Никак нет. Это конкретная математика.
Мне казалось, что автор в том случае имел в виду именно оптимизацию кода кодером, который хорошо знает принципы и возможности языка и при этом может применить более эффективную реализацию задачи с использованием того, чего не знает новичок. При этом программы специалиста и новичка будут работать с одинаковым результатом на выходе, но с разной эффективностью. Так вот это я и назвал хорошей работой квалифицированного инженера-программиста. А так, нисколько несомневаюсь в том, что Вы пишете ниже.
Так вот уже начинает вырисовываться какая-то картина обоснованной ненаучности программирования с точки зрения, даже виртуозного, владения языками программирования. За рамки высококачественной (и то при условии, если программируются прикладные технические задачи и программист хотя бы на качественном уровне владеет сутью этой задачи) инженерной работы это не выходит.
Осталось это как-то донести до зазвездившихся "программистов".
Цитата(EUrry @ Jan 17 2010, 11:10)

Осталось это как-то донести до зазвездившихся "программистов".
"зазвездившийся программист" может быть на самом деле хорошим специалистом в дискретной математике, сам того не зная. Или зная, но не считая эту сторону вопроса определяющей. И вот если такой программист на самом деле придумает что-то новое в этой области математики - то это вполне научная работа, даже в том случае, если он не знает, что сделал на самом деле. Но большинство таких программистов, думая, что что-то новое делают в науке, на самом деле изобретают там велосипед, давно описанный и доказанный. Т.е. просто делают одну из реализаций чего-то, описанного сто лет назад математически. А вот описав что-то новое математически - да, бесспорно, научная работа, но при этом вовсе не обязательно этот алгоритм (автомат, граф, другую мат. сущность) запрограммировать/закодировать для выполнения на той или иной вычислительной машине.
Цитата(EUrry @ Jan 17 2010, 11:10)

Мне казалось, что автор в том случае имел в виду именно оптимизацию кода кодером,
Возможно. Я подумал про оптимизацию кода оптимизатором по заданному программистом критерию, и работы по разработке оптимизаторов кода.
Предлагаю автору топика следующую тему для диссертации:
"Разработка "безглючных" приложений под ОС семейства Windows. Теоретические аспекты и методы практической реализации".

IMHO, очень актуальная тема...
vvs157
Jan 17 2010, 11:36
Цитата(EUrry @ Jan 17 2010, 11:10)

Так вот уже начинает вырисовываться какая-то картина обоснованной ненаучности программирования с точки зрения, даже виртуозного, владения языками программирования. За рамки высококачественной (и то при условии, если программируются прикладные технические задачи и программист хотя бы на качественном уровне владеет сутью этой задачи) инженерной работы это не выходит.
Так я про то же уже говорил. Токарь может быть виртуозом своего дела и придумывать весьма нетривиальные "приспособы" для работы (которые, кстати могут быть вполне патентуемы но
абсолютно недиссертабельны). Диссертабельность (кандидат все-таки либо технических или физико-математических
наук в нашем случае) предполагает исследовтельский характер работы. То есть как пример "Исследование алгоритма верификации программ под WIN" может быть темой диссера, а "как писать безглючные программы" - скорее всего нет.
Вообще-то на тему диссертабельности лучше всего разговаривать с теми, кто в курсе требований ВАК к диссертациям. Абстрактные рассуждения на эту тему лишины смысла по причине, что степени присуждает ВАК согласно своим требованиям.
Цитата(@Ark @ Jan 17 2010, 14:19)

Предлагаю автору топика следующую тему для диссертации...
Я не из этой области.
Цитата(vvs157 @ Jan 17 2010, 14:36)

Вообще-то на тему диссертабельности лучше всего разговаривать с теми, кто в курсе требований ВАК к диссертациям. Абстрактные рассуждения на эту тему лишины смысла по причине, что степени присуждает ВАК согласно своим требованиям.
Так вот и спрашиваю, может кто в курсе из здешних посетителей, т. к. я всё-таки как раз бОльшей частью как раз таки только абстактно в теме.
Цитата
То есть как пример "Исследование алгоритма верификации программ под WIN" может быть темой диссера, а "как писать безглючные программы" - скорее всего нет.
Почему же? Исследование вопросов надежности работы программ - разве не тема для диссера? Неоднократно сталкивался с утверждениями, что, мол, начиная с некоторого объема кода, надежность работы в 100% уже невозможно обеспечить. Хотелось бы получить теоретическое подтверждение или опровержение...
Цитата(@Ark @ Jan 17 2010, 14:51)

Почему же? Исследование вопросов надежности работы программ - разве не тема для диссера?
Только эта тема, опять же, будет не из области программирования, а чистой воды математика. Вероятности сбоев, ошибки в кодировании, их классификация, и т.д.
Цитата(SM @ Jan 17 2010, 22:04)

Только эта тема, опять же, будет не из области программирования, а чистой воды математика.
Для продолжения подобных споров следует дать определение программированию. Те, кто считает, что это просто кодирование, также считают это недиссертабельным ремеслом. Те, кто понимают программирование чуть шире, и видят тут элементы диссертабельности. Я лично склоняюсь ко второй группе, более того, думаю, что программирование можно отнести к одному из разделов математики.
Если цель темы - опустить кодеров на землю и приземлить их заоблачные амбиции, то и тут есть рациональное зерно, особенно в нашей области радиоэлектроники. Я думаю, программирующий радиоинженер часто может выдавать на-гора продукты гораздо более качественные, чем связка радиоинженер+программист. Насмотрелся конструкций, где программеры фиксируют скорость компорта на уровне 115200 для передачи 3 байт в час и требований постановщиков задач из программеров по объему памяти девайсов 2-16 МБайт и процессора класса ARM, когда для решения задачи достаточно 2 кБайт и младших процев PIC или AVR.
Цитата(V_G @ Jan 17 2010, 17:59)

Для продолжения подобных споров следует дать определение программированию. Те, кто считает, что это просто кодирование, также считают это недиссертабельным ремеслом. Те, кто понимают программирование чуть шире, и видят тут элементы диссертабельности. Я лично склоняюсь ко второй группе, более того, думаю, что программирование можно отнести к одному из разделов математики.
Хорошо, дайте свое определение программирования и дессертабельность в этой области, исходя из данного определения.
Цитата
Я думаю, программирующий радиоинженер часто может выдавать на-гора продукты гораздо более качественные, чем связка радиоинженер+программист.
О чем и речь была во многих ветках.
Andron_
Jan 17 2010, 15:42
мое мнение - кодер - не имеет право на диссертабельность...
инженер, архитектор, радиотехник, разработчик цифрового приемника - запросто.
Но, как человек, который пишет и на ассемблере С55хх и на C.# .NET приложения с БД, я считаю кодеров чисто механическими сотрудниками... сотрудников выше, ага... А кодеры... Лишь единицы кодеров, которые шарят в кодинге на порядок выше меня, могут написать диссер.
P.S. это с точки зрения выпитых 0.5л рома.
AlexandrY
Jan 17 2010, 16:15
С вашим подходом философы вообще наверно будут дармоедами.
А наука о принятии решений - лженаукой.
В программировании есть куча проблем не формализрованных и требующих эмпирических методов познания.
Каждый программер по сути ученый. Они решают великую проблему нахождения наилучших абстракций и наиболее эффективных описаний семантических функций. Чего стоят функциональное программирование или экспликативное программирование!
Программеры переводят бестолковый язык технарей в упорядоченный набор правил.
Это не дается им даром, как это сделать наиболее эффективно является наукой из наук. И на современном этапе одна из тяжелейших проблем прогресса.
Потому как рост производительность программеров сильно отстает от роста производительности железа. Что приводит к информационным пузырям как "пузырь доткомов".
Тут еще нашел такую инфу, что три четверти программеров вообще ничего не пишут - они системные аналитики. Можно сказать ученые в чистом виде.
Цитата(EUrry @ Jan 15 2010, 20:12)

.. Развелось в наше время так называемых программистов (как большинство из них думают) ...
Цитата(V_G @ Jan 17 2010, 17:59)

более того, думаю, что программирование можно отнести к одному из разделов математики.
Я с этим согласен, но частично. Теорию программирования не то, что можно отнести к математике, а она де факто и де юре давно есть раздел математики, уже говорил - некая совокупность разделов дискретной математики, а математика, как известно, это вполне диссертабельный раздел. Но ведь диссертации получатся по математике, в частности по дискретной, а не по программированию. А практический аспект программирования - это ремесло, хотите - искусство.
Цитата(AlexandrY @ Jan 17 2010, 19:15)

что три четверти программеров вообще ничего не пишут - они системные аналитики.
Аналитик (не только системный, а вообще) - это ни в коем случае не программер. За такое сравнение и морду набить могут

Это тот, кто рождает алгоритм в результате анализа задачи. Это, в общем, математик. Так было еще со времен первых ЭВМ, и так оно есть до сих пор. Другое дело, что он может быть по совместительству программер.
Цитата(SM @ Jan 17 2010, 19:51)

А практический аспект программирования - это ремесло, хотите - искусство.
Так ведь и математика тоже не наука, а ближе к искусству. Она ничего реального не изучает... Создает понятия, правила, язык. Игра. Вот шахматы. Там тоже можно доказывать теоремы.
Цитата(Tanya @ Jan 17 2010, 20:03)

Так ведь и математика тоже не наука, а ближе к искусству.
Математика - наука, причем точная наука. Она изучает... Как бы своими словами сказать... Количественные взаимоотношения во всех остальных областях науки. Любой последующий постулат в математике базируется на доказанных предыдущих, если они не аксиомы. В искусстве ничего подобного не наблюдается
Andron_
Jan 17 2010, 17:14
Философы - гммм... ну, нет...
наука о принятии решений - тем более...
только вот, какое отношении к ним имеют люди, занимающиеся кодированием?
Есть соглашения о кодировании.. есть, принятые на международном уровне... есть принятые на уровне конторы...
только какое отношение к ним имеют рядовые программеры? их принимаю люди, стоящие выше... кодеры лишь соответсвуют им. кто-то изящно, кто-то через жопу...
потому оно и схоже с ремеслом...
а тот, кто готов преобразовать ремесло в науку, кто на 2 головы выше своих сограждан...
тот может написать диссертацию. Только разве они задерживаются на уровне кодера?
Цитата(AlexandrY @ Jan 17 2010, 19:15)

Программеры переводят бестолковый язык технарей в упорядоченный набор правил.
Вот и чистый прогер появился!!! Т. е. Вы называете математику бестолковым языком? Ну-ну! А вот с некоторыми программистами, с которыми приходилось работать, как раз наоборот всё было - упорядоченный набор правил приходилось объяснять им (долго и мучительно), а уж они переводили это в код. Оптимальное сравнение здесь - перевод книги с одного языка на другой, причем, качество зависит от опыта и знаний переводчика в переводимой теме. Вы никогда не читали переводы технических текстов переводчиков с гуманитарным образованием? Советую, может многое проясниться.
Цитата(SM @ Jan 17 2010, 20:13)

Математика - наука, причем точная наука. Она изучает... Как бы своими словами сказать... Количественные взаимоотношения во всех остальных областях науки. Любой последующий постулат в математике базируется на доказанных предыдущих, если они не аксиомы. В искусстве ничего подобного не наблюдается

Математика - не наука. Так мне один (не один) математик говорил.
В том то и дело, что базируется на аксиомах.
И доказывается все на базе некоторой логики. И теории множеств. В которых имеются парадоксы.
Вы в курсе, что доказано, что можно придумать некоторое утверждение, которое нельзя ни доказать, ни опровергнуть?
В рамках математики. А Вы говорите - точная наука...
AlexandrY
Jan 17 2010, 17:25
Аналитик это программер в обязательном порядке, только он может позволить себе не знать синтаксиса языков поскольку их уже забыл.
Во времена первых ЭВМ аналитиков не было.
Вы очень хотите все привести к математике. Математика здесь не причем.
Аналитики не рождают алгоритмы.
Они разрабатывают стратегические планы и архитектуры на основе своих эвристических методов.
Эти методы результат научных изысканий. Основой для них служит знание методов программирования.
Это все равно как нейросети в теории управления. Никто не знает как их правильно строить, но научные исследования вовсю проводятся.
Цитата(SM @ Jan 17 2010, 18:51)

Аналитик (не только системный, а вообще) - это ни в коем случае не программер. За такое сравнение и морду набить могут

Это тот, кто рождает алгоритм в результате анализа задачи. Это, в общем, математик. Так было еще со времен первых ЭВМ, и так оно есть до сих пор. Другое дело, что он может быть по совместительству программер.
Цитата(Tanya @ Jan 17 2010, 20:22)

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

Я же отношусь к тем, кто считает математику наукой, и основой всех основ.
Цитата(Tanya @ Jan 17 2010, 20:22)

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

Цитата(AlexandrY @ Jan 17 2010, 20:25)

Во времена первых ЭВМ аналитиков не было.
В этом Вы сильно заблуждаетесь. Была такая должность. Этот человек анализировал задачу, разрабатывал алгоритм ее решения и передавал программистам, которые превращали этот алгоритм при помощи программирования в набор входных данных, включая код программы, для ЭВМ. И он (аналитик) совершенно не обязан был знать языков программирования, которых тогда еще особо и не было. Он выше всего этого. Другое дело, что теперь часто эти должности совмещаются, и поэтому такие программисты возомнили научность программирования. А вся научность кончается на анализе задачи и разработке алгоритма ее решения, и это не программирование. Дальше - чисто инженерная работа программиста, ремесло. Это - уже программирование.
Цитата(AlexandrY @ Jan 17 2010, 20:25)

Во времена первых ЭВМ аналитиков не было.
Были физики и прочие, кто программировал свои задачи.
Цитата
Вы очень хотите все привести к математике. Математика здесь не причем.
Аналитики не рождают алгоритмы.
Они разрабатывают стратегические планы и архитектуры на основе своих эвристических методов.
Эти методы результат научных изысканий. Основой для них служит знание методов программирования.
Отлично! Вы ушли от математики (отвергнув за ненадобностью), основываетесь на эвристике, в которую входит и так называемый "метод научного тыка", а затем говорите, что нужно знание методов программирования, которые на данный момент, как уже упоминалось, целиком и полностью основаны на математических методах. Давайте-ка разберитесь с такими доводами.
AlexandrY
Jan 17 2010, 17:47
А, ну понял вашу логику. Найти идиотов, назвать их программистами. После чего говорить что программисты и есть те идиоты.
Нифига аналитик не разработает если не будет знать современные технологии программирования и инструменты.
Поэтому современный аналитик обязательно программист.
Т.е.аналитики это подмножество программистов. И наука там имеет место быть по полной.
Цитата(SM @ Jan 17 2010, 19:36)

А вся научность кончается на анализе задачи и разработке алгоритма ее решения, и это не программирование. Дальше - чисто инженерная работа программиста, ремесло. Это - уже программирование.
Цитата(AlexandrY @ Jan 17 2010, 20:47)

Поэтому современный аналитик обязательно программист.
Да не обязательно. Математик, не знающий программирование ни на йоту, может выдать такой алгоритм, который был бы достоен не то, что диссертации, а и нобелевской премии, если бы такую давали. А уже зная алгоритм - любой программист его "уложит" на любую архитектуру, обладающую достаточной производительностью.
программист не идиот. он может быть виртуоз своего дела, умея уложить тот или иной алгоритм туда, куда он с виду вроде как и не может уложиться. Как и схемотехник может быть виртуозом, реализовав данный алгоритм в устройстве. НО! Разработка алгоритма - это не программирование и не схемотехника. Другое дело, что программист может быть и аналитиком по совместимости, делая и его работу. Но и разрабатывать алгоритм (например сжатия речи или видео, а вообще любой), может человек, совершенно далекий от программирования, зато в совершентсве владеющим мат. моделированием этих процессов.
Цитата(AlexandrY @ Jan 17 2010, 20:47)

А, ну понял вашу логику. Найти идиотов, назвать их программистами. После чего говорить что программисты и есть те идиоты.

Никак нет. Что Вы в крайности кидаетесь? надо же в вопросе как-то разобраться, а уж доказать "программистам" их не совсем компетентность тоже можно. И отнюдь не только можно программистов найти, которые считают себя ВСЕЯ, мало в чем понимая, но и в других областях таких хватает. Просто в свете масштабного появления именно "программистов" и возникает вопрос.
Цитата
Т.е.аналитики это подмножество программистов
Сложный вопрос. По иерархии главенства вроде как не подходит, но и по-другому как-то не очень...
Цитата(SM @ Jan 17 2010, 20:56)

Разработка алгоритма - это не программирование.
А по-моему всё-таки как раз это и есть программирование задачи, а кодинг - реализация на каком-то языке - заключительный этап программирования (ну, если не считать дебага и еще чего-нибудь). Есть же алгоритмический язык. Но опять же где научность в создании алгоритма? Я вижу только инженерную часть.
Цитата(EUrry @ Jan 17 2010, 21:03)

а кодинг - реализация на каком-то языке
кодинг - это непонятное новомодное словечко, типа клининг, мерчендайзинг, бодибилдинг и т.п., призванное запутать русскоязычную терминологию. Во времена ЕС ЭВМ и БЭСМ было все четко определено, кто делает алгоритмы, а кто их потом программирует. И я не вижу смысла что-то менять в этой системе, вводя какие-то лишние сущности.
научность в создании алгоритма - а в процессе его создании применяется научный подход (анализ задачи, выбор пути ее решения, теоретическое решение, и, окончательно, реализация его в виде набора действий), и зачастую разработка алгоритма - это не один год научной работы.
sergeeff
Jan 17 2010, 18:27
Приведу пример диссертации, связанной с "чистым программированием". В начале 80-х мой хороший знакомый предложил математический аппарат, подводящий теоретическую основу под программирование с минимизацией переходов типа goto. Все это он воплотил в язык ассемблера некоторого совершенно реального компьютера. Все это оформил в виде диссертации и благополучно защитил.
Цитата(sergeeff @ Jan 17 2010, 21:27)

...предложил математический аппарат...
Вот "об том и речь".
AlexandrY
Jan 17 2010, 18:33
Если вы хотите познакомиться с проблематикой смежной области то так и скажите, а не наезжайте на программистов как класс!
Могу легко привести несколько научных горячих прикладных тем в программировании скажем для микроконтроллеров с которыми лично приходилось сталкивать в недавнее время.
Например:
Проблема выравнивания износа FLASH памяти во встраиваемых файловых системах.
Математики там на самом деле кот наплакал. Никто даже не берется за создание математических моделей. Модели только имитационные.
Ну да там для анализа результатов применяют статистику из школьного курса, но не больше. Вся наука в исследовании и нахождении оптимальных структур данным и операций над ними.
Проблемы оптимального управления heap-ами. С наибольшим продлением ресурса без смертельной фрагментации. Аналогичный подход к исследованиям что и в предыдущем пункте.
Проблемы шедулеров в условиях неопределенности и максимизация пропускной способности системы при большом количестве разных потоков данных из асинхронных процессов, эффективная маршрутизация. Тоже никаких внятных формул математика преподнести не может, потому что хочет исчерпывающих исходных данных. Решается перебором и изобретением новых структур данных с проверкой на моделях.
Разработка архитектуры софта для гетерогенных мультипроцессорных систем.
И вот с такими проблемами сталкиваются "кодеры" непрерывно. Большинство конечно не берутся их решать, гораздо проще собачиться с технарями. Но кто решает тот реальный ученый.
Цитата(EUrry @ Jan 17 2010, 19:40)

Давайте-ка разберитесь с такими доводами.
Цитата(AlexandrY @ Jan 17 2010, 21:33)

Решается перебором и изобретением новых структур данных с проверкой на моделях.
Вот это, как раз, первый признак ненаучного подхода. Научный подход изначально предполагает теоретическое обоснование того или иного метода, и без этого таковым являться не может. Хотя, возможно, что если подвести такую теорию, что перебор в данном случае самый эффективный метод, и доказать это, и выработать наиболее оптимальную методику перебора, и доказать, что она оптимальна - и потянет на научную работу.
AlexandrY
Jan 17 2010, 18:43
Ну это беда ваших понятий о науке а не самой науки.
Вы еще скажите что Бога нет, а человек в состоянии познать все. Вот потеха будет.
Цитата(SM @ Jan 17 2010, 20:39)

Вот это, как раз, первый признак ненаучного подхода. Научный подход изначально предполагает теоретическое обоснование того или иного метода, и без этого таковым являться не может. Хотя, возможно, что если подвести такую теорию, что перебор в данном случае самый эффективный метод, и доказать это, и выработать наиболее оптимальную методику перебора, и доказать, что она оптимальна - и потянет на научную работу.
To AlexandrY:
Ну, вообще то, что Вы привели в качестве примеров - чистой воды математические методы оптимизации. Или же я что-то не понял.
Кстати, V_G поговаривал об определениях. Дабы не уйти в офтоп, нужно дать определения всем терминам, на основе которых строить все дальнейшие выводы. Называется - договориться о терминах прежде спора. Так что же такое программирование? Кто даст определение? А быть может узаконенное есть?
Цитата(AlexandrY @ Jan 17 2010, 21:43)

Ну это беда ваших понятий о науке а не самой науки.

Не моих, а общепринятых. Посмотрим, как кому нибудь удастся защитить диссер без полного теоретического обоснования и доказателства всего того, о чем там речь.
Цитата(AlexandrY @ Jan 17 2010, 21:43)

Вы еще скажите что Бога нет
Не скажу, я убежденный агностик.
AlexandrY
Jan 17 2010, 20:40
По идее вы агностики вообще должны отрицать эмпирический опыт и не признавать статистику.
Мне кажется это чуток отклонение в психике. Это как буриданов осел, у него нет оснований для принятия решений и движения вперед.
А наука на мой взгляд это просто утверждение опыта, его фиксация и не больше.
Цитата(SM @ Jan 17 2010, 21:00)

... я убежденный агностик.
Цитата(AlexandrY @ Jan 17 2010, 23:40)

Мне кажется это чуток отклонение в психике.
А можно как нибудь без оскорблений обойтись? Агностицизм касается исключительно Бога, т.е. мне все равно, есть он или нет, докажут что есть - значит есть, докажут обратное - значит нет, недоказуемо - ну и ладно, мне все равно. Это, скорее всего, и есть то самое математически доказанное существующее недоказуемое утверждение.
Во всем остальном же доказательная база скорее всего существует, и доказать верность или ошибочность той или иной теории, после того, как подвести ее под серию экспериментов, или наоборот - выработать теорию, и проверить экспериментально - это основа научного движения вперед, и с религиозными взглядами ни на йоту не связано.
Цитата(AlexandrY @ Jan 17 2010, 23:40)

А наука на мой взгляд это просто утверждение опыта, его фиксация и не больше.
А на взгляд остальных - это подведение теоретических основ, а опыт - не более чем подтверждение правильности (или ошибочности) теоретических выводов. Чтобы было что-то научно, должна быть лаконичная теория. А иначе все это алхимия.
Цитата(EUrry @ Jan 18 2010, 04:47)

Дабы не уйти в офтоп, нужно дать определения всем терминам, на основе которых строить все дальнейшие выводы. Называется - договориться о терминах прежде спора.
Ну, и еще надо дать определение науки и диссертабельности. Тут все почему-то рассуждают о "высокой" науке и диссертабельности на уровне докторской. А реально подразумевается диссертабельность все-таки кандидатская. А она (кандидатская) все же ближе к инженерии, к ремеслу, и кандидатских в области чистого программирования можно наваять тучу.
По докторским - да, я сильно сомневаюсь, что у нас в стране есть доктора из этой сферы.
А кандидатские часто по уровню чуть выше диплома (что прискорбно вообще-то)
Demeny
Jan 18 2010, 07:50
Цитата(EUrry @ Jan 17 2010, 21:47)

Так что же такое программирование?
Программирование - это в первую очередь
формализация поставленной задачи, т. е. разложение задачи на множество подзадач, каждая из которых уже имеет решение.
Например, задача - измерить площадь произвольной плоской замкнутой геометрической фигуры с заданной точностью.
1. Вписываем целевую фигуру в квадрат с уже известной площадью.
2. Заполняем этот квадрат случайными точками, считая отдельно точки попавшие внутрь целевой фигуры.
3. Отношение кол-ва точек внутри фигуры к общему количеству будет стремиться к отношению искомой площади к площади квадрата с увеличением общего количества точек.
Человек, придумавший такой алгоритм был, безусловно, программистом.
Цитата(SM @ Jan 18 2010, 00:28)

А на взгляд остальных - это подведение теоретических основ, а опыт - не более чем подтверждение правильности (или ошибочности) теоретических выводов. Чтобы было что-то научно, должна быть лаконичная теория. А иначе все это алхимия.
+1
Безусловно научная
теория должна
предсказывать какие-то новые эффекты, которые проверяются на практике. Хотя и обратный процесс тоже был и есть, когда выводу новой теории подсказывают практические опыты (например, при отклонении результатов опыта от принятой ранее теории или выявления нового эффекта, не объяснимого теорией). На стадии зарождения науки опыт превалировал над теорией, но в настоящее время всё-таки превалирует теория над опытом. Наглядный пример - таблица Менделеева - создана, исходя не из какой-то выстроенной теории, а частично случайно из обобщения опытных знаний. Но при этом это открытие помогло предсказать многие другие. Квантовая теория еще более формализована и предсказала множество новых частиц, которые были экспериментально обнаружены только через десятки лет (а бозон Хиггса до сих пор ловят под Женевой). Хотя и в ней есть изъяны, физическая теория, как известно, находится в кризисе противоречий.
Цитата(V_G @ Jan 18 2010, 03:33)

А кандидатские часто по уровню чуть выше диплома (что прискорбно вообще-то)
Даже очень прискорбно, и боюсь будет хуже с такими тенденциями.
Цитата(Demeny @ Jan 18 2010, 10:50)

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

).
Цитата(EUrry @ Jan 18 2010, 18:14)

Хотя и обратный процесс тоже был и есть, когда выводу новой теории подсказывают практические опыты
Я собственно хотел сказать, что научный подход - это тандем из теории и практики. А что первично - не важно. Бывает, что и теория, которую при текущем уровне развития вообще непонятно, как и зачем к практике приложить (потом когда нибудь приложат), а бывает и наоборот - то, что считалось раньше необъяснимым, но стабильным эффектом, получает наконец-то теоретическое объяснение. Главная суть - что теория это неотъемлемая часть научного подхода.
Цитата(Demeny @ Jan 18 2010, 10:50)

Человек, придумавший такой алгоритм был, безусловно, программистом.
Он был алгоритмистом. Или конструктивистом. Бюффонова игла - 1777 год. Первый программист? Или первый основатель (определитель) меры плоских открытых множеств?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.