Aug 13, 2022  
2019-2020 Graduate Catalog 
2019-2020 Graduate Catalog [ARCHIVED CATALOG]

Computer Science

Return to {$returnto_text} Return to: Graduate Programs, Certificates, Specializations, Emphases

The School of Computing and Information Science offers the Master of Science (M.S.) and the Doctor of Philosophy (Ph.D.) degrees in computer science. The M.S. degree provides an intensive course of study in areas of faculty research interest. It provides the student with an excellent understanding of computer science that provides a solid foundation for many advanced jobs in the field. The M.S. degree with a thesis is a required step for obtaining the Ph.D. degree.

The Ph.D. is granted to highly-qualified students who have completed a rigorous course of study and research training resulting in the preparation and defense of a dissertation describing original computer science research. The Ph.D. is the highest academic degree. It confers the right to use the title “doctor” and opens the door to rewarding and fulfilling careers in academia and industry.

The doctoral student will obtain a broad and deep graduate-level background in computer science, with particular depth in a chosen area of specialization. The student will engage in research from almost the beginning of the program and will receive extensive training in computer science research over the course of the program under the direction of a faculty advisor.

Requirements for the M.S. Degree

An M.S. student has the option of preparing and defending a master’s thesis or completing a master’s project. The thesis option is the traditional route to an M.S. degree, and it is required of all students who want to go on to the Ph.D. Although the thesis requires substantially more work by the student than the project, it allows a more in-depth examination of a problem. The thesis option prepares the student for a career in research and development or for further graduate work in a Ph.D. program. The master’s project is more targeted and applied than the thesis and has more course work. This option is primarily for students seeking jobs in industry.

Both options require thirty (30) credit hours of course work at the 500 level and above:

  1. Required core courses (12 hours; must be passed with a grade of B or better):
    1. COS 520 - Software Engineering
    2. COS 550 - Theoretical Computer Science
    3. COS 554 - Algorithms
  2. COS 699 - Master’s Thesis (6 hours; thesis option) OR COS 599 - Master’s Project (3 hours; project option).
  3. Approved electives (12 hours for thesis option, 15 hours for the project option; 500-level or above).

For students choosing to pursue the thesis option, as per Graduate School requirements, he or she will form an advisory committee consisting of a minimum of three members of the computer science graduate faculty. Those pursuing the project option need only be advised by one member of the computer science graduate faculty (i.e., his or her advisor) but is encouraged to involve at least one other faculty member.

Upon approval by the student’s advisory committee, highly-related courses from outside computer science at the 500 level or above may be substituted for up to 6 of the elective hours. Students who are interested in continuing on to the Ph.D. are encouraged to complete as many of the Ph.D. breadth courses as will fit into their program. These courses are listed in the description of the Ph.D. program.

For students choosing the thesis option, a thesis must be prepared as required by the Graduate School and defended publicly. For the project option, the student must give a public presentation of the project.

Requirements for the Ph.D. Degree

The Ph.D. program is designed to prepare the student to conduct research in computer science and to hold positions in academia and industry. The student is required to carry out in-depth, independent, publishable research that is an original contribution in the field. He or she will be involved in research soon after entering the program.

There are several steps for earning a Ph.D.:

  • Coursework, both required courses and electives
  • Completion of the requirements for the Doctoral Comprehensive Examination (see below)
  • Admission to candidacy
  • Preparation and successful defense of a dissertation

At all stages of his or her work, the student is guided by their advisor and an advisory committee. The student is urged to choose an advisor as early in the program as possible. The advisor must be a member of the computer science graduate faculty. He or she will help the student form their advisory committee. The Graduate School requires that the advisory committee consist of five (or more) members, including the student’s advisor, and it highly recommends that one committee member be selected from the graduate faculty of another program than the student’s. The computer science graduate faculty allows this external member to be from another university as well.


