Computer Science


Code solutions, drive progress, inspire change

Preparing you to excel in the rapidly evolving tech world. Our cutting-edge program blends rigorous academics with hands-on learning, empowering you to design systems, networks, and technologies that shape society. Graduates are highly sought after in Maine and beyond—because a UMaine degree means you’re ready to lead.

New Computer Science and Business degree launching in spring 2025

The University of Maine is launching a B.S. in Computer Science and Business within the Maine Business School starting in spring 2025. 

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.

Bachelor of SCIENCE 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, https://www.abet.org, under the General Criteria and the Computer Science and Similarly Named Computing Programs Criteria.

Computer Science BS Program 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 (*) must be completed with a grade of C or better. 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 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 (choose one):
    • STS 235 – Introduction to Statistical Methods (3 credits)
    • STS 332 – Statistics for Engineers (3 credits)
    • 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 one of the following:

  • BIO 100/200
  • BIO 100/208
  • CHY 121/123, CHY 122/124
  • ERS 101/102
  • PHY 121/122

Total: 8 hours

Additionally, students must complete 6 more 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.

MODEL A

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, or 435; 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

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 credits)
  • COS 135: Applied C Programming (3 credits)
  • *MAT 126: Calculus 1 (4 credits)
  • *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, or 435; 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

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

Computer Science BA Program 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 (*) must be completed with a grade of C or better. 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 COS 3XX, COS 4XX, COS 5XX, or approved substitutes.

Mathematics (15 credit hours)

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

Science (7-8 credit hours)

The B.A. program has no additional science requirements beyond those specified in the University’s general education requirements. Students 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 apply their accumulated knowledge to address a specific problem. This requirement is fulfilled by completing:

  • COS 397 – Computer Science Capstone 1
  • COS 497 – Computer Science Capstone 2

English (6 credit hours)

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

Minor Requirement

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

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, or 435; 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

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 (4 credits)
  • *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 credits)
  • COS 135 – Applied C Programming (3 credits)
  • *MAT 126 – Calculus 1 (4 credits)
  • *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, or 435; 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)

Computer Science Minor

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.

READY TO JOIN US?

COMPUTER SCIENCE

Graduate Programs

• Accelerated 4+1 Masters of Science (MS) Computer Science
• Masters of Science (MS) Computer Science
• Masters of Science (MS) Data Science and Engineering
• Doctorate (PhD) Computer Science

SCHOOL OF COMPUTing & INFORMATION SCIENCE

Design, Develop, Code, Create, Implement, Manage, Innovate, Thrive

Explore our cutting-edge undergraduate and graduate programs in Computer Science, Human-Centered Technology Design, New Media, and Information Science to be part of the technological revolution.

Mission Statement

The mission of the Computer Science Program is to be an exemplary program in a small, Land-Grant, flagship university. We strive for excellence in research, teaching and service that will be of benefit to our students, our profession, and for the people of the State of Maine. Researchers will gain a national or international reputation and will provide educational experiences for both graduate and undergraduate students in their research laboratories. Faculty will provide excellent teaching to undergraduates and graduate students both in and out of the classroom. We see advising as an important part of teaching. We believe that excellent teachers have high standards for students and give students the tools to meet those standards.

Excellent teachers also motivate students, nurture them as scholars, and share their enthusiasm for learning in general and for their discipline in particular. Like excellent research and teaching, excellent service is also productive and recognized and is performed with dedication, competence, enthusiasm and professional integrity.

It is also an important part of our mission to maintain our highly collegial environment while expanding our research mission. We are dedicated to building a community of learning including faculty, students and staff.

Computer Science and Computing-Related Fields:
What are They and What’s the Difference?

There is a lot of confusion in the general public about what computer science (sometimes referred to as simply “computing”) is and how it is different from allied computing-related fields, such as information systems and computer engineering. These are different fields, with different areas of study and different careers and career prospects. It is important that a student contemplating going into one of these fields know the differences so that he or she can find the field that best suits his or her aptitude, interests, and career goals.

This page addresses the question, “What is Computer Science?”, and discusses its place in the collection of computer science-related fields usually referred to as “computing.”

The following short definitions are based on those used by the professional societies of the respective fields. A longer discussion is provided in the next section.

Computer science is the study of the theory, design, implementation, and performance of computer software and computer systems, including the study of computability and computation itself.

Computer engineering is concerned with the design of computer hardware and of computer-based devices. To the extent CE involves software, it is software interacting tightly with hardware for embedded systems and computer-based devices.

Information systems as a field has to do with applying today’s information technology to solve today’s problems, typically in the area of businesses and other enterprises

The Long Answer

The rest of this page will give a more complete description of the three areas of computing represented on UMaine’s campus. Of these three, computer science (CS) is the oldest and broadest. Indeed, information systems (IS) can be seen as having been derived from CS, and computer engineering (CE) was formed at the intersection of CS and electrical engineering.

