Undergraduate Degree Programs

The School of Computing and Information Science offers both the Bachelor of Science (B.S.) and Bachelor of Arts (B.A.) degrees in computer science.  The required course work in computer science provides the student with an understanding of the basic areas of computer science: structure of programming languages, operating systems, software engineering, algorithms and data structures, computer architecture, and the theory of computer science. Electives allow students to study additional topics such as artificial intelligence, databases, high-performance computing, networks, and cybersecurity. Students have opportunities for field experiences/internships, independent study, and undergraduate research in one of our laboratories. A capstone experience allows students to use their accumulated knowledge of the field in project design and implementation.

Computer Science graduates are well-positioned to secure rewarding, high-paying jobs in the computer industry that are relatively immune to outsourcing. In addition, graduates can also apply their knowledge wherever computers are used, including industry and business, research institutions, educational institutions, and government laboratories and agencies. The B.S. and B.A. degrees both provide a rigorous emphasis on computer science along with a strong liberal arts education. Graduates of the School of Computing and Information Science are also well prepared to enter graduate school for further study in computer science or other related fields or, with some additional preparation, to enter a professional school.

The School of Computing and Information Science has several research laboratories focusing on such areas as artificial intelligence and machine learning, database systems, high-performance computing, cybersecurity, data science, computer vision, visualization, and computer modeling of physical processes. Most of these laboratories routinely include undergraduates who assist the professors and the graduate students in their research. Students are mentored by professors and graduate students, and they get a good idea of what research and graduate school is like. In addition to the interesting and valuable experience gained, the students are often paid and/or co-author research papers.

On this page, you can find a description of our:

Bachelors Degrees

The School offers the Bachelor of Science (B.S.) and Bachelor of Arts (B.A) degrees in computer science.

 The B.S. degree provides a comprehensive foundation in computer science and prepares the student for a rewarding career in industry, business, government, or anywhere else that computing knowledge and skill is needed.  It also provides solid foundation for graduate work in computer science and computing-related fields.  The B.S. degree is accredited by the Computing Accreditation Commission of ABET.

The B.A. degree gives the student a strong foundation in computer science while providing more flexibility for coursework outside the major. Like the B.S., it also prepares the student for a rewarding career in computing or for graduate work.

Minimum hours needed for graduation for BS CS and BA CS Degrees: 120 degree hours. Required GPA: 2.00. Required Major GPA: 2.00. At least 18 hours of computer science courses numbered 300 or above must be taken at the University of Maine in Orono. All students must satisfy the general education requirements of both the College of Liberal Arts and Sciences and the University. A University of Maine student who wishes to take a course elsewhere for the degree must have the course approved in advance by the department and the college.

Bachelor of Science Degree in Computer Science

[Note: This description differs slightly from that in the catalog, as some errors have been corrected.  This updated description will be in a future catalog revision; however, the catalog always takes precedence over other descriptions.]

Degree Requirements

All courses required by the Computer Science Program must be taken for a grade; courses taken pass/fail will not count. (An exception to this policy may be in effect due to the COVID-19 pandemic; see umaine.edu/return for further information.)

Courses marked with an asterisk (*) below must be completed with a grade of “C” or better in each. A grade of C- is insufficient.

COMPUTER SCIENCE COURSES (53 credit hours):
      • COS 100 Success in Computer Science (1 cr.)
      • *COS 125 Introduction to Problem Solving using Computer Programming (4 cr.)
      • COS 135 Applied C Programming (3 cr.)
      • *COS 140 Foundations of Computer Science (3 cr.)
      • *COS 225 Object-Oriented Design and Data Structures (3 cr.)
      • COS 226 Introduction to Data Structures (3 cr.)
      • COS 235 Computer Architecture (3 cr.)
      • COS 301 Programming Languages (3 cr.)
      • COS 331 Operating Systems (3 cr.)
      • COS 397 Computer Science Capstone 1 (3 cr.)
      • COS 420 Introduction to Software Engineering (3 cr.)
      • COS 430 Introduction to Cybersecurity (3 cr.)
      • COS 490 Computers, Ethics and Society (3 cr.)
      • COS 497 Computer Science Capstone 2 (3 cr.)
      • Twelve additional credit hours from courses  COS 3XX, COS 4XX, and COS 5XX (or approved substitutes).
