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.

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

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