Major Requirements

Requirements for a computer science major are summarized below. Calculus I and a programming course should be completed first. A student can declare a major in computer science during the 2nd year and still complete the requirements. A 1st-year student who intends to major in computer science should consider one of these typical plans.

Prerequisites

COSC 235. Programming and Problem SolvingIn this course students are to learn to write computer programs using the a high level programming language. Students are introduced to problem solving and algorithm development, with emphasis on good programming style. (3/0/3)

Math 181. Calculus I
A graphical, numerical, and symbolic study of the theory and applications of the derivative of algebraic, trigonometric, exponential, and logarithmic functions, and an introduction to theory and applications of the integral. Suitable for students of both the natural and social sciences. A graphing calculator is required. (3/0/3)

Computer Science Requirements

COSC 350. Data StructuresThis course is an introduction to the formal study of data structures such as arrays, stacks, queues, lists, and trees along with algorithm design and analysis of efficiency. Prerequisite: "C" or better in Computer Science 235 (3/0/3)

COSC 410. Software EngineeringThe goal of this course is to study software engineering through a project-oriented approach. The emphasis will be on the specification, organization, implementation, testing, and documentation of software. Students will work in groups on various software projects. Prerequisite: "C" or better in Computer Science 235. (3/0/3)

Physics 203. Computer Organization and InterfacingThis course is situated at the point where software meets hardware. From there it reaches downward to the microcode level and upward to the system level. To meet the needs of scientists and computer scientists, the logical and physical foundations on which computer systems are built are developed with enough rigor that functioning computer systems can be successfully altered for new applications during the laboratory component of the course. The algorithm design and control programming required for this progresses during the course from the microcode and machine language level, through hand assembly, to full assembly methods. The course concludes with an analytical comparison of competing contemporary architectures. (3/3/4)

And at least nine semester hours of the following:

COSC 310. Computer GraphicsThis course is an introduction to computer graphics. Particular emphasis will be placed on the algorithms used to produce 2D graphics with a computer. Topics will include graphics devices, line drawing, polygons, circles, vectors, transformations of pictures, raster graphics, curves, and an introduction to 3D graphics. Prerequisites: Mathematics 181 and "C" or better in Computer Science 235 (3/0/3)

COSC 315. Computer NetworksA comparative study of high-level programming languages, including study of the design, evaluation, and implementation of such languages. Emphasis is placed on the ways in which such languages deal with the fundamentals of programming. Prerequisites: C or higher in Computer Science 235. (3/0/3)

COSC 320. Programming LanguagesThis course is a comparative study of high-level programming languages, including study of the design, evaluation, and implementation of such languages. Emphasis is placed on the ways in which such languages deal with the fundamentals of programming. Prerequisite: "C" or better in Computer Science 235. (3/0/3)

COSC 340. Theory of ComputationThis course is a study of formal models of computation, such as finite state automata and Turing machines, along with the corresponding elements of formal languages. These models are used to provide a mathematical basis for the study of computability and to provide an introduction to the formal theory behind compiler construction. Prerequisites: "C" or better in Computer Science 235 (3/0/3)

COSC 360. Operating SystemsThis course discusses fundamental concepts that are applicable to a variety of operating systems, such as tasking and processes, process coordination and synchronization, scheduling and dispatch, physical and virtual memory communications and networking. Prerequisites: "C" or better in Computer Science 350 (3/0/3)

COSC 370. Data and VisualizationData and Visualization is part of the interdisciplinary field of computational science. The course contains a brief introduction to the network environment and the UNIX operating system. Because large Web-accessed databases are becoming prevalent for storing scientific information, the course will cover the concepts and development of distributed relational databases. Effective visualization of data helps scientists extract information and to communicate results. Thus, students will learn fundamental concepts, tools, and algorithms of computer graphics and scientific visualization in two and three dimensions. Throughout, applications in the sciences will be emphasized. Prerequisites: "C" or better in Computer Science 235 (3/0/3)

COSC/MATH 435. CryptologyAn introduction to cryptology and modern applications. Students will study various historical and modern ciphers and implement select schemes using mathematical software. Cross-listed with MATH 435. Prerequisites: MATH 220 and either MATH 235 or 260. (3/0/3)

COSC 470. Advanced Independent Study in Computer Science
Independent study of selected topics in Computer Science at an advanced level. specific topics vary from semester to semester. Prerequisite: Permission of the instructor. (Variable credit in class or lab up to 4 hours)

Mathematics 182. Calculus IIA graphical, numerical, and symbolic study of the theory, techniques, and applications of integration, and an introduction to infinite series and/or differential equations. A graphing calculator is required. Prerequisite: Mathematics 181 or equivalent. (3/0/3)

Mathematics 235. Discrete Mathematical ModelsAn introduction to some of the important models, techniques, and modes of reasoning of non-calculus mathematics. Emphasis on graph theory and combinatorics. Applications to computing, statistics, operations research, and the physical and behavioral sciences. (3/0/3)

At least one of the following:

Mathematics 140. StatisticsAn introduction to statistical thinking and the analysis of data using such methods as graphical descriptions, correlation and regression, estimation, hypothesis, testing, and statistical models. A graphing calculator is required. (3/0/3)

Mathematics 201. / COSC 201. Modeling and Simulation for the Sciences Modeling and Simulation is part of the interdisciplinary field of computational science. Large, open-ended scientific problems often require the algorithms and techniques of discrete and continuous computational modeling and Monte Carlo simulation. Students will learn fundamental concepts and implementation of algorithms in various scientific programming environments: a computer algebra system, distributed computation, and parallel processing. Throughout, applications in the sciences will be emphasized. Prerequisite: None (3/0/3)

Mathematics 320. Mathematical ModelingThe study of problem-solving strategies to solve open-ended, real-world problems. The computer algebra system Mathematica will be used to aid in the modeling process. Prerequisites: Mathematics 220 and Computer Science 235 or Computer Science 220 (3/0/3)

COSC 340. Theory of Computation
This course is a study of formal models of computation, such as finite state automata and Turing machines, along with the corresponding elements of formal languages. These models are used to provide a mathematical basis for the study of computability and to provide an introduction to the formal theory behind compiler construction. Prerequisites: "C" or better in Computer Science 235 (3/0/3)

Ethics Requirement (one of the following)

PHIL 210. Bio-Medical EthicsAn introduction to ethics through a study of its applications in the area of health care. The course includes a survey of the major ethical theories and focuseson a selection of important problem areas such as euthanasia, reproductive technologies, human experimentation, and the justice of health care distribution. This course may count toward the requirements for the Medical Humanities Program. (3/0/3)

PHIL 213. Ethics and BusinessAn introduction to ethics through discussion and analysis of major ethical systems, theories of social and economic justice, and specific case studies in the area of business. (3/0/3)

PHIL 215. Environmental EthicsAn exploration of the challenges presented by the ethical analysis of environmental issues. The course explores both the theoretical and practical aspects of these issues. This course may count toward the requirements in Environmental Studies. (3/0/3)

PHIL 218. Computers, Ethics and SocietyAn introduction to ethics in relation to computers, cyberspace, and the digital era. Through the detailed analysis of selected case studies, the course will explore the questions raised by computer technologies and their impact on business, scientific research, and society. (3/0/3)