Computer Science
Total minimum number of credits required for a major in Computer Science leading to
the B.A. degree — 120.
Total minimum number of credits required for a major in Computer Science leading to
the B.S. degree — 120.
Total minimum number of credits required for a minor in computer science — 17.
The Department of Mathematics and Computer Science offers a program study leading to the B.A. or B.S degree with a major in Computer Science. Interested students may also pursue Computer Science as a minor area of study.
Computer Science Major
The Computer Science curriculum consists of theoretical as well as applicationoriented courses and is based on a strong foundation in mathematics. The B.A. degree is intended for those interested in management and social sciences, whereas the B.S. degree requires greater concentration in the engineering, natural, and physical sciences. The Computer Science prepares students for graduate study and research in the discipline or for employment in government or industry. Students are encouraged, through the pursuit of a minor or second major, to acquire competence in an area that lends itself to meaningful computer applications.
Because certain required and elective courses are offered in either alternative semesters or alternative years, or when demand warrants, degree candidates are strongly encouraged to meet with their advisors on a regular basis to discuss their academic schedule to ensure satisfactory progress toward the degree.
Computer Science Major  Required Courses and Recommended Course Sequence
First Semester 
B.A. 
B.S. 
CS125 Computer Science I 
4 
4 
FYF101 FirstYear Foundations 
3 
3 
ENG101 Composition or 
4/3 
4/3 
MTH111 Calculus I 
4 
4 

1415 
1415 
Second Semester 
B.A. 
B.S. 
CS126 Computer Science II 
4 
4 
MTH112 Calculus II 
4 
4 
CS246 C and Unix 
3 
3 
ENG101 Composition or 
4 
4 

1415 
1415 
Third Semester 
B.A. 
B.S. 
CS225 Computer Science III 
3 
3 
MTH231 Discrete Mathematics 
3 
3 
Laboratory Science Sequence 
0 
4 
Distribution Requirements 
9 
6 

16 
17 
Fourth Semester 
B.A. 
B.S. 
CS226 Computer Science IV 
3 
3 
MTH232 Discrete Mathematics II 
3 
3 
Laboratory Science Sequence 
0 
4 
Distribution Requirement(s) 
6 
3 
ENG202 Tech. & Prof. Writing 
3 
3 

15 
16 
Fifth Semester 
B.A. 
B.S. 
CS326 Operating System Principles or CS328Analysis of Algorithms 
3 
3 
MTH150 Elementary Statistics or 
3 
3 
Laboratory Science Elective 
0 
4 
Distribution Requirements or Free Electives 
9 
6 

15 
16 
Sixth Semester 
B.A. 
B.S. 
CS334 Software Engineering 
3 
3 
CS Elective or CS330 Computer Arch. 
3 
3 
CS Elective or 
3 
3 
Free Electives 
6 
6 

15 
15 
Seventh Semester 
B.A. 
B.S. 
CS391 Senior Projects 1 
1 
1 
CS Elective 
3 
3 
CS326 Operating System 
3 
3 
Free Electives 
69 
69 

1316 
1316 
Eighth Semester 
B.A. 
B.S. 
CS392 Senior Projects II 
2 
2 
CS Elective or CS330 
3 
3 
CS Elective or CS319 Programming Languages or 
3 
3 
Free Electives 
69 
69 