MATHEMATICS COURSES (15 credit hours):
      • *MAT 126 – Calculus I (4 credits)
      • MAT 127 – Calculus II (4 credits)
      • COS 250 – Discrete Structures (4 credits)
      • Statistics: one of STS 235 – Introduction to Statistical Methods (3 credits), STS 332 – Statistics for Engineers (3 credits), or STS 435 – Introduction to Mathematical Statistics (3 credits)
CAPSTONE EXPERIENCE:

To meet the capstone requirement, undergraduate computer science students must use their accumulated knowledge of the field in addressing a particular problem. Students meet the capstone requirement by completing COS 397 and COS 497.

ENGLISH (6 credit hours):
      • *ENG 101 College Composition (3 cr.)
      • ENG 317 Business and Technical Writing (3 cr.)
SCIENCE REQUIREMENT (14 credit hours):

This must include a two-semester laboratory science sequence from either BIO 100/200 or BIO 100/208 or CHY 121/123, CHY 122/124 or ERS 101/102 or PHY 121/122 for a total of 8 hours, and an additional 6 hours of science courses from any of the following areas:

      • Astronomy (AST; except AST 114)
      • Biological Sciences (BIO)
      • Molecular and Biomedical Sciences (BMB; BMB 280 and above)
      • Chemistry (CHY; CHY 121 and above)
      • Earth Sciences (ERS)
      • Marine Science (SMS)
      • Physics (PHY; PHY 111 and above)*
      • Wildlife Ecology (WLE; WLE 200 and above)

         * Note: you cannot count both PHY 111/112 and PHY 121/122

FURTHER GENERAL EDUCATION REQUIREMENTS:

