Bachelor of Arts Degree in Computer Science
Courses Transferrable from Other UMS Campuses to the University of Maine at Farmington
The following chart provides general guidance as to which courses offered at other University of Maine System
campuses will be accepted as transferable into the Bachelor of Arts in Computer Science undergraduate degree
program at the University of Maine at Farmington.
As shown, links to course descriptions for all courses are provided. Additional courses beyond those listed may
be acceptable for transfer as assessed by the appropriate course faculty on the campus to which the student is
transferring.
Courses qualifying to fulfill General Education course requirements are handled on a campuswide basis and are available through a separate information sheet.
University of Maine at Farmington
Bachelor of Arts: Computer Science
(Curriculum drawn from http://catalog.umf.maine.edu/show.php?type=program&id=6)
Typical Program showing Acceptable Transfer Courses
(Course transfer information is drawn from https://peportal.maine.edu and confirmed by involved faculty members.)
REQUIRED COURSES
Course
Course Title
Number
Intro to Computer Science
COS 140
Credits: 4
Course
Description
Data Structures
COS 142
Credits: 4
Course
Description
Networking TCP/IP
COS 280
Credits: 4
Course
Description
Computer Graphics
COS 355
Credits: 4
Course
Description
Alg Design & Analysis
COS 364
Credits: 4
Course
Description
Prog Lang Concepts
COS 360
Credits: 4
Course
Description
Comp Oper Systems
COS 372
Credits: 4
Course
Description
Database Systems
COS 455
Credits: 4
Course
Description
Internet Computing
COS 120
Credits: 4
ELECTIVE
Course
Description
USM
COURSES ACCEPTABLE FOR TRANSFER
UM
UM-A
UM-FK
UM-M
COS 161
COS 225
CIS 210
COS 285
COS 226
CIS 354
COS 460
COS 441
CIS 341
COS 452
COS 460
COS 485
COS 360
COS 301
COS 450
COS 431
COS 457
COS 480
COS 492
CISA 210
CISA 210
UM-PI
Computer Organization
COS 241
ELECTIVE Credits: 4
COS 335
Course
Description
Fund of Theory Comp
COS 341
ELECTIVE Credits: 4
Course
Description
Int Topics in Computer
COS 377
ELECTIVE Science
Course
Description
Credits: 2 – 4
Adv Topics in Computer
COS 477
ELECTIVE Science
Course
Description
Credits: 2 – 4
Ind Study in Computer
COS 497
ELECTIVE Science II (varies)
Course
Description
MAT
141M
Credits: 2 – 4
Calculus I
Credits: 4
MAT 152
and
MAT 152D
Foundations of Abstract
Mathematics
Credits: 4
MAT 290
MAT 126
MAT 125
MATO 126
MATP 152D
Course
Description
MAT
151M
Course
Description
MAT 220
Course
Description
MAT 255
MATA 125
MATO 126
MATP 152D
MAT 126
MATA125
MATP
152D
MAT 131
MATA 125
MATO 126
MATP
152D
MAT 251
Data Analysis
Credits: 4
MAT 142 Calculus II
ELECTIVE Credits: 4
MAT 153
MAT 127
MAT 126
MATO 127
MATP 153
MAT 256
MATO 127
MATO 200
MATP 153
MAT 295
MAT 262
MAT 262
MAT 280
Course
Description
MAT 127
MATO 127
MATP 153
MATO 127
MATP 153
MAT 132
MAT 242 Differential Equations
ELECTIVE Credits: 4
Course
Description
MAT 251 Linear Algebra
ELECTIVE Credits: 4
Course
Description
MAT 333 Graph Theory and
ELECTIVE Combinations
Course
Description
Credits: 4
MAT 367 Intermediate Stats
ELECTIVE Credits: 4
Course
Description
MAT 371 Mathematical Probability
ELECTIVE Credits: 4
Course
Description
MAT 274
Note: Four COS electives (at least three must be numbered above 300) and one MAT elective should be chosen from the
list above. Students are advised that an equivalent COS 377 can be taken for COS 372; an equivalent COS 377 can be
taken for COS 455.
University of Maine at Farmington Computer Science Course Descriptions
COS 140 - Introduction to Computer Science
Using the framework of problem solving and programming in the object-oriented paradigm, this course introduces the fundamental
concepts and techniques of Computer Science. Students learn how to develop problem solutions by integrating pre-defined or userdefined data objects and the control algorithms that make use of the objects. Topics include object design and use, algorithmic control
structures, interactive and file-based input/output and some basic structured data objects such as strings, arrays, lists and tables. Every
year.
Credit: 4
COS 142 - Data Structures
The focus of this course is deeper study of the concepts of structured data types, in particular their design and specification in an
object-oriented framework. Data structures such as lists, stacks, queues and trees will be examined, both in terms of how they can be
implemented by a programmer and how they can be used to develop solutions for larger problems. New object-oriented programming
concepts such as inheritance, polymorphism and generic classes will be introduced as techniques to aid in the implementation of these
structures, and related algorithmic topics such as recursion, searching and sorting will be studied.
Prerequisite(s): COS 140 and either MAT 141M or MAT 151M. Every spring.
Credit: 4
COS 280 - Networking Using TCP/IP
This course provides an extensive study of both the OSI model as well as the TCP/IP protocol suite. Examination of wired and
wireless technologies. Topics include IP addressing, routing, ARP, details of the IP and TCP protocols, ICMP, UDP, DHCP, DNS,
application protocols such as mail and http. Introduction to the Linux operating system including user/group management, processes,
basic bash scripting, permissions, file system design (inode structure). Applications involve setting up (in Linux) a network and
providing DHCP and DNS servers for that network, Study of firewalls and setting up a firewall such as Iptables, and use of a packet
analyzer to better understand the protocols and diagnose problems.
Prerequisites: COS 142. Every spring.
Credit: 4
COS 355 - Computer Graphics
Mathematical techniques for generating computer graphics of 2- and 3- dimensional objects will be studied. Implementation of these
concepts, up to and including perspective projection and 3D transformations, in a higher level language will be involved. At this point,
an API (usually OpenGL) will be used to aid in the writing of more sophisticated applications involving lighting and texture mapping.
A study and design of the human interaction component, dealing with graphical design interfaces and event-driven programming,
occurs throughout the course. Selected additional topics may include game programming, image processing, ray tracing, and designing
more complex graphical interfaces. The course has a laboratory component.
Prerequisite(s): MAT 141M and COS 142. Every fall.
Credit: 4
COS 360 - Programming Language Concepts
An examination of issues involved in the design and implementation of high-level computer languages. Starting from a working
interpreter for a very simple programming language, we first consider general issues such as syntax grammars, semantic descriptions,
and the mechanisms used in translating a high-level language into an equivalent lower-level executable form. Following that we
gradually introduce new language features, each requiring further modifications to our language's syntax and interpreter, which
provides a basis for studying more advanced programming language features.
Prerequisite(s): COS 142. Odd fall.
Credit: 4
COS 364 - Algorithm Design and Analysis
Examines algorithm design techniques such as divide-and-conquer, dynamic programming, the greedy approach, backtracking, and
branch-and-bound. Representative algorithms are studied in each category, with an emphasis on demonstrating an algorithm's
correctness and analyzing its efficiency in terms of computing time and storage space requirements. The notion of intractable
problems is introduced, along with efficient approaches to these problems, such as approximation algorithms.
Prerequisite(s): COS 142 and MAT 151M. Even fall.
Credit: 4
COS 372 - Computer Operating Systems
An investigation of operating system concepts including processes, threads, CPU scheduling, process synchronization, deadlocks,
memory management, caching policies, storage management (file-systems, mass storage structure, I/systems), protection distributed
systems. Case study of a particular operating system (usually Linux). Programming projects applied to selected topics.
Prerequisite(s): COS 142, and COS 280. Every year.
Credit: 4
COS 455 - Database Systems
The course studies the fundamentals of database modeling and design, the languages and facilities provided by a database
management system, and programmatic interfaces to the database (including web access). Emphasis is on the relational database
model. Theoretical topics include: data modeling using the entity-relationship model, schema definition, relational algebra, functional
dependencies and normal forms, queries, data storage and physical design, and indexing structures for files. In addition, there is a
laboratory component that uses the Oracle database. In the laboratory, the topics include: SQL query language, PL/SQL language,
creation of a web interface to the database. The web interface will involve either the Oracle PL/SQL toolkit, other Oracle products,
Java and JDBC, C#, or a scripting language.
Prerequisite(s): 12 credits of Computer Science including COS 142 and MAT 151M. Every spring.
Credit: 4
COS 120 - Internet Computing
In this course students will learn about a variety of Internet computing topics including but not limited to web programming, web site
design and management, server-side technologies, social networking, Web 2.0, and mobile computing. Specific technologies covered
include but are not limited to HTML, CSS, Javascript, XML, database management and querying, Web API's, and Ajax. There will be
an emphasis on the meaningful use of current technology to communicate effectively. Every two years.
Credit: 4
COS 241 - Computer Organization
This course is intended to give students a broad overview of computer organization at a number of different levels. The lowest level is
the assembly language level. Students will gain an understanding of instruction set architecture design and tradeoffs. The next level,
fundamentals of logic design, provides an understanding of the implementation of a given architecture. Topics include adders, shifters,
multipliers, and flip-flops. Higher levels include pipelining and caches. Other topics include storage (along with input/output) and
multiprocessors. Laboratory work includes an assembler with which students write assembly language programs and possibly a digital
logic design package.
Prerequisite(s): COS 140. Every fall.
Credit: 4
COS 341 - Fund of Theory Comp
Credit: 4
COS 377 - Intermediate Topics in Computer Science
Each time this course is offered a Computer Science topic will be chosen which requires a background (at least 12 hours) in college
level computing experience. It may be repeated for credit with different topics. The topics offered will be ones which are not covered
in the regular course offerings of the division.
Prerequisite(s): Minimum 12 credits of Computer Science, including COS 142. Varies.
Credit: 4
COS 477 - Advanced Topics in Computer Science
Each time COS 477 is offered the content will be determined by the needs of the students and the interests of the faculty. However,
the content will deal with the area of databases since this course can satisfy the Computer Science major requirement of COS 455. It
may be repeated for credit with different database topics.
Prerequisite(s): 12 credits of Computer Science including COS 142. Varies.
Credit: 4
COS 497 - Independent Study in Computer Science III
An opportunity to pursue independent study of selected computer science topics under the direction of a faculty member. The course
may be repeated for a different topic.
Prerequisite(s): 12 credits of Computer Science and permission of instructor. Varies.
Credit: 1-4
MAT 141M - Calculus I
Introduction to the basic concepts of limit, differentiation, and integration; study of their applications to problems in rates of change,
extrema, and area between curves. Includes both rational and transcendental functions. Every semester.
Credit: 4
MAT 151M - Foundations of Abstract Mathematics
This course considers the basic objects of mathematics and the methods used to elucidate their properties. Predicate logic and the
theory of sets, relations, functions and the natural numbers will be discussed. The student will learn about proving properties of these
objects.
Prerequisite(s): Three years of high school mathematics (two years of Algebra and one of Geometry.) Letter grade. Every semester.
Credit: 4
MAT 220M - Data Analysis
This course is intended for those majoring in mathematics, secondary mathematics education, or computer science. The course is
designed to contain the content of AP statistics, but at the deeper level required for pre-service teachers. Topics covered include
descriptive statistics, regression and correlation, sampling and experimentation, basic probability, normal distributions, sampling
distributions, point estimation, confidence intervals, hypothesis testing for means and proportions, two-sample t-tests for means, chisquared tests, and possible other topics. Appropriate technology will be used.
Prerequisite(s): MAT 141M or permission of instructor. Every fall.
Credit: 4
MAT 142 - Calculus II
Continuation of the investigation of differentiation and integration begun in MAT 141M, examining techniques of integration,
indeterminate forms, and infinite series including Taylor series. Applications studied will include volumes of solids of revolution and
work.
Prerequisite(s): MAT 141M with a grade of C- or better. Every spring.
Credit: 4
MAT 242 - Differential Equations
An introduction to Ordinary Differential Equations focusing on first order equations, linear equations of higher order, systems of
differential equations, and basic numerical methods. Other topics will be considered as time permits.
Prerequisite(s): MAT 142. Even spring.
Credit: 4
MAT 251 - Linear Algebra
Introduction to linear algebra and its applications. Topics may include matrix operations, systems of linear equations, determinants,
vector spaces, linear transformations, orthogonality, eigenvalues, Markov processes, linear programming and the use of mathematical
software in modeling and problem solving.
Prerequisite(s): Two years of high school algebra or permission of instructor. Every spring.
Credit: 4
MAT 333 - Graph Theory and Combinatorics
The two areas of Mathematics considered in this course highlight the interplay between different parts of Mathematics. The
elementary and sophisticated counting methods of Combinatorics elucidate properties of Graphs while the Theory of Graphs
stimulates and provides insights into counting methods. Applications to the understanding of problems are an integral part of the
course.
Prerequisite(s): MAT 151M. Odd spring.
Credit: 4
MAT 367 - Intermediate Statistics
The focus of this course is determining and conducting the appropriate analysis for different types of data and various applications.
Topics covered include experimental design, power, confidence intervals and hypothesis testing for two populations, contingency
tables, one-way and two-way ANOVA, multiple regression, logistic regression, and non-parametric statistics. A statistical computer
package will be used.
Prerequisite(s): MAT 120M or MAT 220M. Odd spring.
Credit: 4
MAT 371 - Mathematical Probability
An introduction to Probability using the tools learned in courses through Calculus. Combinatorial and integral methods will be used to
calculate probabilities and expectations of functions of random variables. There will be discussion of Discrete and Continuous
Probability Distributions including Binomial, Poisson, Normal, Gamma and Multivariate Distributions.
Prerequisite(s): MAT 142. Every fall.
Credit: 4