Could I get a PhD in CompSci using my open source project?

I’ve got my Masters in CS and really didn’t have any desire to get my PhD but for the last 5 years I’ve been working on an open source project. If we pretend that my project has enough new ideas to qualify could I use it as my dissertation? Would a reputable CS program allow a student to use work that was done before they were admitted to the program?

Sounds like a question for whatever college/university you are interested in attending. They would be the only ones who could answer this question definitively.

A program is not a dissertation. (At least, not at any university I’ve heard of.) A dissertation is a book-length piece of prose which describes new research and results, and relates them to previous work in the field. If, in the course of developing your open source project, you made a number of advances in the field of computer science, or if you can use the project to produce same, then you can almost certainly write about this project in your dissertation. But you can’t just submit the software itself, without any accompanying manuscript, and expect to get a Ph.D.

(Note that in addition to the dissertation, many Ph.D. programs have other requirements. For instance, you may need to formally register as a student, and perhaps remain registered for a certain number of semesters; you may also need to take and pass some number of academic courses. Some less civilized universities may also demand that you pay a “tuition” fee.)

At least in the UK, you get a PhD by making contributions to scientific knowledge that are considered significant by reviewers. These contributions ideally need to be done while you’re involved with a research institution, because this way they can keep an eye on what you’re doing, and support and advise you; there’s also another thing - one of the usual reasons is that this way they can claim some rights on any new ideas you generate.

These contributions usually are peer-reviewed publications, a thesis and discussion or both; in my experience, it’s usually preferred to have both.

I’m not saying that it’s impossible to be awarded a PhD because of your Open Source project, but you need to make a case for it, and possibly prepare a research proposal that relies on it in some way; for example, investigating an innovative algorithm, extending your package to solve a specialized problem (or a more generalized one!) or a revolutionary application for the software.

Source: I have a PhD in Computer Science.

I have heard of cases of a school considering a prior work as a thesis, but in the cases I’ve heard of, it was a really, really good prior work, and the school had already decided that they wanted that person to have a PhD.

The OP’s case is substantially different from the doctorates granted to, for example, Michael Faraday (Oxford, 1832) and pioneering heart surgeon Vivien Thomas (Johns Hopkins, 1976), correct? Both men did the great bulk of their work outside of formal academia

Are you perhaps thinking of cases in which a school has awarded someone an honorary degree?

Well, if the OP has written a program that discovered the electromagnetic field, I’m sure Cambridge will give him an honorary doctorate. I suspect it’s not quite that good, though.

As noted, the software project itself isn’t the focus. The project could certainly be part of it, but you need to have a novel idea that increases knowledge (See The illustrated guide to a Ph.D.).

To turn the idea into a real dissertation, you need to thoroughly explore it and describe why it increases that knowledge. Discover everything that others have proposed (Complete scientific literature search and analysis), Show that your idea is useful/correct/better than what has come before – This could include implementation (e.g. insert your open source project here), then a complete evaluation, compare against other solutions (experiments and analysis perhaps?), show that yours is better, discuss why it is better and what you personally have accomplished.

Thanks for the answers, all. In the end it sounds like more work than I’d be willing to go through.

For those who might care, my project is an application development tool for building apps in a way that eliminates (or at least greatly reduces) the impedance mismatch between OOP and RDBMS. I don’t know of any tool/framework that does something similar. I’m not the sole (or even main) designer but I am the principal implementer of the idea.

You are definitely not getting one for an implementation.
Ask yourself if you could publish your work in a major journal as the primary author. If not, then no chance.
My dissertation was on a new language and its compiler, but the important part was the language design, with the implementation details in there to make the dissertation of reasonable size. And I did publish it.
Also, you have to jump through all the PhD hoops, like quals and orals, and the person who is going to sign off on it (and your committee) will want to get their two cents in.

A friend of mine got a PhD in two years based on souping up his undergraduate research project, but that is distinctly unusual. There is no prohibition on using prior work as the basis for a thesis, but a program is not a thesis. A complete description of it, including new algorithms created and used, would have to be part of it. And as suggested upthread, courses and qualifying exams would be required too.