The UMaine General Education course requirements may be found under Student Records (https://studentrecords.umaine.edu/) → Academics (top menu) → Gen Ed Requirements. Since a single course may cover more than one Human Values and Social Context requirement, you may reduce your course load requirements by making thoughtful selections.

Model Curricula for the B.S. in Computer Science

We provide here two model curricula, one for students who are calculus-ready and one for students who are not.  Calculus-readiness is assessed by the student having achieved a grade of C or better in MAT 122 Pre-Calculus; or no grade record in MAT 122 and a passing score on Part 3 of the Math Placement Exam (a score of 76 or higher on the ALEK exam) to allow you to enter MAT 126 or higher.   If you are calculus-ready, Model A is the model curriculum that applies to you; if not, then see Model B.

Most students will not follow the model curriculum exactly.  Electives may be moved around and some adjustments might need to be made based on credit hours of courses taken (e.g.,  if you take a 4 credit statistics course instead of a 3 credit course). Please be aware: (1)  that certain students on financial aid must take a minimum of 15 credits per semester; (2) that sufficient hours must be included to reach the University degree minimum of 120; and (3) all School, College, and University requirements must be met.  You should discuss your planned schedule and progress with your assigned academic advisor during registration times each semester.

The term “General education” below should be interpreted to mean a course helping to satisfy the Human Values and Social Context portion of the General Education requirements. The other portions are satisfied by our own requirements for the degree.

NOTE: All courses required by the Computer Science Program must be taken for a grade; courses taken pass/fail will not count. (An exception to this policy may be in effect due to the COVID-19 pandemic; see umaine.edu/return for further information.) Courses marked with an asterisk (*) below must be completed with a grade of “C” or better in each. A grade of C- is insufficient. 

Model A: Suggested four-year plan for those BS students taking Calculus I or higher in their first semester

FIRST YEAR (31 credits)

    FALL SEMESTER (15 credits):

  • COS 100: Success in computer science (1 credit)
  • *COS 125: Introduction to problem solving using computer programming (4 credits)
  • *COS 140: Foundations of computer science (3 credits)
  • *MAT 126: Calculus 1 (4 credits)
  • *ENG 101 or general education (3 credits)

    SPRING SEMESTER (16 credits):

  • COS 135: Applied C programming (3 credits)
  • *COS 225: Object-oriented design, programming, and data structures (3 credits)
  • MAT 127: Calculus 2 (4 credits)
  • *ENG 101 or general education (3 credits)
  • General education  (3 credits)

SECOND YEAR (31 credits)

    FALL SEMESTER (16 credits):

  • COS 226: Introduction to data structures and algorithms (3 credits)
  • COS 250: Discrete structures (4 credits)
  • Science (3 credits)
  • General education (3 credits)
  • Elective (3 credits)

SPRING SEMESTER (15 credits)

  • COS 235: Computer architecture (3 credits)
  • COS 420: Introduction to software engineering (3 credits)
  • Science (3 credits)
  • Statistics (STS 235, 332, or435; 3 credits)
  • General education (3 credits)

THIRD YEAR (32 credits)

FALL SEMESTER (16 CREDITS)

  • COS 331: Operating systems (3 credits)
  • COS elective (3 credits)
  • ENG 317: Business and technical writing (3 credits)
  • Lab science I (4 credits)
  • General education (3 credits)

SPRING SEMESTER (16 CREDITS)

  • COS 301: Programming languages (3 credits)
  • COS 430: Introduction to cybersecurity (3 credits)
  • COS elective (3 credits)
  • Lab science II (4 credits)
  • General education (3 credits)

FOURTH YEAR (27 CREDITS)

FALL SEMESTER (15 credits)

  • COS 397: Computer science Capstone 1 (3 credits)
  • COS 490: Computers, ethics, and society (3 credits)
  • COS elective (3 credits)
  • Elective (3 credits)
  • Elective (3 credits)

SPRING SEMESTER (12 credits)

  • COS 497: Computer science Capstone 2 (3 credits)
  • COS elective (3 credits)
  • Elective (3 credits)
  • Elective (3 credits)

Model B: Suggested four-year plan for those BS students NOT taking Calculus I or higher in their first semester

FIRST YEAR (32 credits)

    FALL SEMESTER (15 credits):

  • COS 100: Success in computer science (1 credit)
  • COS 121: Coding for everyone or COS 120: Introduction to programming I (4 credits)
  • *COS 140: Foundations of computer science (3 credits)
  • MAT 122: Pre-calculus (4 credits)
  • *ENG 101 or general education (3 credits)

    SPRING SEMESTER (17 credits):

  • *COS 125: Introduction to problem solving using computer programming (4 hours)
  • COS 135: Applied C programming (3 credits)
  • *MAT 126: Calculus 1
  • *ENG 101 or general education (3 credits)
  • General education  (3 credits)

SECOND YEAR (32 credits)

    FALL SEMESTER (17 credits):

  • *COS 225: Object-oriented design, programming, and data structures (3 credits)
  • COS 250: Discrete structures (4 credits)
  • MAT 127: Calculus 2 (4 credits)
  • General education (3 credits)
  • General education  (3 credits)

SPRING SEMESTER (15 credits)

  • COS 226: Introduction to data structures and algorithms (3 credits)
  • COS 235: Computer architecture (3 credits)
  • Statistics (STS 235, 332, or435; 3 credits)
  • Science (3 credits)
  • General education (3 credits)

THIRD YEAR (32 credits)

FALL SEMESTER (16 CREDITS)

  • COS 331: Operating systems (3 credits)
  • COS elective (3 credits)
  • ENG 317: Business and technical writing (3 credits)
  • Lab science I (4 credits)
  • General education (3 credits)

SPRING SEMESTER (16 CREDITS)

  • COS 301: Programming languages (3 credits)
  • COS 420: Introduction to software engineering (3 credits)
  • COS elective (3 credits)
  • Lab science II (4 credits)
  • General education (3 credits)

FOURTH YEAR (27 CREDITS)

FALL SEMESTER (15 credits)

  • COS 397: Computer science Capstone 1 (3 credits)
  • COS 490: Computers, ethics, and society (3 credits)
  • COS elective (3 credits)
  • Science (3 credits)
  • Elective (3 credits)

SPRING SEMESTER (12 credits)

  • COS 497: Computer science Capstone 2 (3 credits)
  • COS 430: Introduction to cybersecurity (3 credits)
  • COS elective (3 credits)
  • Elective (3 credits)

Bachelor of Arts Degree in Computer Science

Degree Requirements

All courses required by the Computer Science Program must be taken for a grade; courses taken pass/fail will not count.

Courses marked with an asterisk (*) below must be completed with a grade of “C” or better in each. A grade of C- is insufficient.

COMPUTER SCIENCE COURSES (50 credit hours):

      • COS 100 – Success in Computer Science (1 credit)
      • *COS 125 – Introduction to Problem Solving Using Computer Programming (4 credits)
      • COS 135 – Applied C Programming (3 credits)
      • *COS 140 – Foundations of Computer Science (3 credits)
      • *COS 225 – Object-Oriented Design, Programming and Data Structures (3 credits)
      • COS 226 – Introduction to Data Structures (3 credits)
      • COS 235 – Computer Architecture (3 credits)
      • COS 301 – Programming Languages (3 credits)
      • COS 331 – Operating Systems (3 credits)
      • COS 397 – Computer Science Capstone 1 (3 credits)
      • COS 420 – Introduction to Software Engineering (3 credits)
      • COS 430 – Introduction to Cybersecurity (3 credits)
      • COS 490 – Computers, Ethics and Society (3 credits)
      • COS 497 – Computer Science Capstone 2 (3 credits)
      • Nine additional credit hours from courses COS 3XX, COS 4XX and COS 5XX or approved substitutes.

MATHEMATICS  (15 hours):

      • *MAT 126 – Calculus I (4 credits)
      • MAT 127 – Calculus II (4 credits)
      • COS 250 – Discrete Structures (4 credits)
      • Statistics: one of STS 235 – Introduction to Statistical Methods (3 credits), STS 332 – Statistics for Engineers (3 credits), or STS 435 – Introduction to Mathematical Statistics (3 credits)

Science  (7-8 hours):

The BA program has no additional science requirements beyond those specified in the University’s general education requirements.  This means the student must complete two courses in the physical or biological sciences, at least one of which must have a laboratory.

CAPSTONE EXPERIENCE:

To meet the capstone requirement for the B.A., students must use their accumulated knowledge of the field in addressing a particular problem. Students may meet the capstone requirement through completing COS 397 and COS 497.

ENGLISH (6 credit hours):

      • *ENG 101 – College Composition (3 credits)
      • ENG 317 – Business and Technical Writing (3 credits)

MINOR:

All B.A. students in the College of Liberal Arts and Sciences must complete an approved minor outside the major.

Model Curriculum for the B.A. in Computer Science

We provide here two model curricula, one for students who are calculus-ready and one for students who are not.  Calculus-readiness is assessed by the student having achieved a grade of C or better in MAT 122 Pre-Calculus; or no grade record in MAT 122 and a passing score on Part 3 of the Math Placement Exam (a score of 76 or higher on the ALEK exam) to allow you to enter MAT 126 or higher.   If you are calculus-ready, Model A is the model curriculum that applies to you; if not, then see Model B.

These curricula illustrate two possible ways of meeting the BA degree requirements within four years. Most students will not follow the model curriculum exactly.  Electives may be moved around and some adjustments might need to be made based on credit hours of courses taken (e.g.,  if you take a 4 credit statistics course instead of a 3 credit course). Please be aware: (1)  that certain students on financial aid must take a minimum of 15 credits per semester; (2) that sufficient hours must be included to reach the University degree minimum of 120; and (3) all School, College and University requirements must be met.  You should discuss your planned schedule and progress with your assigned academic advisor during registration times each semester.

The term “General education” below should be interpreted to mean a course helping to satisfy the Human Values and Social Context portion of the General Education requirements. The other portions are satisfied by our own requirements for the degree.  “Electives” are free electives, but you should consider using them to meet the requirements of your minor if needed.

Note that this assumes that none of the general education classes will count for your minor or vice versa, which would be unusual.  This total can be reduced by the judicial selection of minor and general education courses that can count for both.  We suggest deciding on your minor early and mapping out the courses required so that you can determine which general education requirements remain.

NOTE: All courses required by the Computer Science Program must be taken for a grade; courses taken pass/fail will not count.  (An exception to this policy may be in effect due to the COVID-19 pandemic; see umaine.edu/return for further information.) Courses marked with an asterisk (*) below must be completed with a grade of “C” or better in each. A grade of C- is insufficient. 

Model A: Suggested four-year plan for those BA students taking Calculus I or higher in their first semester

FIRST YEAR (31 credits)

    FALL SEMESTER (15 credits):

  • COS 100: Success in computer science (1 credit)
  • *COS 125: Introduction to problem solving using computer programming (4 credits)
  • *COS 140: Foundations of computer science (3 credits)
  • *MAT 126: Calculus 1 (4 credits)
  • *ENG 101 or general education (3 credits)

    SPRING SEMESTER (16 credits):

  • COS 135: Applied C programming (3 credits)
  • *COS 225: Object-oriented design, programming, and data structures (3 credits)
  • MAT 127: Calculus 2 (4 credits)
  • *ENG 101 or general education (3 credits)
  • General education  (3 credits)

SECOND YEAR (31-32 credits)

    FALL SEMESTER (16 credits):

  • COS 226: Introduction to data structures and algorithms (3 credits)
  • COS 250: Discrete structures (4 credits)
  • General education (3 credits)
  • General education (3 credits)
  • Minor (3 credits)

SPRING SEMESTER (15-16 credits)

  • COS 235: Computer architecture (3 credits)
  • COS 420: Introduction to software engineering (3 credits)
  • Science (3 or 4 credits; see above)
  • Statistics (STS 235, 332, or435; 3 credits)
  • General education (3 credits)

THIRD YEAR (30-31 credits)

FALL SEMESTER (15-16 CREDITS)

  • COS 331: Operating systems (3 credits)
  • COS elective (3 credits)
  • ENG 317: Business and technical writing (3 credits)
  • Minor (3 credits)
  • Science (3 or 4 credits; see above)

SPRING SEMESTER (15 CREDITS)

  • COS 301: Programming languages (3 credits)
  • COS 430: Introduction to cybersecurity (3 credits)
  • Minor (3 credits)
  • Minor (3 credits)
  • General education (3 credits)

FOURTH YEAR (30 CREDITS)

FALL SEMESTER (15 credits)

  • COS 397: Computer science Capstone 1 (3 credits)
  • COS 490: Computers, ethics, and society (3 credits)
  • COS elective (3 credits)
  • Minor (3 credits)
  • Minor/Elective (3 credits)

SPRING SEMESTER (15 credits)

  • COS 497: Computer science Capstone 2 (3 credits)
  • COS elective (3 credits)
  • Minor (3 credits)
  • Minor/Elective (3 credits)
  • Elective (3 credits)

Model B: Suggested four-year plan for those BA students NOT taking Calculus I or higher in their first semester

FIRST YEAR (32 credits)

    FALL SEMESTER (15 credits):

  • COS 100: Success in computer science (1 credit)
  • COS 121: Coding for everyone or COS 120: Introduction to programming I (4credits)
  • *COS 140: Foundations of computer science (3 credits)
  • MAT 122: Pre-calculus (4 credits)
  • *ENG 101 or elective (3 credits)

    SPRING SEMESTER (17 credits):

  • *COS 125: Introduction to problem solving using computer programming (4 hours)
  • COS 135: Applied C programming (3 credits)
  • *MAT 126: Calculus 1
  • *ENG 101 or elective (3 credits)
  • General education  (3 credits)

SECOND YEAR (32 credits)

    FALL SEMESTER (17 credits):

  • *COS 225: Object-oriented design, programming, and data structures (3 credits)
  • COS 250: Discrete structures (4 credits)
  • MAT 127: Calculus 2 (4 credits)
  • General education (3 credits)
  • Minor  (3 credits)

SPRING SEMESTER (15 credits)

  • COS 226: Introduction to data structures and algorithms (3 credits)
  • COS 235: Computer architecture (3 credits)
  • Statistics (STS 235, 332, or435; 3 credits)
  • Minor (3 credits)
  • General education (3 credits)

THIRD YEAR (31-32 credits)

FALL SEMESTER (15-16 CREDITS)

  • COS 331: Operating systems (3 credits)
  • COS elective (3 credits)
  • ENG 317: Business and technical writing (3 credits)
  • Science (3 or 4 credits; see above)
  • General education (3 credits)

SPRING SEMESTER (15-16 CREDITS)

  • COS 301: Programming languages (3 credits)
  • COS 420: Introduction to software engineering (3 credits)
  • Science (3 or 4 credits; see above)
  • Minor (3 credits)
  • General education (3 credits)

FOURTH YEAR (30 CREDITS)

FALL SEMESTER (15 credits)

  • COS 397: Computer science Capstone 1 (3 credits)
  • COS 490: Computers, ethics, and society (3 credits)
  • COS elective (3 credits)
  • Minor (3 credits)
  • Minor (3 credits)

SPRING SEMESTER (15 credits)

  • COS 430: Introduction to cybersecurity (3 credits)
  • COS 497: Computer science Capstone 2 (3 credits)
  • COS elective (3 credits)
  • Minor (3 credits)
  • Elective (3 credits)

4+1 BS/MS Degree Program in Computer Science

The School of Computing and Information Science, in conjunction with the University of Maine Graduate School, offers the opportunity for Computer Science majors to begin taking graduate courses during their senior year, double-counting up to 9 credits toward the BS and the MS. Enterprising students will then be able to earn a non-thesis MS by staying one extra year during which they will complete the remaining 21 credits required by the MS.

For complete details, see the full description of the CS 4+1 program.

Minor in Computer Science

A minor in Computer Science requires at least 19-23 credit hours of COS courses taken within the COS department at the University of Maine.  Students have the choice of either Option 1 or Option 2. The Computer Science minor will take at least two years to complete.  Courses marked with an asterisk (*) are required with a grade of C or better; a C- or lower will not count.

Option 1 (19 credits)

  • *COS 125 – Introduction to Problem Solving Using Computer Programming (4 credits)
  • *COS 140 – Foundations of Computer Science (3 credits)
  • *COS 225 – Object-Oriented Design, Programming, and Data Structures (3 credits)
  • COS 226 – Introduction to Data Structures (3 credits)
  • Two additional COS courses at the 300-level or above

Option 2 (23 credits)

This option may be more appropriate for students who may wish to continue their education with a graduate degree in computer science.

  • *COS 125 – Introduction to Problem Solving Using Computer Programming (4 credits)
  • COS 135 – Applied C Programming (3 credits)
  • *COS 140 – Foundations of Computer Science (3 credits)
  • *COS 225 – Object-Oriented Design, Programming, and Data Structures (3 credits)
  • COS 226 – Introduction to Data Structures (3 credits)
  • COS 235 – Computer Architecture (3 credits)
  • COS 250 – Discrete Structures (4 credits)

Students who have taken an ECE architecture course may be excused from taking COS 235; contact the School office to request this.