Degree: Bachelor of Science (BS)
Major: Computer Science
Program Overview
The Bachelor of Science degree program in computer science is designed to give a student a strong background in the fundamentals of mathematics and computer science. The curriculum is designed according to the latest ACM/IEEE computer science curriculum guidelines. A graduate of this program should be able to use these fundamentals to analyze and evaluate software systems and the underlying abstractions upon which they are based. A graduate should also be able to design and implement software systems that are state-of-the-art solutions to a variety of computing problems; this includes problems that are sufficiently complex to require the evaluation of design alternatives and engineering trade-offs. In addition to these program-specific objectives, students can use their technical and open electives to pursue interests in software engineering, algorithms, artificial intelligence, databases, data mining, bioinformatics, security, computer systems, and computer networks, and all students in the Case School of Engineering are exposed to societal issues, professionalism, and are provided opportunities to develop leadership skills.
The Bachelor of Science degree program in computer science is accredited by the Computing Accreditation Commission of ABET.
Mission
The mission of the Bachelor of Science degree program in computer science is to graduate students who have fundamental technical knowledge of their profession and the requisite technical breadth and communications skills to become leaders in creating the new techniques and technologies which will advance the field of computer science and its application to other disciplines.
Program Educational Objectives
-
To educate and train students in the fundamentals of computer science and mathematics
-
To educate students with an understanding of real-world computing needs
-
To train students to work effectively, professionally and ethically in computing-related professions
Learning Outcomes
As preparation for achieving the above educational objectives, the Bachelor of Science degree program in computer science is designed so that students attain the ability to:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.
Co-op and Internship Programs
Opportunities are available for students to alternate studies with work in industry or government as a co-op student, which involves paid full-time employment over seven months (one semester and one summer). Students may work in one or two co-ops, beginning in the third year of study. Co-ops provide students the opportunity to gain valuable hands-on experience in their field by completing a significant engineering project while receiving professional mentoring. During a co-op placement, students do not pay tuition but maintain their full-time student status while earning a salary. Alternatively or additionally, students may obtain employment as summer interns.
Undergraduate Policies
For undergraduate policies and procedures, please review the Undergraduate Academics section of the General Bulletin.
Accelerated Master's Programs
Undergraduate students may participate in accelerated programs toward graduate or professional degrees. For more information and details of the policies and procedures related to accelerated studies, please visit the Undergraduate Academics section of the General Bulletin.
Program Requirements
Students seeking to complete this major and degree program must meet the general requirements for bachelor's degrees and the Unified General Education Requirements. Students completing this program as a secondary major while completing another undergraduate degree program do not need to satisfy the school-specific requirements associated with this major.
Each student is required to complete at least 20 computer science and computer science related courses totaling at least 63 credit hours plus additional courses in mathematics, science, engineering and statistics.
The 20 computer science and computer science related courses must include:
- all six core courses;
- at least two courses from each of the four breadth areas;
- and a course from the secure computing requirement list.
The remaining courses needed to fulfill the 20 course and 63 credit hour requirement may come from the list of approved technical electives with at most two Group 2 courses.
Other computer science related courses not listed here may be used with prior permission from the student’s academic advisor.
Computer Science Core Requirement
Course List Code | Title | Hours |
CSDS 132 | Programming in Java | 3 |
CSDS 233 | Introduction to Data Structures | 4 |
CSDS 281 | Logic Design and Computer Organization | 4 |
CSDS 302 | Discrete Mathematics | 3 |
CSDS 310 | Algorithms | 3 |
CSDS 395 | Senior Project in Computer Science | 4 |
Computer Science Breadth Requirement
BS students are required to complete at least two courses from each of the four breadth areas for a total of eight computer science breadth courses.
Computer Science Secure Computing Requirement
Students pursuing the BS degree must demonstrate competence in the principles and practices of secure computing by completing one of the following courses as part of their 20 computer science or computer science related courses. This course may be double counted as a computer science breadth course or technical elective course, as appropriate.
Mathematics, Science and Engineering Requirement
Course List Code | Title | Hours |
CHEM 111 | Principles of Chemistry for Engineers | 4 |
ENGR 399 | Impact of Engineering on Society | 3 |
MATH 121 | Calculus for Science and Engineering I | 4 |
MATH 122 | Calculus for Science and Engineering II | 4 |
or MATH 124 | Calculus II |
MATH 201 | Introduction to Linear Algebra for Applications | 3 |
or MATH 307 | Linear Algebra |
MATH 223 | Calculus for Science and Engineering III | 3 |
or MATH 227 | Calculus III |
PHYS 121 | General Physics I - Mechanics | 4 |
PHYS 122 | General Physics II - Electricity and Magnetism | 4 |
Statistics Requirement
Course List Code | Title | Hours |
MATH 380 | Introduction to Probability | 3 |
OPRE 207 | Statistics for Business and Management Science I | 3 |
STAT 312 | Basic Statistics for Engineering and Science | 3 |
STAT 312R | Basic Statistics for Engineering and Science Using R Programming | 3 |
STAT 313 | Statistics for Experimenters | 3 |
STAT 332 | Statistics for Signal Processing | 3 |
STAT 333 | Uncertainty in Engineering and Science | 3 |
List of Approved Technical Electives
This list of approved technical electives is divided into groups according to how closely a course is related to the core knowledge areas as defined in the ACM/IEEE computer science curriculum guidelines. Computer Science BS students may use up to two courses from Group 2 as technical electives toward the computer science degree. Computer science related courses not listed below may be used as a technical elective but require prior permission from the student’s academic advisor.
Group 1
Course List Code | Title | Hours |
| |
ECSE 301 | Digital Logic Laboratory | 2 |
ECSE 303 | Embedded Systems Design and Laboratory | 3 |
ECSE 315 | Digital Systems Design | 4 |
ECSE 317 | Computer Design - FPGAs | 3 |
ECSE 419 | Computer System Architecture | 3 |
ECSE 484 | Computational Intelligence I: Basic Principles | 3 |
ECSE 485 | VLSI Systems | 3 |
ECSE 488 | Embedded Systems Design | 3 |
MATH 330 | Introduction to Scientific Computing | 3 |
MATH 382 | High Dimensional Probability | 3 |
MATH 406 | Mathematical Logic and Model Theory | 3 |
MATH 408 | Introduction to Cryptology | 3 |
MATH 431 | Introduction to Numerical Analysis I | 3 |
MATH 444 | Mathematics of Data Mining and Pattern Recognition | 3 |
PHIL 306 | Mathematical Logic and Model Theory | 3 |
PHIL 393 | Ethics of Artificial Intelligence and Emerging Technology | 3 |
Group 2