# Department of Computer Science

## BS in Computer Science

The B.S. in computer science prepares students for either continued study at the graduate level or entry into the labor market. Students have been successful at both pathways, with some earning doctoral degrees and some reaching high levels in the private sector, including the director of software development at a major corporation. The curriculum includes a required core of courses that not only provides a broad base of fundamental knowledge, but also allows individuals to follow their own specific interests at the advanced level. All courses focus on general principles that will remain valid into the future but use tools and vehicles reflecting contemporary practice.

Computer science is perhaps the most pervasive technology of our time, reaching into every aspect of modern life, from work to recreation. It spans many disciplines, from mathematics and electrical engineering to linguistics, cognitive psychology and graphic design. It is a challenge to provide a definition of the essence of such a sprawling discipline, but one the department faculty like is "Computer science is the study of what can be automated."

Many people imagine that one must learn advanced mathematics to become a computer scientist or software developer. To be sure, some applications, such as computational modeling of physical processes, require techniques from advanced mathematics. Other applications, however, do not require mathematics beyond the basics taught in a strong high school program. Far more important is the ability to think logically and precisely and the ability to devise a plan to solve a problem. Students have successfully transitioned to computer science from a variety of non-technical disciplines, including history, classics, and English literature.

### Program Requirements

In addition to meeting departmental requirements for a major, students must meet the University Core Curriculum requirements. Several required courses for the degree, such as COS 420 Object-Oriented Design and THE 170 Public Speaking, also satisfy Core requirements. Students are encouraged to consult with an academic advisor to identify other overlaps.

Minimum total number of credits required for graduation: 120.

Courses used to fulfill major requirements in sections A through E below must be passed with a grade of C– or better. Courses that are prerequisites to COS courses must be passed with a grade of C or better. The cumulative grade point average of all courses applied to the major must be at least 2.0. A maximum of 3 credits of COS 497 Independent Study in Computer Science can be used to meet a degree requirement.

The specific course requirements are as follows:

A. Computer Science:

COS 160 Structured Problem Solving: Java

COS 161 Algorithms in Programming

COS 170 Structured Programming Laboratory

COS 250 Computer Organization

COS 255 Computer Organization Laboratory

COS 285 Data Structures

COS 350 Systems Programming

COS 360 Programming Languages

COS 398 Professional Ethics and Social Impact of Computing

COS 420 Object-Oriented Design

COS 485 Design and Analysis of Computing Algorithms

B. Computer Systems:

COS 450 Operating Systems or COS 457 Database Systems

C. Completion of three additional COS courses numbered 300 and above, excluding COS 498 Computer Science Internship. Graduate courses in the Department of Computer Science can be used to fulfill requirements in section C.

D. Mathematics and Science:

MAT 145 Discrete Mathematics I

COS 280 Discrete Mathematics II

Enough additional courses from the following list to total, with the two required courses of the last item, at least 15 credit hours:

EGN 181/MAT 181 Computing with Mathematica

EGN 248 Introduction to Differential Equations and Linear Algebra

MAT 148 Applied Calculus

MAT 152 Calculus A

MAT 153 Calculus B

MAT 220 Statistics for the Biological Sciences

MAT 252 Calculus C

MAT 281 Introduction to Probability

MAT 282 Statistical Inference

MAT 295 Linear Algebra

MAT 350 Differential Equations

MAT 352 Real Analysis

MAT 355 Complex Analysis

MAT 364 Numerical Analysis

MAT 366 Deterministic Models in Operations Research

MAT 380 Probability and Statistics

MAT 383 System Modeling and Simulation

MAT 392 Theory of Numbers

MAT 395 Abstract Algebra

MAT 460 Mathematical Modeling

MAT 461 Stochastic Models in Operations Research

MAT 470 Non-Euclidean Geometry

MAT 490 Topology

MAT 492 Graph Theory and Combinatorics

Completion of any two courses from the following:

BIO 105, 106 Biological Principles I: Cellular Biology and Laboratory Biology

BIO 107 Biological Principles II: Evolution, Biodiversity, and Ecology

CHY 113, 114 Principles of Chemistry I and Lab

CHY 115, 116 Principles of Chemistry II and Lab

ESP 101, 102 Fundamentals of Environmental Science and Lab

ESP 125, 126 Introduction to Environmental Ecology and Lab

PHY 121, 114 General Physics I and Lab

PHY 123, 116 General Physics II and Lab

E. Communication Skills:

ITP 210 Technical Writing

THE 170 Public Speaking

### Course Sequence

The following schedule of mathematics and computer science courses is typical for the first and second years.

Fall Spring

First year COS 160 COS 161

COS 170 MAT 145

Second year COS 280 COS 250

COS 285 COS 255