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 to develop a large variety of applets designed to run within the student’s World Wide Web home page. 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.
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 minor in mathematics. The program also includes three semesters of lab-based science in physics and chemistry.
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:
- Apply disciplinary knowledge and skill to analyze, design, implement, and test solutions to applied problems individually and in diverse teams.
- Demonstrate the background for professional practice and graduate study in a discipline related field.
- Continue to grow intellectually and professionally in the computing
sciences.
- Use knowledge and draw on experiences relevant to current and emerging
needs in computing sciences and recognize the social, ethical, and cultural impact of technology in a global setting.
- Take an active role in strengthening the tradition of excellence in the School of Engineering, Computing and Construction Management by assisting the Computer Science Program in achieving its mission and goals.
Program Outcomes
We expect our graduating students to possess:
- demonstrated capabilities in abstraction, algorithm analysis, computer theory computer organization and programming language concepts
- an ability to draw from progressively more complex design-build-test experiences in solving new problems in individual and team settings
- an ability to apply quantitative math-science-engineering knowledge relevant to specific problems
- a recognition of the need for, and an ability to engage in lifelong learning
- an understanding of the impact of CS technologies in applied settings
- an appreciation of the complexities of designing and implementing a software solution that meets customer requirements
- an ability to use suitable writing and speaking sills as part of analyzing, designing, implementing, testing and fielding solutions.
Degree Requirements
The major in computer science leads to the Bachelor of Science degree. Students must complete a minimum of 121 credits, including satisfaction of all University Core Curriculum requirements. The approved outline is as follows:
First Year (15 credits) - Fall
COMSC 110 Introduction to Computer
Science I & Lab (4 credits)
CORE 102 History and the Modern World (3 credits)
CHEM 191 Chemistry I & Lab (4 credits)
MATH 213 Calculus I & Lab (4 credits)
First Year (14 credits) - Spring
COMSC 111 Data Structures & Lab (4 credits)
MATH 214 Calculus II & Lab (4 credits)
MATH 221 Discrete Mathematics (3 credits)
WTNG 102 Expository Writing (3 credits)
Second Year (17 credits) - Fall
COMSC 210 Principles of Computer
Organization & Lab (4 credits)
CORE 103 Human Behavior in Perspective (3 credits)
PHYS 201 Physics I & Lab (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)
PHYS 202 Physics II & Lab (4 credits)
Elective (3 credits)
Third Year (16 credits) - Fall
COMSC 240 Theory of Computation (3 credits)
COMM 210 Introduction to Speech
Communication (3 credits)
CORE 105 The Artistic Impulse (3 credits)
ENGR 270 Digital Systems Design & Lab (4 credits)
Computer Science Elective (3 credits)
Third Year (15 or 16 credits) - Spring
COMSC 220 Analysis of Algorithms (3 credits)
ENGR 465 Network Analysis & Design (3 credits)
ENGR 445 Dynamic Modeling and Control (3 credits)
Computer Science Elective (3 credits)
MATH Math Elective (200 or above) (3 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 455 Data Communication (3 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 (3 credits)
ENGR 424 Digital Signal Processing (3 credits)
ENGR 450 Robotics (3 credits)