Department of Computer Science

MS in Computer Science

Graduate Program Director: Ahmad Pahlavan Tafti, ahmad.pahlavan@maine.edu

Associate Professors: Boothe, Briggs, MacLeod

Assistant Professors: Tafti

Adjunct Faculty: Bantz, El-Taha, Houser, Viles

The Master of Science in Computer Science program is designed to provide the student with a thorough knowledge of the concepts, theory, and practice of Computer Science as well as develop the student's ability to critically analyze solutions to problems and to make sound professional decisions. Students will be prepared for positions of responsibility and expertise. Graduates may assume positions involving such diverse activities as the design, implementation, and testing of software products; the development of new hardware technology; and the analysis, construction, and management of large-scale computer systems; the quantitative analysis of large data sets for modeling and decision making. Graduates will possess a good foundation for further study in Computer Science.

Who Should Pursue the Master's Degree

For a student with a bachelor's degree in Computer Science, the master's degree offers greater depth in the discipline than what she or he found in undergraduate studies and an opportunity to work on advanced research projects. For students with degrees in other disciplines, including non-scientific disciplines, it offers access to the most dynamic, pervasive technology of our day with its outstanding career options.

Many students from other disciplines have transitioned successfully to our Computer Science graduate program, some even continuing to a doctoral degree and an academic career. Anyone with a background and baccalaureate degree in another discipline who is interested in obtaining a degree in Computer Science should consult with department members to develop a study plan to that end.

Program Policies

In addition to the general policies described in the Academic Policies section, specific policies of these programs are as follows:

Transfer Credit

A maximum of nine credit hours of transfer credit may be used toward the master's degree.

Continuous Enrollment

Every semester a student must either register for a course or for GRS 601 to maintain continuous enrollment. Students who do not maintain continuous enrollment will be dropped from the program and will have to reapply for admission to continue with it. Students who anticipate being unable to take classes may apply in writing for a fixed-term leave of absence. Please see the University's Requirements of Graduate Study in Graduate Academic Policies for more information.

Time Limit

All required courses for the master's degree must be completed within six years prior to graduation. Otherwise, additional coursework must be taken to fulfill program requirements.

 

All master's candidates must complete a minimum of thirty total credits, which must include at least eighteen credits of graduate-level Computer Science courses, excluding COS 598. Students must also take either a six-credit master's thesis, COS 698, or a three-credit master's project, COS 699, and an additional graduate course in Computer Science. At most two approved 400-level Computer Science courses can be used to fulfill the remaining credit requirements. At most two courses from other departments may be used toward the graduate degree. The Computer Science faculty must approve these in advance. Courses taken previously to meet other degree requirements cannot be used in service of the graduate degree.

For each of the following two listed areas, if a student does not have the equivalent of one of the course options given, then she/he must take one and may use it toward fulfillment of the degree requirements.

  • 1. Complete at least one of the following courses in the computer systems area:
    • a. COS 450/550 Operating Systems
    • b. COS 457/558 Database Systems
  • 2: Complete at least one course in the computing theory area:
    • c. COS 485/582 Design of Computing Algorithms


The culminating work in the M.S. program must take one of the following two forms:

  1. COS 698 Master's Thesis: the student works on research under the supervision of a thesis committee composed of faculty members.
  2. COS 699 Master's Project: the student works on an application of Computer Science. This could be in the form of application software, a report on a problem, design of an application, etc. The project may be the solution of a problem at the student's place of employment. In this case, a representative of the employer may serve as an additional committee member.

The first option requires a committee of at least three members. The second option requires a committee of at least one faculty member. Both options require that a project proposal addressing a topic in the student's chosen track be approved by the committee. They also require a written final summary document describing the results of the project. This document must be approved by the committee and published according to Departmental guidelines. Oral presentation of the completed project is encouraged.

To ensure that the degree candidate's studies are focused and lead to a deeper knowledge in an area, she or he must take at least four courses from an approved collection addressing an area of emphasis 

  1. Artificial Intelligence  and Data Analytics
  2. Software Development
  3. Student-Designed Area

