Computer Science, BS

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, under the commission’s General Criteria and Program Criteria for Computer Science and Similarly Named Computing Programs.

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

Graduates from the Bachelor of Science in Computer Science program will be prepared to:

  1. Analyze real-world problems and create solutions based on the fundamentals of computer science and mathematics.
  2. Work effectively, professionally, collaboratively, and ethically.
  3. Assume leadership roles in industry, academia, public service, and entrepreneurship.
  4. Successfully progress in advanced degree programs in computing and related fields.

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.

Combined Bachelor's/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:

  1. all six core courses;
  2. at least two courses from each of the four breadth areas;
  3. 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

Required Core Courses:
CSDS 132Programming in Java3
or CSDS 134
CSDS 235
Programming in Python
and The Java Programming Language
CSDS 233Introduction to Data Structures4
CSDS 281Logic Design and Computer Organization4
CSDS 302Discrete Mathematics3
CSDS 310Algorithms3
CSDS 395Senior Project in Computer Science4

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.

Breadth Area 1
Choose two of the following:
CSDS 341Introduction to Database Systems3
CSDS 356Data Privacy3
CSDS 390Advanced Game Development Project3
CSDS 393Software Engineering3
Breadth Area 2
Choose two of the following:
CSDS 312Introduction to Data Science Systems3
CSDS 314Computer Architecture3
CSDS 325Computer Networks I3
CSDS 338Intro to Operating Systems and Concurrent Programming4
Breadth Area 3
Choose two of the following:
CSDS 337Compiler Design4
CSDS 343Theoretical Computer Science3
CSDS 344Computer Security3
CSDS 345Programming Language Concepts3
Breadth Area 4
Choose two of the following:
CSDS 313Introduction to Data Analysis3
CSDS 330Introduction to Artificial Intelligence3
CSDS 335Data Mining for Big Data3
CSDS 340Introduction to Machine Learning3

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.

Required Secure Computing Course:
Choose one of the following:
CSDS 344Computer Security3
CSDS 356Data Privacy3
CSDS 427Internet Security and Privacy3
CSDS 444Computer Security3
CSDS 448Smartphone Security3
MATH 408Introduction to Cryptology3

Mathematics and Engineering Requirement

Required Mathematics, Science and Engineering Courses:
ENGR 399Impact of Engineering on Society3
MATH 121Calculus for Science and Engineering I4
MATH 122Calculus for Science and Engineering II4
or MATH 124 Calculus II
MATH 201Introduction to Linear Algebra for Applications3
or MATH 307 Linear Algebra
MATH 223Calculus for Science and Engineering III3
or MATH 227 Calculus III

Science Requirement

The Science Requirement can be satisfied by completing one of the sequences listed below. Students wishing to combine CS with other science disciplines can alternatively satisfy the Science Requirement either by completing one of the following minor programs: Biology, Chemistry, or Geological Sciences; or by completing one of the following major programs: Biology, Biochemistry, Chemistry, Geological Sciences, or Neuroscience.

Choose one of the following:4
Introductory Physics I
General Physics I - Mechanics
Physics and Frontiers I - Mechanics
Choose one of the following:4
Introductory Physics II
General Physics II - Electricity and Magnetism
Physics and Frontiers II - Electricity and Magnetism

Statistics Requirement

Required Statistics Course:
Choose one of the following:
MATH 380Introduction to Probability3
OPRE 207Statistics for Business and Management Science I3
STAT 302Introduction to Statistical Inference3
STAT 312Basic Statistics for Engineering and Science3
STAT 313Statistics for Experimenters3
STAT 332Statistics for Signal Processing3
STAT 333Uncertainty in Engineering and Science3

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

Any CSDS Course
ECSE 301Digital Logic Laboratory2
ECSE 303Embedded Systems Design and Laboratory3
ECSE 315Digital Systems Design4
ECSE 317Computer Design - FPGAs3
ECSE 323Introduction to Human-Robot Interaction3
ECSE 373Introduction to Modern Robotics4
ECSE 419Computer System Architecture3
ECSE 484Computational Intelligence I: Basic Principles3
ECSE 485VLSI Systems3
ECSE 488Embedded Systems Design3
MATH 330Introduction to Scientific Computing3
MATH 356Math in Machine Learning3
MATH 382High Dimensional Probability3
MATH 406Mathematical Logic and Model Theory3
MATH 408Introduction to Cryptology3
MATH 431Introduction to Numerical Analysis I3
MATH 444Mathematics of Data Mining and Pattern Recognition3
MATH 473Introduction to Mathematical Image Processing and Computer Vision3
PHIL 306Mathematical Logic and Model Theory3
PHIL 393Ethics of Artificial Intelligence and Emerging Technology3

