Degree: Bachelor of Science (BS)
Major: Computer Science
Program Overview
These programs provide students with a strong background in the fundamentals of mathematics and science. Students can use their technical and open electives to pursue concentrations in software engineering, algorithms, artificial intelligence, databases, data mining, bioinformatics, security, computer systems, and computer networks. In addition to an excellent technical education, all students in the department are exposed to societal issues, ethics, professionalism, and have the opportunity to develop leadership and creativity skills.
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, 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, http://www.abet.org/.
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.
Core and breadth courses provide our students with the flexibility to work across many disciplines and prepare them for a variety of professions. Our curriculum is designed to teach fundamental skills and knowledge needed by all CS graduates while providing the greatest flexibility in selecting topics. Students are also required to develop depth in at least one of the following technical areas: software engineering; algorithms and theory; computer systems, networks, and security; databases and data mining; bioinformatics; or artificial intelligence.
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. Learn more at engineering.case.edu/coop. Alternatively or additionally, students may obtain employment as summer interns.
Undergraduate Policies
For undergraduate policies and procedures, please review the Office of Undergraduate Studies 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 Office of Undergraduate Studies 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 general requirements of the Case School of Engineering. Students completing this program as a secondary major while completing another undergraduate degree program do not need to satisfy the latter set of requirements.
Each student is required to complete a total of 20 computer science and computer science related courses, totaling at least 63 credits.
The 20 courses must include:
- all 6 core courses;
- at least 5 computer science breadth courses;
- at least 4 courses in one of the listed computer science depth areas, including all starred courses in that area;
- and a course from the secure computing requirement list.
The remaining courses needed to fulfill the 20 course requirement may come from the computer science breadth courses, courses of any computer science depth area, and up to 6 of the 20 courses 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. Some courses appear in more than one list. The same course may be used to satisfy multiple requirements of the core, computer science breadth and depth requirements, but courses may not be double counted for the purpose of achieving 20 separate computer science courses and 63 credits.
Computer Science Core Requirement
All computer science majors are required to complete the following 6 courses.
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 5 of the 7 following computer science breadth courses.
Course List Code | Title | Hours |
CSDS 314 | Computer Architecture | 3 |
CSDS 325 | Computer Networks I | 3 |
CSDS 338 | Intro to Operating Systems and Concurrent Programming | 4 |
CSDS 341 | Introduction to Database Systems | 3 |
CSDS 345 | Programming Language Concepts | 3 |
CSDS 391 | Introduction to Artificial Intelligence | 3 |
CSDS 393 | Software Engineering | 3 |
Statistics Requirement
Computer science BS students are required to complete a statistics elective.
One Statistics elective may be chosen from:
Course List Code | Title | Hours |
MATH 380 | Introduction to Probability | 3 |
STAT 312 | Basic Statistics for Engineering and Science | 3 |
STAT 313 | Statistics for Experimenters | 3 |
STAT 332 | Statistics for Signal Processing | 3 |
STAT 333 | Uncertainty in Engineering and Science | 3 |
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 depth course, as appropriate. There is no secure computing requirement for students pursuing the BA degree.
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. For Computer Science BS students, up to 6 of the 20 computer science and computer science related courses may come from this list with up to two courses from group 2. 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 485 | VLSI Systems | 3 |
ECSE 488 | Embedded Systems Design | 3 |
MATH 330 | Introduction to Scientific Computing | 3 |
MATH 431 | Introduction to Numerical Analysis I | 3 |
Group 2
Computer Science Depth Requirement
Students pursuing the BS degree must demonstrate a depth of competence in one of the technical areas listed below. To complete the depth requirement, students must complete at least four courses in one of the depth areas, including all starred courses. Recommended general background courses are listed following each area where applicable.
Area 1: Software Engineering
Area 2: Algorithms and Theory
Recommended preparation: MATH 380
Area 3: Computer Systems, Networks and Security
Area 4: Databases and Data Mining
Course List Code | Title | Hours |
CSDS 234 | Structured and Unstructured Data | 3 |
CSDS 313 | Introduction to Data Analysis | 3 |
CSDS 341 | Introduction to Database Systems * | 3 |
CSDS 405 | Data Structures and File Management | 3 |
CSDS 433 | Database Systems | 3 |
CSDS 435 | Data Mining | 3 |
CSDS 440 | Machine Learning | 3 |
MATH 382 | High Dimensional Probability | 3 |
MATH 444 | Mathematics of Data Mining and Pattern Recognition | 3 |
Area 5: Bioinformatics
Recommended breadth and preparation: STAT 325 or PQHS 431,SYBB 311A, SYBB 311B, SYBB 311C SYBB 311CSYBB 311CSYBB 311CSYBB 311CSYBB 311C, BIOL 214.
Area 6: Artificial Intelligence
Course List Code | Title | Hours |
CSDS 391 | Introduction to Artificial Intelligence * | 3 |
CSDS 394 | Introduction to Information Theory | 3 |
CSDS 440 | Machine Learning | 3 |
CSDS 442 | Causal Learning from Data | 3 |
CSDS 465 | Computer Vision | 3 |
CSDS 491 | Artificial Intelligence: Probabilistic Graphical Models | 3 |
CSDS 496 | Artificial Intelligence: Sequential Decision Making | 3 |
CSDS 497 | Artificial Intelligence: Statistical Natural Language Processing | 3 |
CSDS 499 | Algorithmic Robotics | 3 |
ECSE 484 | Computational Intelligence I: Basic Principles | 3 |
MATH 382 | High Dimensional Probability | 3 |
Recommended breadth and preparation: MATH 380, and either ECSE 416 or CSDS 477.