The fact that there are really three distinct fields, each with its own area of study, is confirmed by at least three things. First, the three fields are routinely treated separately at universities across the country, being generally embodied in different departments. Second, they have distinct professional societies. The primary professional society for computer science is the Association for Computing Machinery (ACM). For computer engineering, the primary professional society is the Institute of Electrical and Electronics Engineers (IEEE). For information systems, the primary societies are the Association for Information Systems (AIS) and the Association of Information Technology Professionals (AITP). Third, the three fields have to meet different accreditation criteria.

The best place to look for definitions of the fields is in information provided by the professional societies themselves. This is most concisely provided in the various documents created as part of the societies’ joint Computing Curricula 2001 (CC2001) project (a joint project of the IEEE and the ACM, with participation by other professional societies). Our definitions below draw on the overview document for this project: Computing Curricula 2005: The Overview Report (produced by the Joint Task Force on Computing Curricula 2005, a joint project of the Association for Computing Machinery, the Association for Information Systems, and the Computer Society of the IEEE, September, 2005). This is referred to as CC2005. Other documents in this series also exist and are useful for understanding the differences between the fields:

CS2001: Computing Curricula 2001: Computer Science, The Joint Task Force on Computing Curricula, IEEE Computer Society and the Association for Computing Machinery, December, 2001.
CE2004: Curriculum Guidelines for Undergraduate Degree Programs in Computer Engineering: A Report in the Computing Curricula Series, Joint Task Force on Computer Engineering Curricula, IEEE Computer Society and Association for Computing Machinery, December, 2004.
IS2002: IS 2002: Model Curriculum and Guidelines for Undergraduate Degree Programs in Information Systems, Association for Computing Machinery, Association for Information Systems, and Association of Information Technology Professionals, 2002; part of the Computing Curricula 2001 Project.

Another document, SE2004, also exists for software engineering, but we take a standard view that software engineering can be considered part of computer science; this is certainly the case on this campus, as it is at major software engineering schools.

Computer Science

Computer science has within its purview the study of the theory, design, implementation, and performance of computers and computer software, including the study of computability and of computation itself. In CC2005, the ACM and IEEE say:

Computer science spans a wide range, from its theoretical and algorithmic foundations to cutting-edge developments in robotics, computer vision, intelligent systems, bioinformatics, and other exciting areas. We can think of the work of computer scientists as falling into three categories.

They design and implement software. Computer scientists take on challenging programming jobs. They also supervise other programmers, keeping them aware of new approaches.
They devise new ways to use computers. Progress in the CS areas of networking, database, and human-computer-interface enabled the development of the World Wide Web. Now CS researchers are working with scientists from other fields to make robots become practical and intelligent aides, to use databases to create new knowledge, and to use computers to help decipher the secrets of our DNA.

They develop effective ways to solve computing problems. For example, computer scientists develop the best possible ways to store information in databases, send data over networks, and display complex images. Their theoretical background allows them to determine the best performance possible, and their study of algorithms helps them to develop new approaches that provide better performance.

Computer science spans the range from theory through programming. Curricula that reflect this breadth are sometimes criticized for failing to prepare graduates for specific jobs. While other disciplines may produce graduates with more immediately relevant job-related skills, computer science offers a comprehensive foundation that permits graduates to adapt to new technologies and new ideas. [CC2005, p. 13]

A recommended Computer Science Curricula published as Curriculum Guidelines for Undergraduate Degree Programs in Computer Science prepared by The Joint Task Force on Computing Curricula Association for Computing Machinery (ACM) and IEEE Computer Society was published in 2013.

Computer Engineering

Computer engineering, on the other hand, is concerned with computer hardware design and the design of computer-based devices, but not with software-only systems, general computing, or general computing systems. The ACM and IEEE, in CC2005, say:

Computer engineering is concerned with the design and construction of computers and computer-based systems. It involves the study of hardware, software, communications, and the interaction among them. Its curriculum focuses on the theories, principles, and practices of traditional electrical engineering and mathematics and applies them to the problems of designing computers and computer-based devices. Computer engineering students study the design of digital hardware systems including communications systems, computers, and devices that contain computers. They study software development, focusing on software for digital devices and their interfaces with users and other devices. CE study may emphasize hardware more than software or there may be a balanced emphasis. CE has a strong engineering flavor. Currently, a dominant area within computing engineering is embedded systems, the development of devices that have software and hardware embedded in them. For example, devices such as cell phones, digital audio players, digital video recorders, alarm systems, x-ray machines, and laser surgical tools all require integration of hardware and embedded software and all are the result of computer engineering. [CC2005, p. 13]

As UMaine’s ECE Department states on their Web site:

Computer Engineering graduates are equipped for careers as engineers, electrical designers, electrical engineers, design and applications engineers, test engineers, power systems engineers, and product engineers. [www.ece.umaine.edu/programs/undergrad; accessed 10/6/2006]