1417 
1417 
Science Electives for Computer Science Majors
B.A. candidates
see General Education Curriculum requirements
B.S. candidates
A laboratory science sequence, which must be one of the following:
BIO121; BIO122
CHM113 & CHM115; CHM114 & CHM116
EES211; EES230
PHY201; PHY202
and
one additional fourcredit course in Biology, Chemistry, Earth and Environmental Sciences, Physics, or any Engineering course not crosslisted in Computer Science. The course must be number above 200, except that BIO121, BIO122, CHM113 and CHM115, CHM114 and CHM116 are also acceptable in fulfilling this requirement.
Computer Science Electives for Computer Science Majors
CS319 or CS323 or CS327 and three additional 300level CS courses not listed as a required course.
Summary of the minimum credit distribution for the major in Computer Science:
B.A. and B.S.
CS125 – Computer Science I 4
CS126 – Computer Science II 4
CS225 – Computer Science III 3
CS226 – Computer Science IV 3
CS246 – C and Unix 3
CS326 – Operating System Principles 3
CS328 – Algorithms 3
CS330 – Computer Architecture 3
CS334 – Software Engineering 3
CS391 – Senior Projects I 1
CS392 – Senior Projects II 2
CS319 – Principles of Programming Languages or
CS323 – Theory of Computation or
CS327 – Compiler Design 3
CS Electives 9
MTH111 – Calculus I 4
MTH112 – Calculus II 4
MTH231 – Discrete Mathematics I 3
MTH232  Discrete Mathematics II 3
MTH150 – Elementary Statistics or
MTH351 – Probability and Statistics I 3
ENG101 – Composition 4
ENG202 – Technical and Professional Writing 3
FYF101 – FirstYear Foundations 3
Science Electives (B.A.) 6 (B.S.) 12
Distribution Requirements 18
Free Electives (B.A.)25 (B.S.) 19
Total minimum number of credits required for degree completion 120
Summary of the minimum credit distribution for the major in Computer Science – 120
Computer Science Minor
A minor in Computer Science requires the completion of 17 credits, consisting of the following courses:
Required Courses (14 credits) Credits
CS125 – Computer Science I 4
CS126 – Computer Science II 4
CS225 – Computer Science III 3
CS226 – Computer Science IV 3
and
one additional 300level course, excluding CS321, CS324, CS360, CS363, and CS364. 3
Total Credits 17
Computer Science
CS198, CS298, CS398. Topics in Computer Science
Study of one or more special topics in computer science. May be repeated for credit
if different topics are emphasized. Offered when demand warrants.
CS115. Computers and Applications
An introduction to computers and computing, with emphasis on personal computing in both the Windows and OS X operating systems. Extensive handson experience will involve the application of current commercial software (including word processing, database, and spreadsheet). Not open to students who have received credit in any 200level CS course. Students majoring in either Computer Science or Computer Information Systems will not receive credit for this course.
CS125. Computer Science I
Introduction to information technology and programming (history of computing, text
editors, word processing, spreadsheets, introduction to programming), basic data types,
functions, decision structures, loops, one and twodimensional list structures, testing,
debugging, and an introduction to computer graphics. Three hours of lecture and two
hours of lab per week. Offered every fall and spring.
Click here for course fee.
CS126. Computer Science II
A study of advanced programming concepts, structures, and techniques (professional
and ethical issues, testing and debugging, fundamentals of programming, basic data
structures—strings, lists, multidimensional arrays, objects, hashes, inheritance,
polymorphism, recursion, divide and conquer, machine representation of data, hardware
components, machine instructions). Three hours of lecture and two hours of lab per
week. Offered every fall and spring.
Click here for course fee.
CS225. Computer Science III
A study of the use of a highlevel language to implement basic data structures such
as strings, lists, arrays, objects, and hashes, and their application to searching,
sorting, and hashing. Representation of numbers and strings at the machine level.
The course will also include an introduction to the concepts of algorithm design and
problem solving with an emphasis on algorithm development, analysis, and refinement.
Offered every fall.
Click here for course fee.
CS226. Computer Science IV
A continuation of CS225. Topics include programming language paradigms, advanced use of word processors and spreadsheets, including macros, linked data structures, and an introduction to discrete mathematics, including counting, probability, and graphs. Offered every spring.
Click here for course fee.
CS246. C and Unix
An introduction to using Unix operating systems, including shells, file manipulation,
text editors, filters, and regular expressions. Fundamentals of C programming, including
loops, arrays, functions, recursion, pointers, structures, unions, input/output, and
system calls.
Click here for course fee.
CS265. Medical Informatics
This course will cover basic principles of computer use and information management
in health care (including general medicine, dentistry, optometry, and pharmacy). Topics
will include basic computing concepts, the characteristics of medical data, and the
use of computers in the administrative, diagnostic, and research oriented medical
tasks. The course is primarily directed towards students who intend to pursue careers
in healthrelated fields. Offered every spring.
Click here for course fee.
CS283. Web Development I
An introduction to the development of interactive web sites, including HTML, JavaScript,
forms and CGI programs; server side includes cookies, web server configuration and
maintenance. Offered in the fall semester of oddnumbered years when demand warrants.
Click here for course fee.
CS285. Mobile Applications
An introduction to programming mobile application development, including dragging,
rotating, scaling, file manipulation, and navigation.
Click here for course fee.
CS317. Software Integration
An introduction to the integration of application programs, including email clients,
word processors, spreadsheets, and database systems using Microsoft Office and Visual
Basic.
Click here for course fee.
CS319. Principles of Programming Languages
A study of the principles that govern the design and implementation of programming
languages. Topics include language structure, data types, and control structures.
Programming projects will familiarize students with features of programming languages
through their implementation in interpreters.
Click here for course fee.
CS321. Simulation and Data Analysis
Methods of handling large databases, including statistical analysis and computer simulations.
The emphasis will be upon discrete simulation models with a discussion of relevant
computer languages: ARENA, GPSS, and SIMSCRIPT.
Click here for course fee.
CS323. Theory of Computation
This course formalizes many topics encountered in previous computing courses. Topics
include languages, grammars, finite automata, regular expressions and grammars, contextfree
languages, pushdown automate, Turing machines, and computability.
Click here for course fee.
CS324. Systems Analysis
A study of the design and implementation of large computer projects. Special emphasis
is placed on applications to business systems. Students will use a CASE tool for automated
systems analysis and design.
Click here for course fee.
CS325. Database Management
Practical experience involving a largescale computer problem, including determination
of data requirements, appropriate data organization, data manipulation procedures,
implementation, testing, and documentation.
Click here for course fee.
CS326. Operating System Principles
Analysis of the computer operating systems, including Batch, Timesharing, and Realtime
systems. Topics include sequential and concurrent processes, processor and storage
management, resource protection, processor multiplexing, and handling of interrupts
from peripheral devices.
Click here for course fee.
CS327. Compiler Design
A study of compiler design, including language definition, syntactic analysis, lexical
analysis, storage allocation, error detection and recovery, code generation, and optimization
problems.
Click here for course fee.
CS328. Algorithms
Theoretical analysis of various algorithms. Topics are chosen from sorting, searching,
selection, matrix multiplication of real numbers, and various combinatorial algorithms.
Click here for course fee.
CS330. Computer Architecture
A study of the design, organization, and structure of computers, ranging from the
microprocessors to the latest 'supercomputers.' An emphasis will be placed on machine
language, instruction formats, addressing modes, and machine representation of numbers.
Click here for course fee.
CS334. Software Engineering
A course in 'programming in the large.' Topics include software design, implementation,
validation, maintenance, and documentation. There will be one or more team projects.
Click here for course fee.
CS335. Advanced Database Concepts
Practical experience involving unstructured data collections. Topics cover big data,
data mining, predictive modeling, decision analysis and indexing and retrieval including
probabilistics, clustering, thesauri and passage based retrieval strategies.
Click here for course fee.
CS340. Artificial Intelligence
This course will provide an overview of artificial intelligence (AI) application areas
and handson experience with some common AI computational tools. Topics include search,
natural language processing, theorem proving, planning, machine learning, robotics,
vision, knowledgebased systems (expert systems), and neural networks.
Click here for course fee.
CS350. ObjectOriented Programming
Objectoriented concepts and their application to humancomputer interaction. Concepts
to be covered include objects, classes, inheritance, polymorphism, design patterns,
GUI interface guidelines, and design of interfaces. There will be programming projects
in one or more objectoriented languages using one or more GUI interface guidelines.
Click here for course fee.
CS355. Computer Networks
This course introduces basic concepts, architecture, and widely used protocols of
computer networks. Topics include the Open System Interconnection (OSI) model consisting
of physical link layer, data layer, network layer, transport layer, session layer,
presentation layer, and application layer, the medium access sublayer and LAN, various
routing protocols, Transmission Control Protocol (TCP), and Internet Protocol (IP)
for internetworking.
Click here for course fee.
CS363. Operations Research
A survey of operations research topics such as decision analysis, inventory models, queuing models, dynamic programming, network models and linear programming. Crosslisted with MTH363.
Click here for course fee.
CS364. Numerical Analysis
An introduction to numerical algorithms as tools to providing solutions to common problems formulated in mathematics, science, and engineering. Focus is given to developing the basic understanding of the construction of numerical algorithms, their applicability, and their limitations. Crosslisted with MTH364. Offered Spring odd years.
CS366. 3 Dimensional Environments and Animation
This course will explore the foundations of 3dimensional animation processes as they apply to multiple mediums. Students will build computerbased models and environments, texture, light, animate, and render content for Integrative Media projects or as standalone pieces. Crosslisted with IM350.
Click here for course fee.
CS367. Computer Graphics
Introduction to equipment and techniques used to generate graphical representation
by computer. Discussion of the mathematical techniques necessary to draw objects in
two and threedimensional space. Emphasis on application programming and the use
of a highresolution color raster display.
Click here for course fee.
CS368. 3 Dimensional Game Development
An overview of simulation, enginebased, and realtime game systems with a focus on theory, creation, and animation of threedimensional models used within a game context. Crosslisted with IM368.
Click here for course fee.
CS370. Special Projects
Requirements: Senior standing and approval of the department chairperson.
CS383. Web Development II
An introduction to the development of dynamic, databasedriven sites, including active
server pages, PHP, authentication, session tracking and security, and the development
of shopping cart and portal systems.
Click here for course fee.
CS391. Senior Projects I
Design and implementation of a software project under the direction of a faculty member.
Students will normally work in teams. Detailed requirements and design documents are
required and will be presented at the end of the semester. Offered every fall.
Click here for course fee.
CS392. Senior Projects II
Design and implementation of a software project under the direction of a faculty member.
Students will normally work in teams. Production of a finished product, including
software and documentation, is required. There will be an open forum presentation
of the project at the end of the semester. Offered every spring.
Click here for course fee.
CS399. Cooperative Education
Professional cooperative education placement in a private or public organization related to the student’s academic objectives and career goals. In addition to their work experiences, students are required to submit weekly reaction papers and an academic project to a Faculty Coordinator in the student’s discipline. See the Cooperative Education section of this bulletin for placement procedures.Requirements: Sophomore standing; minimum 2.0 cumulative GPA; consent of the academic advisor; and approval of placement by the department chairperson.
Mathematics
MTH198, MTH289, MTH398, MTH498. Topics in Mathematics
A study of topics of special interest. It may be a continuation of intensive study of topics begun in the upperlevel courses in analysis, topology, algebra, and probability. May be repeated for credit for a different topic.
Varies with topic
MTH94. College Algebra
Designed for students who need to review basic algebra before taking MTH100 or MTH150. Topics include polynomials, solution of equations and inequalities, exponents and radicals, graphing, and solution of systems of equations. Offered every fall.
MTH100. Precalculus
A course in advanced algebra and trigonometry designed to prepare students for calculus. Topics include functions, inverse functions, logarithms, exponentials, and trigonometry.
MTH101. Solving Problems Using Mathematics
An introduction to the methodology of mathematical modeling as a technique in working towards the solution to real world problems. In an effort for the nonspecialist to gain an appreciation of the use of mathematics in our society, topics are selected from among the following: basic voting theory, fair division schemes, routing problems, population growth, and descriptive statistics and probability.
MTH103. Mathematics for Elementary School Teachers
A study of the theory of arithmetic, structure of the number systems, and other topics relevant to the teaching of mathematics in elementary schools. Offered every fall.
MTH104. Mathematics for Elementary School Teachers II
A continuation of MTH103. Topics include elementary probability, statistics, and geometry. Offered every spring.
MTH111. Calculus I
Calculus of functions of one variable. Topics include functions, limits and continuity, derivatives and integrals. Course will focus on applying conceptual aspects of calculus to modeling and solving problems from across the sciences and engineering.
MTH112. Calculus II
A continuation of MTH111. Topics include inverse functions, techniques of integration, applications of the integral, and infinite sequences and series.
MTH114. Calculus and Modeling for the Biological and Health Sciences
A continuation of MTH 111 for students in the biological and environmental sciences. Topics include integrals, differential equations and continuous dynamical systems, stochastic models and Markov chains, and discrete and continuous probability models. Course will focus on applying ideas from calculus to modeling and solving problems drawn from the biological and environmental sciences. Major credits cannot be granted for both MTH 112 and MTH 114.
MTH150. Elementary Statistics
Elementary statistical inference, with an emphasis on ideas, techniques, and applications in the life, physical, and social sciences. Topics include descriptive statistics, confidence intervals, hypothesis testing, contingency tables, multiple regression, and analysis of variance. Not open to mathematics majors or students with credit in MTH 351.
MTH211. Introduction to Ordinary Differential Equations
Firstorder and linear higher order differential equations; matrices, determinants,
and systems of differential equations; numerical and power series methods of solution;
the Laplace transform. Offered every fall.
MTH212. Multivariable Calculus
Differential and integral calculus of real and vector valued functions. Topics include
continuity, partial differentiation, implicit functions, Taylor’s Theorem, gradient,
curl, line, surface, and multiple integrals, inverse functions, theorems of Green
and Stokes. Offered every spring.
Click here for course fee.
MTH214. Linear Algebra
An axiomatic approach to vector spaces, linear transformations, systems of linear equations, Eigen values, and Eigen vectors. Offered every spring.
MTH231. Discrete Mathematics I
An introduction to logic, sets, relations, and counting for students in the mathematical and computing sciences. Topics include: Introduction to symbolic logic; types of proof including direct proof and proof by contradiction; introduction to mathematical induction; elementary set theory including sets, equivalence and partial order relations and functions; basic counting principles including permutations and combinations with and without multiplicity, the Binomial Theorem, an introduction to combinatorial proof and the Pigeonhole Principle; Introduction to recursive definition, solving firstorder recurrences using iteration; solving linear homogeneous and nonhomogeneous recurrences with constant coefficients.
MTH232. Discrete Mathematics II
A continuation of MTH231 providing background in discrete mathematics. Emphasis will be placed on the development of mathematical algorithms and their usage in computer science. Topics include: Introduction to divisibility, the integers, and the Euclidean Algorithm; growth rates of functions, big OH notation and an introduction to algorithm analysis including analyzing iterative and recursive algorithms; basics of graph theory including paths, cycles, graph isomorphism, and graph colorings; introduction to greedy algorithms and their use; trees, spanning trees, binary trees and related algorithms; introduction to combinatorial circuits and Boolean algebra, introduction to finite state machines.
MTH302. Introduction to Higher Mathematics
A continuation of MTH231 which provides foundational background for upperlevel courses in pure mathematics. Topics include advanced studies of relations including a review of equivalence relations, an introduction to partial order and total order relations; properties of the integers including divisibility, the notion of congruence, the Euclidean Algorithm, and the Fundamental Theorem of Arithmetic; properties of the real number system including axioms for the real numbers, subsets of the real number system (including the integers, rational numbers, and irrational numbers), the completeness of the real number system; properties of sets and functions including cardinality, countable vs uncountable sets, the cardinal hierarchy of infinite sets and the Continuum Hypothesis.
MTH303. The Teaching of Mathematics in Middle Level and Secondary Schools
This course deals with educational perspectives that pertain to the teaching of mathematics at the middle and secondary levels (grades 4 through 12). Topics of discussion include recommendations by the National Council for Teachers of Mathematics (NCTM) regarding instructional methods, assessment, techniques, and curricular issues. The course includes a 40hour practicum. Offered in the fall semester of oddnumbered years.
MTH311. Real Analysis
A rigorous study of the topology of the real line, limits, continuity, differentiation, integration, and series of functions. Offered in the fall semester of evennumbered years.
MTH314. Complex Analysis
Complex functions, limit, continuity, analytic functions, power series, contour integration, Laurent expansion, singularities, and residues. Offered when demands warrants.
MTH331. Abstract Algebra I
A rigorous study of elementary number theory, groups, rings, and fields. Offered in the fall semester of oddnumbered years.
MTH343. Geometry
A study of selected topics from Euclidean and nonEuclidean geometry. Offered in the fall semester of evennumber years.
MTH351. Probability and Mathematical Statistics I
Random variables, probability distributions, expectation and limit theorems, introduction to confidence intervals and hypotheses testing. Offered every fall.
MTH352. Probability and Mathematical Statistics II
Hypothesis testing, nonparametric methods, multivariate distributions, introduction to linear models. Offered in the spring semester of oddnumbered years when demand warrants.
MTH354. Statistical Methodology
This course emphasizes applications, using statistical computer packages, such as BMDP, SPSS, and JMP, and real data sets from a variety of fields. Topics include estimation and testing, stepwise regression, analysis of variance and covariance, design of experiments, contingency tables, and multivariate techniques, include logistic regression. Offered in the spring semester of evennumbered years when demand warrants.
MTH361. Partial Differential Equations
Partial differential equations and boundary value problems, inner product spaces,
orthogonal functions, eigenvalue problems, SturmLiouville equations, Fourier series,
Fourier transforms, Green's functions, and classical equations of engineering and
physics. Offered fall of even years.
Click here for course fee.
MTH362. Advanced Calculus
Topics from advanced calculus including matrix representation of differentials and
the multivariable chain rule, vector calculus, curvilinear coordinates, tensors, change
of variables in higher dimensions, improper multiple integrals, applications of line
and surface integrals, differential forms and the general Stokes theorem, potential
theory, and Taylor's formula for functions of several variables. Offered Fall of odd
years.
Click here for course fee.
MTH363. Operations Research
A survey of operations research topics such as decision analysis, inventory models, queuing models, dynamic programming, network models and linear programming. Crosslisted with CS363. Offered in the spring semester of oddnumbered years when demand warrants.
Click here for course fee.
MTH364. Numerical Analysis
Numerical techniques for solving equations, interpolation and function approximation, numerical integration, and differentiation, and solution of differential equations. Error analysis and applications. Crosslisted with CS364. Offered spring of oddnumbered years.
MTH365. Numerical Linear Algebra
Direct and iterative methods for the solution of systems of linear equations, matrix
decompositions, computation of eigenvalues and eigenvectors, and relaxation techniques.
The theoretical basis for error analysis, including vector and matrix norms. Applications
such as least squares and finite difference methods. Offered spring semester of evennumbered
years.
Click here for course fee.
MTH391. Senior Seminar
Presentations and discussions of selected topics in mathematics, conducted by students and faculty.
MTH392. Senior Seminar
Presentations and discussions of selected topics in mathematics, conducted by students and faculty.
MTH397. Seminar
Presentations and discussions of selected topics.
MTH399. Cooperative Education
Professional cooperative education placement in a private or public organization related to the student’s academic objectives and career goals. In addition to their work experiences, students are required to submit weekly reaction papers and an academic project to a Faculty Coordinator in the student’s discipline. See the Cooperative Education section of this bulletin for placement procedures.Requirements: Sophomore standing; minimum 2.0 cumulative GPA; consent of the academic advisor; and approval of placement by the department chairperson.
MTH413. Functions of Several Variables
A modern treatment of the calculus of functions of several real variables. Topics include Euclidean spaces, differentiation, integration of manifolds leading to the classical theorems of Green and Stokes. Offered when demand warrants.
MTH432. Abstract Algebra II
A continuation of MTH331. Polynomial rings, ideals, field extensions, and Galois Theory. Offered when demand warrants.
MTH442. Topology
Metric spaces, topological spaces, countability and separation axioms, compactness, connectedness, product spaces. Offered when demand warrants.
MTH470. Reading Course
Requirements: Senior standing in mathematics and approval of the department chairperson.
MTH999. Precalculus
A course in advanced algebra and trigonometry designed to prepare students for calculus. Topics include functions, inverse functions, logarithms, exponentials, and trigonometry.