PhD, состоящий в основном из работы по программированию

В настоящее время я учусь на втором курсе в области компьютерной инженерии. Мои исследования связаны с компьютерной графикой и виртуальной реальностью.

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

До сих пор я в основном занимался программированием/разработкой программного обеспечения и разработкой фреймворка C++ для потокового программирования. Мой вопрос заключается в том, может ли такой проект по разработке программного обеспечения квалифицироваться как тема для докторской диссертации. Существует множество сложных задач, требующих решения, включая синхронизацию времени, обеспечение безблокировки системы, планирование и т. д. Здесь есть четкая цель: пользователь определяет график для потока данных с различными атрибутами (временные окна, параллельные выполнение, ...), и фреймворк выполняет необходимые преобразования и т. д., чтобы иметь возможность выполнить его.

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

Зачем вы программируете, если еще не решили, что нужно программировать?
Есть ли нерешенные проблемы в программной инженерии?
Фреймворк имеет несколько функций, которых нет в других подобных фреймворках. Но это не совсем нерешенные инженерные задачи, есть много разных способов реализовать это. Проблема, над которой я работаю, заключается в том, чтобы найти хорошую структуру/алгоритм для совместной работы всех функций без лишних накладных расходов и ненужных осложнений.
Я программирую его так, чтобы у него был базовый набор инструментов, на основе которого можно создавать более конкретные приложения. Таким образом, это в основном упростило бы создание приложения, которое также работает достаточно эффективно для поддержки в реальном времени. Насчет того, почему я программирую, это, наверное, тоже по социальным причинам, потому что иначе я бы не работал...
@tmlen Почему бы тебе не работать? Мне кажется, что вам предстоит многое сделать для детального изучения и осмысления последних исследований в области графических методов и поиска областей возможного улучшения. Пока у вас нет идей, которые можно попробовать, вы не можете знать, нужен ли вам новый фреймворк или можно ли проверить свои идеи, используя существующие фреймворки.
+1 Я сам задавался этим вопросом для своей докторской степени. Спасибо за вопрос!!
Да, вы, вероятно, можете получить докторскую степень за это. Нет, вы не должны быть в состоянии получить докторскую степень для этого. Более актуально: что вы хотите от всего этого?

Ответы (1)

То, что вы описываете, — обычная ситуация в прикладной информатике.

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

Так как же работает научная работа в такой прикладной области? (1) Прежде всего, после того, как построена структура, интересные научные вопросы можно решать не только теоретически, но и экспериментально. Кроме того (2), когда вы пытаетесь собрать что-то, что просто работает, вы часто понимаете, что текущий уровень техники недостаточен в некоторых аспектах. Вы улучшаете их, чтобы ваш пример работал, а затем проверяете, достаточно ли вашего улучшения для публикации.

Кажется, вам сказали, что случай (2) — это то, как все должно работать в вашем случае. Но вы также можете спросить своего консультанта о ее/его планах относительно исследовательской работы (1). Часто эти фреймворки строятся с учетом вопроса части (1). Обратите внимание, что также может быть так, что во время исследовательской работы в рамках вашей исследовательской группы накопилось много технического долга. Часто доктор философии. студенты - единственные, кто работает над этим, поскольку студенты бакалавриата или магистратуры не имеют достаточного опыта, а постдоки и профессора слишком заняты для этого. Часто считается, что это нормально, если в группе существует достаточное взаимодействие, такое, что доктор философии. студенты, работающие над техническим долгом, могут одновременно участвовать в научно интересной работе исследовательской группы.