The student is required to complete 58 credit hours in an approved program of study. The program of study will be developed in consultation with the student’s advisory committee and will consist of:

  • Ph.D orientation seminar (1 hour)
  • Breadth requirements (21 hours)
  • Electives (12 hours)
  • M.S. Thesis credits (6 hours; see the Comprehensive Examination, below)
  • Ph.D. Dissertation credits (18 hours)

The breadth requirements are designed to give the student a broad, graduate-level background in computer science. The required courses are:

  • COS 515 - Scientific Modeling
  • COS 520 - Software Engineering
  • COS 540 - Computer Networks
  • COS 550 - Theory of Computation
  • COS 554 - Algorithms
  • COS 570 - Artificial Intelligence
  • COS 580 - Database Management Systems

Students admitted from the University of Maine who have taken one or more of these courses as an undergraduate must take an approved substitute course in those areas. Students from elsewhere who have had similar courses may ask for a waiver for one or more breadth courses and provide the Graduate Coordinator with sufficient documented evidence of expertise in the area. This will be evaluated on a case-by-case basis. Except in rare cases the student will be required to take the breadth courses as stated.

The 1-credit hour orientation course should generally be taken the first semester that the student is in the program. During this course, the student will be introduced to what it means to be a Ph.D. student, and he or she will be introduced to the program, the computer science graduate faculty, and their research.

The student will also take 18 hours of approved computer science electives at or above the 500 level. Up to 9 hours of courses at or above the 500-level outside computer science may be substituted with the approval of the student’s advisory committee. (In exceptional cases, if a course that is strongly related or supports the student’s program of study is only offered at the 400 level, then the student may petition his or her advisory committee for approval to count it as an elective.)


Comprehensive Examination

The comprehensive exam’s purpose is to assess the student’s mastery of computer science and his or her ability to do research in the field. The student’s advisory committee determines whether the student has met these requirements, and thus has passed the exam. In addition to the student’s overall record to date, the evidence presented to the committee is expected to be the preparation and successful defense of a master’s thesis in computer science during the Ph.D. program.

In exceptional cases and with the approval of the student’s advisory committee and the computer science graduate faculty as a whole, a student may petition to substitute peer-reviewed, published work in lieu of the master’s thesis. In this case, the student may substitute additional Ph.D. Dissertation credits for the Master’s Thesis credit hours required.


Admission to Candidacy

Once the student has completed the orientation seminar, all required breadth requirements, and the comprehensive examination, then by a vote of the computer science graduate faculty he or she can be admitted to candidacy for the degree.



The student is required to prepare and defend a dissertation. The dissertation is a major written work that describes the student’s original, publishable contribution to the field of computer science research. The student’s advisory committee guides the student’s work on the dissertation. Upon completion, the dissertation is defended at a public presentation. Success of the defense is determined by the student’s committee.


Graduate Faculty

Sudarshan S. Chawathe, Ph.D. (Stanford University, Computer Science, 1999). Associate Professor. Areas of interest: autonomous and semistructured databases. (

Phillip M. Dickens, Ph.D. (University of Virginia, Computer Science, 1993), Associate Professor. Areas of interest: high-performance computing, grid computing, distributed systems, distributed simulation, networking protocols, performance modeling. (

James L. Fastook, Ph.D. (University of Maine, Physics, 1975), Professor. Areas of interest: glacial modeling, finite elements, non linear differential equations, vector and parallel processing, supercomputers. (

Torsten Hahmann, Ph.D. (University of Toronto, Computer Science, 2013). Assistant Professor. Areas of interest: artificial intelligence (knowledge representation, logic, automated reasoning), spatial informatics, spatial AI, knowledge and ontology engineering, theoretical computer science. (

Roy M. Turner, Ph.D. (Georgia Institute of Technology, Computer Science, 1989), Associate Professor. Areas of interest: artificial intelligence (problem solving, planning, context -sensitive reasoning), cooperative distributed problem solving, multiagent systems, control of autonomous underwater vehicles, computational ecology, applications of AI to biology. (

Return to {$returnto_text} Return to: Graduate Programs, Certificates, Specializations, Emphases