Computer Science, BS

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.

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 positions of leadership 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:

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:

  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

Course List
Code Title Credit Hours
Required Core Courses:
CSDS 132Programming in Java3
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.

Course List
Code Title Credit Hours
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 335Data Mining for Big Data3
CSDS 340Introduction to Machine Learning3
CSDS 391Introduction to Artificial Intelligence3

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.

Course List
Code Title Credit Hours
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, Science and Engineering Requirement

Course List
Code Title Credit Hours
Required Mathematics, Science and Engineering Courses:
CHEM 111Principles of Chemistry for Engineers4
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
PHYS 121General Physics I - Mechanics4
PHYS 122General Physics II - Electricity and Magnetism4

Statistics Requirement

Course List
Code Title Credit Hours
Required Statistics Course:
Choose one of the following:
MATH 380Introduction to Probability3
OPRE 207Statistics for Business and Management Science I3
STAT 312Basic Statistics for Engineering and Science3
STAT 312RBasic Statistics for Engineering and Science Using R Programming3
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

Course List
Code Title Credit Hours
Any CSDS Course
ECSE 301Digital Logic Laboratory2
ECSE 303Embedded Systems Design and Laboratory3
ECSE 315Digital Systems Design4
ECSE 317Computer Design - FPGAs3
ECSE 419Computer System Architecture3
ECSE 484Computational Intelligence I: Basic Principles3
ECSE 485VLSI Systems3
ECSE 488Embedded Systems Design3
MATH 330Introduction to Scientific Computing3
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
PHIL 306Mathematical Logic and Model Theory3
PHIL 393Ethics of Artificial Intelligence and Emerging Technology3

Group 2

Course List
Code Title Credit Hours
DSCI 330Cognition and Computation3
DSCI 351Exploratory Data Science3
DSCI 352Applied Data Science Research3
DSCI 353Data Science: Statistical Learning, Modeling and Prediction3
ECON 380Computational Economics3
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 439Bayesian Scientific Computing3
MATH 497Stochastic Models: Time Series and Markov Chains3
PHIL 201Introduction to Logic3
PHYS 221Introduction to Modern Physics3
PHYS 250Computational Methods in Physics3
STAT 345Theoretical Statistics I3
STAT 346Theoretical Statistics II3

Sample Plan of Study

Plan of Study Grid
First Year
FallCredit Hours
CHEM 111 Principles of Chemistry for Engineers 4
CSDS 132 Programming in Java 3
MATH 121 Calculus for Science and Engineering I 4
Academic Inquiry Seminar, Breadth, or Elective course a 3
Credit Hours14
Spring
CSDS 233 Introduction to Data Structures 4
MATH 122