I do know one story of an established mathematician who lacked a PhD (it happens). When some school wanted to give him one (not honorary, but the real thing), they asked for a thesis. Reportedly he opened his file of reprints and said, “Take your pick”.

If “it sounds like more work than I’d be willing to go through” is ever your response to anything, then a PhD is probably not for you.

Hah! Yeah, you’re probably right. I will defend myself by saying that the project is in addition to my full-time job and it has a large footprint (e.g. I’ve written two DSLs, one in Ruby and one in Scala.) Adding a lot of additional work is just too much.

The main reason I’d like to get a PhD is that it opens the possibility of teaching in my future. Once I make my $millions I’ll just have to be content with being an adjunct. :slight_smile:

What about it is different than the zillions of Object-Relational Mappers in existence now? Or Object Databases? These days it’s possible to simply define classes for your OO program and never even think about RDBMS SQL.

Might I inquire, out of curiosity, who this was?

I’m still learning the best way to articulate what we do differently so bear with me. I disagree that one can simply define classes. It works fine for simple apps but for complex data it becomes the way of pain. Unlike almost all ORMs we don’t map an object to a table. Instead we abstract the data definition (i.e. schema) and combine one or more tables into a “logical objects” that are used to manipulate the data. Tables can be (and usually are) included in multiple logical objects. There are a couple of DSLs to make it easier to manipulate instances of the logical objects.

I’ve heard similar legends in other fields. I wonder if they’re true.

Fair question, but I’m afraid I cannot answer it. I’ve known or known of a couple of well-established mathematicians who never got PhDs, but it is obviously none of them: A.S. Besicovitch who escaped from Russia in 1917 (taught me real analysis), Andre Joyal who got into a fight with his grad school and walked out, Andrew Gleason and Garrett Birkhoff, both Harvard fellows. My memory was that it was a Frenchman, perhaps a WW II victim.

To, OP, as already pointed out the answer is no.

To expand - a modern PhD is (except in unusual circumstances) a degree that says you have completed a pretty universally recognised path in research, and have the experience that goes with having traversed that path. The core components of the thesis are there with a purpose - they show that you have gone through the path. You need to show that you have a complete understanding of the state of the art - what has gone before, and how your work in set in this context, and you need to make a contribution to the state of the art. Implicit in this is that you have gained the experience to understand in a higher level how this process works, and could guide someone else through it. The fortitude to complete, and the experience gained in writing the thesis is also part of the journey. (There are a whole mass of ABT - All Bar Thesis - students - who have very often completed the research, but never manage to complete the thesis write up. They are not PhDs.) As Chronos points out - if this is too much trouble for you, a PhD is not in your path.

Group research works are common in academia - the manner in which funding is acquired tends to make this so - but it must always be clear exactly what the contribution to the state of the art any individual student has made, and to be clear which things they did not contribute.

If a thesis in computer science involved writing code, well that is considered in much the same way as lab work in the physical sciences. It isn’t part of the contribution to the state of the art. The results that the experiments may yield are. But the code itself isn’t. Indeed it is possible for massive amounts of code to be written, and basically never mentioned in the final thesis, except in passing. If there are new techniques in coding or implementation, sure. But it is the techniques, not the code that matters.

My own thesis is not a million miles from where the OP is working. I developed a number of new implementation architectures for distributed persistent object stores - the phrase “impedance mismatch” was part of our daily life. (Indeed I am curious as to where the OP came across the phrase, as the etymology is quite specific.) Huge amount of code was written, but my thesis hardly mentioned the main project, but rather concentrated upon the specific techniques and architecture that were novel and a contribution to the state of the art.

The rules for an acceptable thesis vary from university to university. Some will accept a bound set of published papers, but doing this can be fraught, depending upon the attitude of the examiners. Such papers are going to mostly be single author (or primary author), published in peer reviewed publications, and of very high quality. Each paper tends to be a mini thesis, containing all the elements that a proper thesis would contain, but concentrating on a single novel contribution to the state of the art.

In the modern world a PhD is a degree in research, and it is expected that the holder of a PhD is capable of undertaking high quality research without supervision, and is able to supervise and guide others. Whilst this is an unwritten understanding, this the level that any good university will place the bar.