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, highperformance 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 wellpositioned to secure rewarding, highpaying 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, highperformance 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 coauthor 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 computingrelated 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 COVID19 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 ObjectOriented 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 (1516 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 (34 cr.)

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 twosemester 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)
 Biochemistry, Microbiology, and Molecular Biology (BMB; BMB 207 and above)
 Chemistry (CHY; CHY 121 and above)
 Earth Sciences (ERS; ERS 100 and above)
 Marine Science (SMS; SMS 100 and above)
 Physics (PHY; PHY 121 and above)
 Wildlife Ecology (WLE; WLE 200 and above)

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
We provide here two model curricula, one for students who are calculusready and one for students who are not. Calculusreadiness is assessed by the student having achieved a grade of C or better in MAT 122 PreCalculus; 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 calculusready, 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 Requirement Credits” below should be interpreted to mean a course helping to satisfy the Human Values and Social Context portion of the Gen Ed 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 COVID19 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 fouryear plan for those students taking Calculus I or higher in their first semester
FIRST YEAR (31 credits)  
Fall Semester (15 credits)  Credits  Prereq  Second Semester (16 credits)  Credits  Prereq 
COS 100: Success in Computer Science  1  COS 135: Applied C Programming  3  COS 140 & either COS 120 or COS 125  
*COS 125: Intro to Problem Solving using Computer Programming*  4  **  *COS 225: Object Oriented Design & Data Structures  3  C or higher in COS 125 
*COS 140: Foundations of Computer Science*  3  *MAT 127 Calculus II  4  MAT 126  
*MAT 126 Calculus I  4  **  *ENG 101 or Elective  3  
*ENG 101 or Elective  3  General Education Elect.  3  
*A C or better is required in this course; a C will not count.**A grade of C or better in MAT 122, or no grade record in MAT 122 and a passing score on Part 3 of the Math Placement Exam. If you are not ready to enter MAT 126, you should follow the Model B curriculum below.***A grade of C or better in MAT 122 PreCalculus, 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), is required to allow you to enter MAT 126. 

SECOND YEAR (31 credits, 62 total)  
First Semester(16 Credits)  Credits  Prereq  Second Semester(15 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  C or higher in MAT 126 and COS 125; or ECE major with C or higher in MAT 126 and ECE 177  COS 420: Introduction to Software Engineering  3  COS 226 
Science  3  Science  3  
General Education Elect.  3  Statistics  3  
Elective  3  General Education Elect.  3  
THIRD YEAR (32 credits, 94 total)  
First Semester(16 Credits)  Credits  Prereq  Second Semester(16 Credits)  Credits  Prereq 
COS 301 Programming Languages  3  COS 226 & COS 250  COS 430: Introduction to Cybersecurity  3  COS 235 & COS 331 
COS 331 Operating Systems  3  COS 226 & COS 235 or permission  Elective  3  
ENG 317  3  ENG 101 and junior standing  General Education Elective  3  
Lab Science I  4  Lab Science II  4  
COS elective  3  varies  COS elective  3  varies 
FOURTH YEAR (27 credits; 121 total)  
First Semester(15 Credits)  Credits  Prereq  Second Semester(12 Credits)  Credits  Prereq 
COS 397 CS Capstone 1  3  COS 420  COS 497 CS Capstone 2  3  COS senior standing, COS 397 
COS 490 Computer, Ethics and Society  3  COS 226 and junior standing or permission  COS elective  3  varies 
COS Elective  3  varies  Elective  3  
Elective  3  Elective  3  
Elective  3 
Model B: Suggested fouryear plan for those students NOT taking Calculus I or higher in their first semester
FIRST YEAR (28 credits)  
Fall Semester (14 credits)  Credits  Prereq  Second Semester (14 credits)  Credits  Prereq 
COS 100: Success in Computer Science  1  COS 135: Applied C Programming  3  COS 140 & either COS 120 or COS 125  
COS 120: Introduction to Programmimng  3  *COS 125: Introduction to Problem Solving Using Computer Programming  4  **  
*COS 140: Foundations of Computer Science*  3  *MAT 126 Calculus I  4  ***  
MAT 122: Pre Calculus  4  *ENG 101 or Elective  3  
*ENG 101 or Elective  3  
*A C or better is required in this course; a C will not count.**A grade of C or better in MAT 122, or no grade record in MAT 122 and a passing score on Part 3 of the Math Placement Exam.***A grade of C or better in MAT 122 PreCalculus, 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), is required to allow you to enter MAT 126. 