There is often legitimate overlap between CS and CE. For example, it is quite common for computer architecture to be taught and studied by both CE and CS, as it is at UMaine. It is also common for neural networks, computer vision, and low-level robotics, involving as they do primarily hardware or hardware-software solutions, to be in the CE department, as is also the case at UMaine. VLSI design, on the other hand, would not be reasonable to find in the computer science department, and one would not expect to find basic computer science disciplines in CE or IS, such as AI, graphics and visualization, high-performance computing (apart from hardware considerations), computer networks, database systems (apart from applications), software engineering, and so forth.

Information Systems

 The ACM and IEEE, in CC2005, say:

Information systems specialists focus on integrating information technology solutions and business processes to meet the information needs of businesses and other enterprises, enabling them to achieve their objectives in an effective, efficient way. This discipline’s perspective on information technology emphasizes information, and views technology as an instrument for generating, processing, and distributing information. Professionals in the discipline are primarily concerned with the information that computer systems can provide to aid an enterprise in defining and achieving its goals, and the processes that an enterprise can implement or improve using information technology. […] A majority of Information Systems (IS) programs are located in business schools. All IS degrees combine business and computing coursework. A variety of IS programs exist under various labels which often reflect the nature of the program. For example, programs in Computer Information Systems usually have the strongest technology focus, while programs in Management Information Systems emphasize the organizational and behavioral aspects of IS. Degree program names are not always consistent. [CC2005, p.14]

Other Related Areas

New Media

A fourth area on campus, New Media, is not a computing discipline at all, but rather overlaps with computing as a user of computer technology:

The New Media Program at the University of Maine offers an interdisciplinary course of study in the systems, technologies, history, design, and theory of information. The curriculum enables students to investigate the creative and applied processes essential to this area of study. It prepares students to be technologically capable, articulate thinkers, and creative media professionals. [UMaine New Media]

Information Technology (IT)

There is some confusion about another, highly-applied area of computing, information technology. (Note that “information technology” (IT) here differs in meaning from the term as it is used in UMaine’s Strategic Plan, where the authors essentially mean “computing.”)

The ACM and IEEE, in CC2005, differentiate IS from IT as follows. Whereas the perspective of IS  emphasizes information, technology is viewed as an instrument for generating, processing, and distributing information:

Information Technology emphasize the technology itself more than on the information it conveys. IT is a new and rapidly growing field that started as a grassroots response to the practical, everyday needs of business and other organizations. Today, organizations of every kind are dependent on information technology. They need to have appropriate systems in place. These systems must work properly, be secure, and upgraded, maintained, and replaced as appropriate. Employees throughout an organization require support from IT staff who understand computer systems and their software and are committed to solving whatever computer-related problems they might have. Graduates of information technology programs address these needs. Degree programs in information technology arose because degree programs in the other computing disciplines were not producing an adequate supply of graduates capable of handling these very real needs. IT programs exist to produce graduates who possess the right combination of knowledge and practical, hands-on expertise to take care of both an organization’s information technology infrastructure and the people who use it. IT specialists assume responsibility for selecting hardware and software products appropriate for an organization, integrating those products with organizational needs and infrastructure, and installing, customizing, and maintaining those applications for the organization’s computer users. Examples of these responsibilities include the installation of networks; network administration and security; the design of web pages; the development of multimedia resources; the installation of communication components; the oversight of email systems; and the planning and management of the technology lifecycle by which an organization’s technology is maintained, upgraded, and replaced. [CC2005, p.14]

Information technology is not represented on UMaine’s campus. There is, in fact, some question as to the suitability of such a major on a university (as opposed to a technical college) campus.

Information Science

There is additional confusion about the term “information science.” This in its original sense refers to a specific field that studies the properties of information per se, for example, Shannon’s work on information theory. The term, while sometimes used synonymously with “computing” has come to mean the academic study of information representation, storage and use, as opposed or in addition to the computational manipulation of that information.

The School of Computing and Information Science is the home to information science at UMaine. In addition to computer science, the School has a strong emphasis on information science research and graduate education, in particular in the area of geographical information science.

SCIS Contact Information

School of Computing & Information Science

Penny Rheingans

penny.rheingans@maine.edu

Director – School of Computing & Information Science

Karen Kidder

kkidder@maine.edu

Administrative Support Supervisor – School of Computing & Information Science

Velma Figgins

vfiggins@maine.edu

Administrative Specialist, New MediaSchool of Computing & Information Science

5711 Boardman Hall
Room 348
Orono, ME 04469
Tel: 207.581.2188

MCEC NEWS

Stay conNECTED

The Computer Science BS program at the University of Maine has been continuously accredited by ABET since 1995, first as an offering of the Department of Computer Science and now as an offering of the School of Computing and Information Science. The BS in Computer Science is accredited by the Computing Accreditation Commission(s) of ABET, https://www.abet.org, under the General Criteria and the Computer Science Program Criteria. For further information refer to our SCIS ABET Accreditation and Assessment page.