Nov 29, 2021  
2008-2009 Graduate Catalog 
2008-2009 Graduate Catalog [ARCHIVED CATALOG]

Computer Science

Return to {$returnto_text} Return to: Graduate Programs and Certificates

The Department of Computer Science offers the Doctor of Philosophy (Ph.D.) and the Master of Science (M.S.) degrees in computer science. 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 be addressed as “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.

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 as well as a sound basis for Ph.D. work for those students interested in further study.


Consideration for admission is given to highly-qualified and motivated individuals on the basis of scholastic preparation and intellectual capacity. Admission requirements are typically met by individuals with an undergraduate computer science degree, although other applicants will also be considered. Applicants may also be admitted provisionally who do not meet the requirements; such individuals will be required to take selected undergraduate courses in addition to the regular required graduate course work.

Application to the program should be made as early as possible before the semester for which admission is sought. Most decisions about admission are made by April 1 for Fall admission and November 1 for Spring admission.

Prospective students should consult the admissions section of this catalog for a complete list of the requirements of the Graduate School. Admission requirements include:

  1. The candidate will have completed a bachelor’s degree at a regionally-accredited university or four-year college.
  2. Successful applicants will usually have a grade point average (GPA) of at least 3.5 (on a 4.0 scale). No applicant will be considered who has less than a 3.0 or less than a “B” average in undergraduate computer science courses.
  3. All GRE scores required by the Graduate School. We do not require the subject test in computer science, although it may be submitted, if desired.
  4. International students will need to submit TOEFL scores.

Students are expected to have completed the following courses or their equivalent at the time of admission:

  1. COS 220 - Introduction to Computer Science I and
    COS 221 - Advanced C++ Programming
    COS 125 - Introduction to Problem Solving Using Computer Programming and COS 225 - Introduction to Object-Oriented Programming and Design
  2. COS 230 - Computer Architecture and Assembly Language
    COS 335 - Computer Organization and Architecture
  3. COS 250 - Discrete Structures
  4. One year of calculus or a semester of calculus and a semester of linear algebra.
  5. One semester of statistics.

Students who have not completed one or more of these courses can only be considered for conditional admission. Students conditionally admitted are not eligible for financial aid.

In addition, students are expected to have completed the following courses or their equivalent at the time of admission:

  1. COS 301 - Programming Languages
  2. COS 350 - Data Structures and Algorithms
  3. COS 431 - Operating Systems

Students who have not completed one or more of these can be considered for provisional admission. These students can still qualify for financial aid. No credit toward the Ph.D. degree will be given for any of the above courses. The student must complete each of these courses with at least a “B” grade before he or she can assume regular status in the program.

Requirements for the Ph.D. Degree

The content of the Ph.D. program is designed to prepare the students to conduct research in computer science and to take positions in academia and industry. Students are required to carry out in-depth, independent, publishable research that is an original contribution in the field. They will be involved in research soon after entering the program.

The Ph.D. program requires 58 semester hours in an approved program of course work. These hours are divided as follows:

  • 21 hours of breadth requirements
  • 18 hours of thesis (dissertation) credit
  • 1 hour of Ph.D. orientation seminar
  • 18 hours of approved electives

Note that these requirements are currently under review and may change; in particular, the number of elective hours has not yet been finalized.

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

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

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 can 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 course as stated.

A 1-credit hour orientation course is also required during the first semester 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 the student will be introduced to the Department and to the 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 outside the Department may be substituted with the approval of the student’s advisory committee. It is expected that these courses will be at or above the 500 level and that they will be related to or supportive of the student’s research.

In addition to course work, the student will also be required to pass a comprehensive examination.  The comprehensive examination consists in part of a written breadth exam that tests the student’s mastery of computer science at the graduate level.  In addition, all of the student’s progress up to the time of the breadth exam will be reviewed by the Graduate Committee, and an assessment will be made as to the student’s likelihood of successfully completing the Ph.D. This, too, will be part of the comprehensive exam.

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. A committee of 5 faculty members, including the student’s advisor, guides the student during his or her work on the dissertation. Upon completion, the dissertation is defended at a public presentation.

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. The thesis requires substantially more work by the student than the project, and 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, with additional course work. This option best prepares students for advanced jobs in industry, although it certainly does not rule out a career in R&D or further graduate work.