For details of the collections associated with the area of emphasis and the process of obtaining approval of a student-designed area, see Departmental guidelines.

Graduate level Computer Science courses are generally restricted to graduate students who have successfully gone through an admissions procedure, but others may take them with permission from the instructor.


COS 522 Computing for Data Science

This class provides a practical introduction to the data science workflow using Python. Successful completion of the course will involve using advanced features of Python, retrieving information in data files, working with numpy and pandas library, visualizing information and completing an end-to-end data science project.  Prerequisite: Open to Juniors, Seniors, or Graduate students who have COS 160 (or equivalent) and at least one college-level Mathematics course in Calculus or Statistics. Cr 4.


COS 527 Computational Text Analytics

This course provides students with a broad exposure to concepts, theories, underlying algorithms, and methodologies in computational text analytics. In this course, students are introduced to the landscape of computational linguistics and text analytics; natural language understanding; topic modeling; sentiment analysis; quantitative and probabilistic explanation in linguistics; word embeddings; and state-of-the-art tools, methods and computational strategies so they can turn text data to information. Prerequisite: (COS 160 Structured Problem Solving: Java or COS 184 Python Programming) and (COS 161 Algorithms in Programming or COS 522 Computing for Data Science). Cr 3.


COS 532 Deep Learning

An introduction to the theory and applications of deep learning. Topics include basic neural networks, convolutional and recurrent networks, and applications in computer vision and language interpretation. Students will learn to design neural network architectures and training procedures via hands-on assignments. Prerequisite: COS 285 or COS 522 or permission of instructor. Cr 4.


COS 540 Computer Networks

An introduction to computer networks. Computer network architecture is described. Other topics include digital data communication, local area networks, wide area networks, internetworks, and the Internet. Specific technologies, including Ethernet and ATM, and protocols, including TCP/IP, will be considered in detail. Normally offered once every two years. Prerequisite: graduate standing. Cr 3.


COS 542 Distributed Systems

An introduction to the design and operation of distributed systems. Topics include client-server models, interprocess communications, RPC, replication and consistency, online transaction processing, error and fault recovery, encryption, and security. Examples will be taken from extant distributed systems. Students will design and implement a distributed system. Prerequisites: COS 450 and COS 460, or their equivalents, or permission of instructor. Cr 3.


COS 544 Software Project Management

Students will learn how to lead and participate in significant software projects. The course will cover the project life cycle, including developing the charter, plans, and justification; outsourcing and other procurement decisions; management of scope, time, cost, quality, personnel, and risk; and the critical role of communications inside and outside the project. Experts from industry will present case studies of success and failure. Prerequisite: previous bachelor's degree and COS 420 or COS 430. Cr 3.


COS 550 Operating Systems

Topics include concurrent processes, process management, I/O, virtual memory, file management, resource scheduling and performance measurement. Prerequisite: graduate standing. Cr 3.

COS 555 Computer Architecture

This course presents topics from research areas in computer architecture as well as advanced and emerging technologies. Possible topics are parallel machines, content addressable memories, VLSI systems. Prerequisite: COS 455. Cr 3.


COS 558 Database Systems

Study of the methods and principles of database management systems (DBMS). Topics addressed include DBMS objectives and architecture, data models, data definition and manipulation languages (in particular, SQL) and providing internet access to databases. The entity-relationship and relational models are emphasized and their use required in a design project. Prerequisite: graduate standing. Cr 3.


COS 565 Software Design and Development

A study of techniques and approaches related to the design and development of large scale software products. Consideration of formal methods for specification, analysis, design, implementation, and testing. A "large" group programming project will be the vehicle for much of the learning in this course. Cr 3.


COS 566 Simulation and Analytical Modeling

The theoretical limitations of analytical modeling will be contrasted with the practical limitations of simulation. The BCMP family of analytical models will be presented along with the computational solutions of these models. The use of simulation will be discussed with regard to a high level language (such as SIM-SCRIPT). Such topics as model verification and evaluation of experimental results will be considered. Cr 3.


