Undergraduate Degree Programs

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 databases, high performance computing, networks, artificial intelligence 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.

Bachelors Degrees

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

The Bachelor of Science (B.S.) degree is our traditional computer science undergraduate degree. It prepares students to work in the computer industry or to study computer science in graduate school. The B. S. degree is also appropriate for students who wish to contribute a strong computer science background to an interdisciplinary team, such as one in bioinformatics. The B.S. degree is accredited by the Computing Accreditation Commission of ABET.

The Bachelor of Arts (B.A.) degree  gives the student a strong foundation in computer science while providing more flexibility in coursework outside the major. It also prepares the student for a rewarding career in computing or for graduate work.

Bachelor of Science 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.

COMPUTER SCIENCE COURSES (51 credit hours):

  • *COS 125 Introduction to Problem Solving using Computer Programming (3 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 350 Data Structures and Algorithms (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 451 Automata, Computability and Languages (3cr.)
  • COS 490 Computers, Ethics and Society (3 cr.)
  • COS 497 Computer Science Capstone 2 (3 cr.)
  • Six additional credit hours from courses  COS 3XX, COS 4XX and COS 5XX or approved substitutes.

MATHEMATICS COURSES (15-16 credit hours):

  • *MAT 126 Calculus I (4 cr.)
  • *MAT 127 Calculus II (4 cr.)
  • COS 250 Discrete Structures (4 cr.)
  • Statistics: one of STS 232, STS 332 or STS 434 (3-4 cr.)

CAPSTONE EXPERIENCE REQUIREMENT:

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 sequence of a laboratory science (e.g., PHY 121 and PHY 122) for a total of 8 hours, and an additional 6 hours of science courses. Courses fulfilling this requirement may be from any of the following areas:

  • Astronomy (AST; except AST 114)
  • Biological Sciences (BIO)
  • Biochemistry, Microbiology, and Molecular Biology (BMB; BMB 207 and above)
  • Chemistry (CHY; CHY 121 and above)
  • Earth Sciences (ERS; ERS 100 and above)
  • Forest Ecosystem Science (FES)
  • Marine Science (SMS; SMS 100 and above)
  • Physics (PHY; PHY 121 and above)
  • Wildlife Ecology (WLE; WLE 200 and above)

*A student must complete these courses with a grade of “C” or better in each. A grade of C- is insufficient.

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 Curriculum for the B.S. in Computer Science

The Option A and Option B schedules below illustrate two ways of meeting the degree requirements within four years. Sufficient hours must be included to reach the University degree minimum of 120. All School, College and University requirements must be met. Electives may be moved around and some adjustments might need to be made if you take a 4 credit statistics course instead of a 3 credit course. Please be aware that certain students on financial aid must take a minimum of 15 credits per semester.

OPTION A

 This model curriculum (OPTION A) is recommended for those students that are calculus-ready (i.e. at a minimum have passed the Math Placement exam for entry into Calculus 1)

FIRST YEAR
First Semester (16 Credits) Credits  Prereq Second Semester (16 Credits) Credits Prereq
COS 125: Intro to Problem Solving using Computer Programming* 3  ** COS 135 Applied C Programming 3 COS 140 & either COS 120 or COS 125
COS 140 Foundations of Computer Science* 3  none COS 225 Object Oriented Design & DataStructures* 3 C or higher in COS 125
MAT 126 Calculus I* 4 MAT 127 Calculus II* 4
ENG 101* or Elective 3 ENG 101* or Elective 3
General Education Elect. 3 General Education Elect. 3
** 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 allow you to enter MAT 126 or higher. If NOT at this level, see OPTION B
SECOND YEAR
First Semester(16 Credits) Credits  Prereq Second Semester(14 Credits) Credits Prereq
COS 226 Intro to Data Structures 3 C or higher in COS 225 COS 235 Computer Architecture 3 COS 135
COS 250 Discrete Structures 4 COS 350 Data Structures and Algorithms 3 COS 226 & COS 250
Science 3 Science 3
General Education Elect. 3 Statistics 3
Elective 3 General Education Elect.  3
JUNIOR YEAR
First Semester(16 Credits) Credits Prereq Second Semester(16 Credits) Credits  Prereq
COS 301 Programming Languages 3 COS 226 & COS 250 COS 420 Intro to Software Engineering 3 COS 331
COS 331 Operating Systems 3 COS 226 & COS 235 or permission COS 430 Intro to Cybersecurity 3 COS 235 & COS 331
ENG 317 3 Lab Science II 4
Lab Science I 4 General Education Elect. 3
General Education Elect. 3 Elective 3
SENIOR YEAR
First Semester(12 Credits) Credits  Prereq Second Semester(13 Credits) Credits  Prereq
COS 397 CS Capstone 1 3 COS 420 COS 497 CS Capstone 2 3 COS 397
COS 490 Computer, Ethics and Society 3 COS 331 or permission COS 451 Automata, Computability and Languges 3 COS 350
COS Elective 3 COS Elective 3
Elective 3 Elective 3
Elective 1-3
Sub Total 60 Sub Total 60
Total 120

 

OPTION B

 This model curriculum (OPTION B) is recommended for those students that are NOT yet calculus-ready (i.e. have not passed the Math Placement exam for entry into Calculus 1)

FIRST YEAR
First Semester (15 Credits) Credits  Prereq Second Semester (16 Credits) Credits Prereq
COS 120 (Section 3) Introduction to Programming 3  none COS 135 Applied C Programming 3 COS 140 & either COS 120 or COS 125
COS 140 Foundations of Computer Science* 3  none MAT 126 Calculus I* 4
MAT 122 Pre-Calculus 3 ENG 101* or Elective 3
ENG 101* or Elective 3 General Education 3
General Education 3 General Education 3
SECOND YEAR
First Semester(17 Credits) Credits  Prereq Second Semester(14 Credits) Credits Prereq
COS 125 Intro to Problem Solving using Computer Programming* 3 ** COS 225 Object-Oriented Design & DataStructures* 3 C or higher in COS 125
COS 250 Discrete Structures 4 COS 135 &  MAT 126 COS 235 Computer Architecture 3 COS 135
MAT 127 Calculus II* 4 Science 3
Science 3 Statistics 3
General Education 3 General Education Elect.  3
** 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 to allow you to enter MAT 126 or higher
JUNIOR YEAR
First Semester(16 Credits) Credits Prereq Second Semester(16 Credits) Credits  Prereq
COS 226 Intro to Data Structures 3 C or higher in COS 225 COS 420 Intro to Software Engineering 3 COS 331
COS 331 Operating Systems 3 COS 226 & COS 235 or permission COS 430 Intro to Cybersecurity 3 COS 235 & COS 331
COS Elective 3 COS 350 Data Structures and Algorithms 3 COS 226 & COS 250
Lab Science I 4 Lab Science II 4
ENG 317 3 Elective 3
SENIOR YEAR
First Semester(12 Credits) Credits  Prereq Second Semester(13 Credits) Credits  Prereq
COS 397 CS Capstone 1 3 COS 420 COS 497 CS Capstone 2 3 COS 397
COS 490 Computer, Ethics and Society 3 COS 331 or permission COS 451 Automata, Computability and Languges 3 COS 350
COS 301 Programming Languages 3 COS 226 & COS 250 COS Elective 3
General Education 3 Elective 3
Elective 1-3
Sub Total 60 Sub Total 60
Total 120

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. The B.A. degree in Computer Science reduces COS electives by one course. The mathematics, English and capstone requirements are all the same as for the B.S. degree. The extensive science courses required in the BS are not required in the BA but all general education course requirements must still be met including the science general education requirements. The B.A. degree requires an approved minor in another discipline.

COMPUTER SCIENCE COURSES (51 credit hours):

  • *COS 125 Introduction to Problem Solving using Computer Programming (3 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 350 Data Structures and Algorithms (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 451 Automata, Computability and Languages (3cr.)
  • COS 490 Computers, Ethics and Society (3 cr.)
  • COS 497 Computer Science Capstone 2 (3 cr.)
  • Three additional credit hours from courses  COS 3XX, COS 4XX and COS 5XX or approved substitutes.

MATHEMATICS COURSES  (15-16 credit hours):

  • *MAT 126 Calculus I (4 cr.)
  • *MAT 127 Calculus II (4 cr.)
  • COS 250 Discrete Structures (4 cr.)
  • Statistics: one of STS 232, STS 332 or STS 434 (3-4 cr.)

CAPSTONE EXPERIENCE REQUIREMENT:

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.)

*A student must complete these courses with a grade of “C” or better in each. A grade of C- is insufficient.

MINOR:

Students must complete an approved minor in some department outside their home department. For a listing of Minors, see https://catalog.umaine.edu/ > select current catalog > select in right menu Majors and Minors. Minors typically require 18-21 credit hours.

Model Curriculum for the B.A. in Computer Science

This schedule illustrates one way of meeting the BA degree requirements within four years. Sufficient hours must be included to reach the University degree minimum of 120. All School, College and University requirements must be met. Students should use electives to complete University general education requirements, and to meet the requirements for a Minor. A single course may meet multiple requirements. Electives may be moved around and some adjustments might need to be made if you take a 4 credit statistics course instead of a 3 credit course. You may also need to adjust the model curriculum if your minor requires some number of credit hours other than 18.

FIRST YEAR
First Semester (16 Credits) Credits  Prereq Second Semester (16 Credits) Credits Prereq
COS 125: Intro to Problem Solving using Computer Programming* 3  ** COS 135 Applied C Programming 3 COS 140 & either COS 120 or COS 125
COS 140 Foundations of Computer Science* 3  none COS 225 Object Oriented Design & DataStructures* 3 C or higher in COS 125
MAT 126 Calculus I* 4 MAT 127 Calculus II* 4
ENG 101* or Elective 3 ENG 101* or Elective 3
General Education Elect. 3 General Education Elect. 3
** 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 allow you to enter MAT 126 or higher. If NOT at this level, see OPTION B
SECOND YEAR
First Semester(16 Credits) Credits  Prereq Second Semester(12-13 Credits) Credits Prereq
COS 226 Intro to Data Structures 3 C or higher in COS 225 COS 235 Computer Architecture 3 COS 135
COS 250 Discrete Structures 4 COS 135 &  MAT 126 COS 350 Data Structures and Algorithms 3 COS 226 & COS 250
Minor 3 Minor 3
General Education Elect. 3 Statistics 3-4
Elective 3 Note: May need more if on financial aid
JUNIOR YEAR
First Semester(15 Credits) Credits Prereq Second Semester(15 Credits) Credits  Prereq
COS 301 Programming Languages 3 COS 226 & COS 250 COS 420 Intro to Software Engineering 3 COS 331
COS 331 Operating Systems 3 COS 226 & COS 235 or permission COS 430 Intro to Cybersecurity 3 COS 235 & COS 331
ENG 317 3 Minor 3
Minor 3 General Education Elect. 3
General Education Elect. 3 Elective 3
SENIOR YEAR
First Semester(15 Credits) Credits  Prereq Second Semester(15 Credits) Credits  Prereq
COS 397 CS Capstone 1 3 COS 420 COS 497 CS Capstone 2 3 COS 397
COS 490 Computer, Ethics and Society 3 COS 331 or permission COS 451 Automata, Computability and Languges 3 COS 350
Minor 3 COS Elective 3
General Elective 3 Minor 3
Elective  3 Elective 3
Sub Total 60 Sub Total 60
Total 120

 

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 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.

Minor in Computer Science

There are two tracks that earn a minor in Computer Science. Both require at least 18 credit hours of COS courses. 

Track 1:

  • * COS 125 Introduction to Problem Solving Using Computer Programming (3 credit hours).
  • * COS 140 Foundations of Computer Science (3 credit hours).
  • * COS 225 Object-Oriented Design and Data Structures (4 credit hours).
  • COS 226 Introduction to Data Structures (3 credit hours).
  • Plus any two additional courses including COS250 or 300-level or above.

Track 2:

  • * COS 140 Foundations of Computer Science (3 credit hours).
  • COS 220 Introduction to C++ Programming (3 credit hours).
  • COS 221 Data Structures in C++ (3 credit hours).
  • COS 235 Computer Architecture (3 credit hours).
  • Plus any two additional courses including COS250 or 300-level or above.

Students who have taken ECE 177 or a similar course may be excused from taking COS 220. If they choose to be excused from COS 220, they must either take COS 125 or an additional COS course at the 200 level or above.

Students who have taken an ECE architecture course may be excused from taking COS 325, but must take an additional COS course at the 300 level or above.

* Courses must be completed with a grade of “C” or better in each; a grade of “C-” (C minus) is not sufficient.