SECOND YEAR (31 credits, 59 total)  
First Semester(15 Credits)  Credits  Prereq  Second Semester(16 Credits)  Credits  Prereq 
COS 225: ObjectOriented Design, Programming, and Data Structures  3  C or higher in COS 125  COS 226: Introduction ro Data Structures  3  C or higher in COS 225 
COS 250 Discrete Structures  4  C or higher in MAT 126 and COS 125; or ECE major with C or higher in MAT 126 and ECE 177  COS 235 Computer Architecture  3  COS 135 
Lab Science I  4  Lab Science II  4  
MAT 127: Calculus II  4  General Education Elect.  3  
Elective  3  
THIRD YEAR (31 credits, 90 total)  
First Semester(15 Credits)  Credits  Prereq  Second Semester(16 Credits)  Credits  Prereq 
COS 301 Programming Languages  3  COS 226 & COS 250  COS 420: Introduction to Software Engineering  3  COS 226 
COS 331 Operating Systems  3  COS 226 & COS 235 or permission  COS 430: Introduction to Cybersecurity  3  COS 235 & COS 331 
ENG 317  3  ENG 101 and junior standing  General Education Elective  3  
Statistics  3  Science  4  *  
COS elective  3  varies  COS elective  3  varies 
*NOTE: This model curriculum assumes, in order to have the 120 credits needed for graduation, that one of the two science courses required beyond the twosemester lab sequence is also a 4credit course: i.e., one with a lab. If your science courses are both 3 credits each, you will need to take at least one more 13 credit course sometime during your BS program. 

FOURTH YEAR (30 credits; 120 total)  
First Semester(15 Credits)  Credits  Prereq  Second Semester(12 Credits)  Credits  Prereq 
COS 397 CS Capstone 1  3  COS 420  COS 497 CS Capstone 2  3  COS senior standing, COS 397 
COS 490 Computer, Ethics and Society  3  COS 226 and junior standing or permission  COS elective  3  varies 
COS Elective  3  varies  COS elective  3  varies 
Science  3  See * above  Elective  3  
General Education Elective  3  General Education Elective  3 
Bachelor of Arts Degree in Computer Science
[Note: This is the BA in CS description to be proposed in 20202021 to go into effect Fall 2021. For current requirements, please see the UMaine undergraduate catalog (catalog.umaine.edu).]
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 – ObjectOriented 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 (1516 hours):


 *MAT 126 – Calculus I (4 credits)
 MAT 127 – Calculus II (4 credits)
 COS 250 – Discrete Structures (4 credits)
 Statistics: one of STS 232 – Principles of Statistical Inference (3 credits), STS 332 – Statistics for Engineers (3 credits), or STS 434 – Introduction to Statistics (4 credits)

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 calculusready and one for students who are not. Calculusreadiness is is assessed by the student having achieved a grade of C or better in MAT 122 PreCalculus; 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 calculusready, 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 Requirement Credits” below should be interpreted to mean a course helping to satisfy the Human Values and Social Context portion of the Gen Ed 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.
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 COVID19 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 fouryear plan for those students taking Calculus I or higher in their first semester
FIRST YEAR (31 credits)  
Fall Semester (15 credits)  Credits  Prereq  Second Semester (16 credits)  Credits  Prereq 
COS 100: Success in Computer Science  1  COS 135: Applied C Programming  3  COS 140 & either COS 120 or COS 125  
*COS 125: Intro to Problem Solving using Computer Programming*  4  **  *COS 225: Object Oriented Design & Data Structures  3  C or higher in COS 125 
*COS 140: Foundations of Computer Science*  3  *MAT 127 Calculus II  4  MAT 126  
*MAT 126 Calculus I  4  **  *ENG 101 or Elective  3  
*ENG 101 or Elective  3  General Education Elect.  3  
*A C or better is required in this course; a C will not count.**A grade of C or better in MAT 122, or no grade record in MAT 122 and a passing score on Part 3 of the Math Placement Exam. If you are not ready to enter MAT 126, you should follow the Model B curriculum below.***A grade of C or better in MAT 122 PreCalculus, 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), is required to allow you to enter MAT 126. 