COS 570 Seminar: Advanced Topics in Computer Science

Topics vary from year to year. Will include current research, emerging technologies, case studies.  Cr 3.


COS 572 Artificial Intelligence and Data Mining

An introduction to the underlying concepts and applications of intelligent systems. Topics include heuristic search techniques, pattern matching, rule-based systems, computer representations of knowledge, and machine learning and data mining techniques. Course work includes regular labs and larger projects. Students will learn to conduct research in artificial intelligence and will complete a modest research project. Typically offered once every two years. Prerequisite: COS 350 or permission of instructor. Cr 3.


COS 575 Machine Learning

The basic theory, algorithms, and applications of Machine Learning are covered in this course. Students will develop an understanding of learning theory, supervised and unsupervised learning algorithms, and reinforcement learning techniques. The course will also explore recent practical applications of machine learning. Prerequisites: COS 285 or COS 522, or permission of instructor. Cr 4.


COS 576 Advanced Object-Oriented Design

This course considers developing object-oriented, multi-tier, Web-based applications. Topics will include object-oriented design patterns in distributed environments, software components, and software frameworks. The course also has a significant hands-on implementation component, and, after completing this course, students will have practical experience with several leading-edge distributed object technologies, including AJAX, Web Services, Enterprise JavaBeans, JDBC, and Servlets. The course is structured so that students will work in teams to develop a medium-sized, multi-tier application that incorporates several of the technologies mentioned above. Lectures will provide an introduction to the technologies and discuss principled ways to apply these technologies. Normally offered once every two years. Prerequisites: COS 420 or COS 430, or permission of instructor. Cr 4.


COS 582 Design and Analysis of Algorithms

Techniques for designing algorithms, such as divide-and-conquer, greedy method, dynamic programming, and backtracking are emphasized and illustrated. Many problems of practical importance are covered, including minimum spanning tree, single source shortest path, traveling salesperson, and graph search. The concepts of NP-completeness are also considered. Prerequisite: graduate standing. Cr 3.


COS 598 Internship

Students apply their learning to a specific problem in a practical context under faculty and managerial supervision. See Departmental guidelines for more details. Prerequisites: full graduate standing and prior approval of proposal by instructor and Department chair. Cr 1-3.


COS 697 Independent Study

An opportunity for graduate students to pursue areas not currently offered in the graduate curriculum. Cr 3.


COS 698 Master's Thesis

A six-credit thesis that is one of two options for completing the Master's degree requirements.  The thesis project must be supervised by a committee and the project proposal approved in advance. Offered only as a pass/fail course. Prerequisites: full graduate standing and faculty approval. Cr 6.


COS 699 Master's Project

A three-credit project that is one of two options for completing the Master's degree requirements.  The project must be supervised by a committee and the project proposal approved in advance. Offered only as a pass/fail course. Prerequisites: full graduate standing and faculty approval. Cr 3.

Applicant Qualifications

Each student applying for full admission into the Master of Science program must meet the following requirements (conditional admission status may be granted to students who do not fully meet these requirements):

  1. A baccalaureate degree from an accredited institution with a grade point average of at least 3.0 on a 4.0 scale (B average).  

  2. The following USM courses or their equivalent with an average grade of 3.0:

    COS 280 Discrete Mathematics II  
    COS 285 Data Structures

    and for students intending the Artificial Intelligence and Data Analytics track additionally: 

    at least one college-level course in Calculus
    at least one college-level course in Statistics

    Note: Students with little or no computing background may need to take some or all of the following courses that are prerequisites to the courses listed above: MAT 145, COS 160/COS 170, COS 161, COS 250/COS 255

  3. Students whose first language is not English are required to submit TOEFL or IELTS scores, unless  they have received a degree from an English speaking institution (see below).Applicants whose scores are below the acceptable level must demonstrate the language skills requisite for graduate study before they can be admitted.