Both options require thirty (30) credit hours of course work at the 400 level and above. This includes:

  1. Required core courses. The required core courses, which must be passed with a grade of B or better, are: Software Engineering (COS 520), Theoretical Computer Science (COS 550), and Algorithms (COS 554).
  2. Research seminar. Each year, the student is required to register for one credit hour of Research Seminar (COS 600). A maximum of three hours of COS 600 can be counted toward the M.S. degree.
  3. Six thesis credit hours (COS 699) or three project credit hours (COS 599).
  4. Approved elective courses.

Students taking the thesis option are required to take at least 12 credit hours of electives at the 500 level or above. Students taking the project option are required to take at least 15 credit hours of computer science courses at the 500 level or above. Upon approval by the student’s advisory committee, highly-related courses from other departments may be substituted for up to 6 of the remaining hours.

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 will give a public presentation of the project.

The official description of the requirements and other policies is available as a handbook from the Department.

Financial Assistance

Financial assistance is available on a competitive basis in the form of nine-month teaching assistantships and research assistantships. Teaching assistants help faculty members with classes. Research assistants help faculty members conduct research. The Graduate Committee meets to consider all applicants when deciding to whom to award the assistantships.


The Department has substantial computing facilities, including two PC labs and a networking/cybersecurity lab. The Department also has access to the University’s mainframe computer and PC and Mac clusters as well as to various supercomputer centers. The University is an Internet 2 site, giving it very high-speed Internet access. Buildings are wired for high-speed Ethernet, and wireless access is available over much of the campus.

The Department’s research is organized around several laboratories, each run by one or more professors. The labs allow students working on related research to interact closely with each other and with their advisors. At the time of writing, the Department has laboratories focusing on: artificial intelligence (multiagent systems, intelligent agent control, natural language processing and interagent communication); high-performance computing; databases (autonomous and semistructured databases); software engineering; computational modeling; learning tools and environments for K-12; and homeland security.

Opportunities for Interdisciplinary Work

Faculty in the Department often work with faculty in other departments and researchers at other institutions (e.g., The Jackson Laboratory, Argonne National Laboratory) on interdisciplinary work. Students can become involved in this research based on their interests and the faculty members’ needs.

Additional Information

Additional information is available from the Department via e-mail (, telephone (207-581-3941), or FAX (207-581-4977). The Graduate Coordinator can be contacted via the Department office or by e-mail ( Individual faculty members can be reached via the e-mail addresses below for specific questions about their research. Note that as funding and admission decisions are made by the Graduate Committee, individual faculty members will not generally be able to address those concerns. Interested students should also see the Department’s Web site,

Graduate Faculty

Sudarshan S. Chawathe, Ph.D. (Stanford University, Computer Science, 1999). Assistant Professor. Autonomous and semistructured databases. (

Phillip M. Dickens, Ph.D. (University of Virginia, Computer Science, 1993), Assistant Professor. High-performance computing, grid computing, distributed systems, distributed simulation, networking protocols, performance modeling. (

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

Laurence J. Latour, Ph.D. (Stevens Institute of Technology, Computer Science, 1985), Associate Professor. Database systems, software engineering, programming languages and environments, software reusability, software specification techniques, concurrency reliability. (

George Markowsky, Ph.D. (Harvard, Mathematics, 1973), Professor. Theoretical computer science, dis­crete structures, lattice theory, algorithms, devices for the handicapped, PC applications, applications of computer science in biology. (

Elise H. Turner, Ph.D. (Georgia Institute of Technology, Computer Science, 1989), Associate Professor and Chair. Artificial intelligence, natural language processing, interaction of problem solving and communication, cooperative distributed problem solving, multiagent systems. (

Roy M. Turner, Ph.D. (Georgia Institute of Technology, Computer Science, 1989), Associate Professor and Graduate Coordinator. Artificial intelligence (problem solving, planning, context­-sensitive reasoning), cooperative distributed problem solving, multiagent systems, control of autonomous underwater vehicles, modeling biological systems, applications of AI to biology. (

Return to {$returnto_text} Return to: Graduate Programs and Certificates