Group 2

DSCI 330Cognition and Computation3
DSCI 351Exploratory Data Science3
DSCI 352Applied Data Science Research3
DSCI 353Statistical and Machine Learning for Inference, Prediction and Reasoning3
ECON 380Computational Methods for Economic Modeling1.5
ECSE 245Electronic Circuits4
ECSE 246Signals and Systems4
ECSE 304Control Engineering I with Laboratory3
ECSE 305Control Engineering I Laboratory1
ECSE 309Electromagnetic Fields I3
ECSE 313Signal Processing3
ECSE 318VLSI/CAD4
ECSE 319Applied Probability and Stochastic Processes for Biology3
ECSE 324Modeling and Simulation of Continuous Dynamical Systems3
ECSE 346Engineering Optimization3
ECSE 350Operations and Systems Design3
ECSE 354Digital Communications3
ECSE 375Applied Control3
ECSE 408Introduction to Linear Systems3
ECSE 413Nonlinear Systems I3
ECSE 414Wireless Communications3
ECSE 416Convex Optimization for Engineering3
ECSE 489Robotics I3
ENGR 210Introduction to Circuits and Instrumentation4
MATH 224Elementary Differential Equations3
MATH 228Differential Equations3
MATH 303Elementary Number Theory3
MATH 308Introduction to Abstract Algebra3
MATH 327Convexity and Optimization3
MATH 413Graph Theory3
MATH/STAT 437Introduction to Stochastic Processes3
MATH 439Bayesian Scientific Computing3
PHIL 201Introduction to Logic3
PHYS 221Introduction to Modern Physics3
PHYS 250Computational Methods in Physics3
STAT 327Statistical Computing3
STAT 346Mathematical Statistics3

Sample Plan of Study

Plan of Study Grid
First Year
FallCredit Hours
CSDS 132 Programming in Java 3
MATH 121 Calculus for Science and Engineering I 4
Academic Inquiry Seminar, Breadth, or Elective course a 3
Open Elective 4
 Credit Hours14
Spring
CSDS 233 Introduction to Data Structures 4
MATH 122
Calculus for Science and Engineering II
or Calculus II
4
PHYS 121 General Physics I - Mechanics 4
Academic Inquiry Seminar, Breadth, or Elective course a 3
 Credit Hours15
Second Year
Fall
CSDS 281 Logic Design and Computer Organization 4
CSDS 302 Discrete Mathematics 3
MATH 223
Calculus for Science and Engineering III
or Calculus III
3
PHYS 122 General Physics II - Electricity and Magnetism 4
Breadth, or Elective course a 3
 Credit Hours17
Spring
MATH 201
Introduction to Linear Algebra for Applications
or Linear Algebra
3
Breadth, or Elective course a 3
Computer Science Breadth course 3
Statistics Elective 3
Technical Elective 3
 Credit Hours15
Third Year
Fall
CSDS 310 Algorithms 3
Breadth, or Elective course a 3
Computer Science Breadth course 3
Computer Science Breadth course 3
Technical Elective 3
 Credit Hours15
Spring
ENGR 399 Impact of Engineering on Society 3
Breadth, or Elective course a 3
Computer Science Breadth course 3
Computer Science Breadth course 3
Computer Science Breadth course 3
 Credit Hours15
Fourth Year
Fall
Breadth, or Elective course a 3
Computer Science Breadth course 3
Open Elective 3
Technical Elective 3
Technical Elective 3
 Credit Hours15
Spring
CSDS 395 Senior Project in Computer Science 4
Breadth, or Elective course a 3
Computer Science Breadth course 3
Technical Elective 3
Technical Elective 3
 Credit Hours16
 Total Credit Hours122
a

Unified General Education Requirement.