Applicants meeting the entrance requirements for a master's in Computer Science will be granted regular admission status. Applicants not meeting the entrance requirements of the program may be granted conditional admission status for an initial period during which time the student must make up for missing foundational coursework. The Computer Science Graduate faculty will designate specific undergraduate Computer Science or mathematics courses to ensure that the applicant has the requisite foundational knowledge for success. These courses will carry no credit toward the master's degree and must be successfully completed and must precede the completion of twelve hours of graduate credit. Upon successful completion of the designated preparatory coursework the student may be granted regular admission status.

Application Procedures and Required Materials

Application Deadline

Priority Deadline:

  • February 1 for entry into Fall Semester
  • October 1 for entry into Spring Semester

Applicants are required to provide the following materials: 

  • Application: Online Application
  • Application fee: Waived for all applicants
  • Transcripts: Official transcripts from all colleges or universities attended, excluding the seven campuses of the University of Maine System (UMS transcripts are accessible to USM). A transcript is official when sent directly from the institution.
  • International College transcripts: In addition to an official copy of the transcript, an official evaluation of college-level transcripts from a NACES (National Association of Credential Evaluation Services) approved transcript analysis agency is required
  • Resume: Submit a resume or CV that outlines professional, volunteer, and community experience.
  • Essay: Your essay should discuss your goals in seeking a graduate degree in Computer Science.  Do you have a specific career in mind, or a specific topic area within Computer Science that you wish to explore?  How did you become interested in this (career path or topic area)?
  • References: Supply at least two persons for reference, including contact information for and your relationship with each (teacher, supervisor, advisor, etc.).
  • Optional Official Test scores from the GRE (Graduate Record Examination) are optional.
  • TOEFL or IELTS: Students whose first language is not English are required to take the Test of English as a Foreign Language (TOEFL) or the International English Language Testing System (IELTS) and submit official scores as part of the application process. See additional information below regarding test scores.

Where to send transcripts and application materials

Official transcripts and other supporting documents can be sent to:

Application Processing Center
University of Maine System
P.O. Box 412
Bangor, ME 04402-0412

Colleges and universities that participate in electronic submission of transcripts can send official transcripts to edocs@maine.edu. Resumes, essays, and other documents can also be sent to edocs@maine.edu

For a transcript or recommendation to be considered official, it must be sent by the institution or the person writing the recommendation.

International Applicants

In addition to the standard application materials, international students must also provide the following materials:

  • College transcript evaluation: official course-by-course evaluation of college-level transcripts from a NACES (National Association of Credential Evaluation Services) approved transcript analysis agency
  • Declaration of Finances form accompanied by the appropriate financial documentation
  • International students whose first language is not English are required to take the Test of English as a Foreign Language (TOEFL) or the International English Language Testing System (IELTS) and submit official scores as part of the application process. Only applicants with TOEFL scores of 79 or higher on the internet-based test, 550 or higher on the paper-based test, or 213 or higher on the computer-based test; or IELTS scores of 6.5 or higher will be considered for admission to a graduate program.

Applicants whose first language is not English

Students whose first language is not English are required to take the Test of English as a Foreign Language (TOEFL) or the International English Language Testing System (IELTS) and submit official scores as part of the application process. Only applicants with TOEFL scores of 79 or higher on the internet-based test, 550 or higher on the paper-based test, or 213 or higher on the computer-based test; or IELTS scores of 6.5 or higher will be considered for admission to a graduate program.

Where to send transcripts and application materials

If applying through the USM Graduate Application, official transcripts and other supporting documents can be sent to:

Application Processing Center
University of Maine System
P.O. Box 412
Bangor, ME 04402-0412

If applying through the Centralized Application Service for Occupational Therapy Programs (OTCAS), please submit all materials directly to OTCAS.

OTCAS Transcript Processing Center
P.O. Box 9120
Watertown, MA 02471

Colleges and universities that participate in electronic submission of transcripts may send official transcripts to edocs@maine.edu.

Resumes, essays, and other required documents may also be sent to edocs@maine.edu.

For a transcript or recommendation to be considered official, it must be sent by the institution or the person writing the recommendation.