SECOND YEAR (31 credits, 62 total)  
First Semester(16 Credits)  Credits  Prereq  Second Semester(15 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  C or higher in MAT 126 and COS 125; or ECE major with C or higher in MAT 126 and ECE 177  COS 420: Introduction to Software Engineering  3  COS 226 
Science  3  Science  3  
General Education Elect.  3  Statistics  3  
Minor  3  General Education Elect.  3  
THIRD YEAR (30 credits, 92 total)  
First Semester(16 Credits)  Credits  Prereq  Second Semester(16 Credits)  Credits  Prereq 
COS 301 Programming Languages  3  COS 226 & COS 250  COS 430: Introduction to Cybersecurity  3  COS 235 & COS 331 
COS 331 Operating Systems  3  COS 226 & COS 235 or permission  Elective  3  
ENG 317  3  ENG 101 and junior standing  General Education Elective  3  
Minor  3  Minor  3  
General Education Elective  3  varies  COS elective  3  varies 
FOURTH YEAR (30 credits; 122 total)  
First Semester(15 Credits)  Credits  Prereq  Second Semester(12 Credits)  Credits  Prereq 
COS 397 CS Capstone 1  3  COS 420  COS 497 CS Capstone 2  3  COS senior standing, COS 397 
COS 490 Computer, Ethics and Society  3  COS 226 and junior standing or permission  COS elective  3  varies 
COS Elective  3  varies  Minor  3  
Minor  3  Minor  3  
Elective  3  Elective  3 
Model B: Suggested fouryear plan for those students NOT taking Calculus I or higher in their first semester
FIRST YEAR (34 credits)  
Fall Semester (14 credits)  Credits  Prereq  Second Semester (14 credits)  Credits  Prereq 
COS 100: Success in Computer Science  1  COS 135: Applied C Programming  3  COS 140 & either COS 120 or COS 125  
COS 120: Introduction to Programmimng  3  *COS 125: Introduction to Problem Solving Using Computer Programming  4  **  
*COS 140: Foundations of Computer Science*  3  *MAT 126 Calculus I  4  ***  
MAT 122: Pre Calculus  4  *ENG 101 or Elective  3  
*ENG 101 or Elective  3  General Education Requirement  3  
General Education Requirement  3  
*A C or better is required in this course; a C will not count.**A grade of C or better in MAT 122, or no grade record in MAT 122 and a passing score on Part 3 of the Math Placement Exam.***A grade of C or better in MAT 122 PreCalculus, 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), is required to allow you to enter MAT 126. 

SECOND YEAR (32 credits, 65 total)  
First Semester(15 Credits)  Credits  Prereq  Second Semester(16 Credits)  Credits  Prereq 
COS 225: ObjectOriented Design, Programming, and Data Structures  3  C or higher in COS 125  COS 226: Introduction ro Data Structures  3  C or higher in COS 225 
COS 250 Discrete Structures  4  C or higher in MAT 126 and COS 125; or ECE major with C or higher in MAT 126 and ECE 177  COS 235 Computer Architecture  3  COS 135 
Science  3  Science  3  
MAT 127: Calculus II  4  General Education Elect.  3  
Minor  3  Minor  3  
THIRD YEAR (31 credits, 96 total)  
First Semester(15 Credits)  Credits  Prereq  Second Semester(16 Credits)  Credits  Prereq 
COS 301 Programming Languages  3  COS 226 & COS 250  COS 420: Introduction to Software Engineering  3  COS 226 
COS 331 Operating Systems  3  COS 226 & COS 235 or permission  COS 430: Introduction to Cybersecurity  3  COS 235 & COS 331 
ENG 317  3  ENG 101 and junior standing  Minor  3  
Statistics  3  Science  4  
COS elective  3  varies  COS elective  3  varies 
FOURTH YEAR (30 credits; 126 total)  
First Semester(15 Credits)  Credits  Prereq  Second Semester(12 Credits)  Credits  Prereq 
COS 397 CS Capstone 1  3  COS 420  COS 497 CS Capstone 2  3  COS senior standing, COS 397 
COS 490 Computer, Ethics and Society  3  COS 226 and junior standing or permission  COS elective  3  varies 
Minor  3  Minor  3  
Science  3  Minor  3  
General Education Elective  3  General Education Elective  3 
NOTE: Although this model totals 126 hours, it 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.
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, doublecounting up to 9 credits toward the BS and the MS. Enterprising students will then be able to earn a nonthesis 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 1923 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 – ObjectOriented Design, Programming, and Data Structures (3 credits)
 COS 226 – Introduction to Data Structures (3 credits)
 Two additional COS courses at the 300level 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 – ObjectOriented 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.