The Computer Science major is designed to prepare students for either professional employment in the computer science and programming fields or for graduate study in computer science. Students receive a thorough grounding in modern computer science theory and learn how this theory can be applied to the design of complex software systems.
The curriculum begins with a year-long introduction to the art and science of computer programming, using the Java language. This introduces concepts of object-oriented programming, development and analysis of algorithms and principles of software design.
The student’s intermediate years involve the study of how hardware is constructed and organized, the nature and development of programming languages, the study of efficient data structures and algorithms and the theoretical study of the computational process. Experience is gained using procedural, functional, logic, and object-oriented programming languages. At each stage, appropriate mathematics is used as a method of describing and reasoning about computing systems.
The student’s final year is devoted to using this foundation to design and engineer major software projects in areas such as compiler and operating system design, computer graphics, or artificial intelligence for real clients.
Incorporated into the major is a strong mathematics and natural science component. Calculus, discrete mathematics, and probability and statistics form the nucleus of a math program that earns the graduate a core concentration in mathematics. The program also includes a minimum of three semesters of lab-based science. Students may elect to earn a minor in mathematics (by taking a sixth mathematics course) or to take a fourth science course.
While rigorous, three free electives permit the student to pursue an interest in an unrelated discipline. With the addition of two or three courses, most students would be able to earn a minor in an additional field.
The Computer Science Program is designed to enable graduates to anticipate and to respond effectively to the uncertainties of a changing technological, social, political and economic world. Specific program educational objectives and outcomes include:
Program Educational Objectives
During the first few years after graduation, we expect our graduates to:
The major in computer science leads to the Bachelor of Science degree. Students normally complete a minimum of 121 credits, including satisfaction of all University Core Curriculum requirements. The approved outline is as follows:
First Year (14 credits) - Fall
| COMSC | 110 | Introduction to Computer Science I & Lab | (4 credits) |
| CORE | 102 | History and the Modern World | (3 credits) |
| MATH | 213 | Calculus I & Lab | (4 credits) |
| WTNG | 102 | Expository Writing | (3 credits) |
First Year (15 credits) - Spring
| COMSC | 111 | Data Structures & Lab | (4 credits) |
| MATH | 214 | Calculus II & Lab | (4 credits) |
| MATH | 221 | Discrete Mathematics | (3 credits) |
|
Science course sequence & lab (first course) (4 credits) (BIO103 or CHEM191 or PHYS201) |
(4 credits) |
Second Year (17 credits) - Fall
| COMSC | 210 | Principles of Computer Organization & Lab | (4 credits) |
| CORE | 103 | Human Behavior in Perspective | (3 credits) |
|
Science course sequence & lab (second course) (BIO104 or CHEM192 or PHYS202) |
(4 credits) | ||
| WTNG | 220 | Critical Writing for the Professions | (3 credits) |
| MATH | Math Elective (200 or above) | (3 credits) |
Second Year (16 credits) - Spring
| COMSC | 230 | Principles of Programming Languages | (3 credits) |
| CORE | 104 | Literature, Philosophy and the Ascent of Ideas | (3 credits) |
| MATH | 315 | Probability & Statistics | (3 credits) |
| Additional science course with lab (CORE 101 is not acceptable) | (4 credits) | ||
| Elective | (3 credits) |
Third Year (15 credits) - Fall
| COMSC | 240 | Theory of Computation | (3 credits) |
| COMM | 210 | Introduction to Public Speaking | (3 credits) |
| CORE | 105 | The Artistic Impulse | (3 credits) |
| ENGR | 455 | Data Communication | (3 credits) |
| Computer Science Elective | (3 credits) |
Third Year (15 or 16 credits) - Spring
| COMSC | 220 | Analysis of Algorithms | (3 credits) |
| ENGR | 445 | Dynamic Modeling and Control | (3 credits) |
| ENGR | 465 | Network Analysis & Design | (3 credits) |
| Computer Science Elective | (3 credits) | ||
| MATH | Math Elective (200 or above) | (3 credits) | |
| or | |||
| Science elective | (3/4 credits) |
Fourth Year (15 credits) - Fall
| COMSC | 320 | Principles of Operating Systems | (3 credits) |
| CORE | Core Interdisciplinary Senior Seminar | (3 credits) | |
| COMSC | 490 | Integrated Senior Design I | (3 credits) |
| ENGR | 270 | Digital Systems Design & Lab | (4 credits) |
| Elective | (3 credits) |
Fourth Year (13 credits) - Spring
| COMSC | 310 | Language Translation and Compiler Design | (3 credits) |
| COMSC | 401 | Computer Science Senior Seminar | (1 credit) |
| COMSC | 492 | Integrated Senior Design II | (3 credits) |
| Computer Science Elective | (3 credits) | ||
| Elective | (3 credits) |
Total: 121 Semester Credits
Computer science electives must be selected from the following list:
| COMSC | 410 | Artificial Intelligence | (3 credits) |
| COMSC | 450 | Special Topics (with permission of advisor) | (3 credits) |
| ENGR | 240 | Circuit Theory & Lab | (4 credits) |
| ENGR | 424 | Digital Signal Processing | (3 credits) |
| ENGR | 450 | Mechatronics & Lab | (4 credits) |