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.
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.
Graduates from the Bachelor of Science in Computer Science program will be prepared to:
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:
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.
For undergraduate policies and procedures, please review the Undergraduate Academics section of the General Bulletin.
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.
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:
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.
Code | Title | Credit Hours |
---|---|---|
Required Core Courses: | ||
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 |
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.
Code | Title | Credit Hours |
---|---|---|
Breadth Area 1 | ||
Choose two of the following: | ||
CSDS 341 | Introduction to Database Systems | 3 |
CSDS 356 | Data Privacy | 3 |
CSDS 390 | Advanced Game Development Project | 3 |
CSDS 393 | Software Engineering | 3 |
Breadth Area 2 | ||
Choose two of the following: | ||
CSDS 312 | Introduction to Data Science Systems | 3 |
CSDS 314 | Computer Architecture | 3 |
CSDS 325 | Computer Networks I | 3 |
CSDS 338 | Intro to Operating Systems and Concurrent Programming | 4 |
Breadth Area 3 | ||
Choose two of the following: | ||
CSDS 337 | Compiler Design | 4 |
CSDS 343 | Theoretical Computer Science | 3 |
CSDS 344 | Computer Security | 3 |
CSDS 345 | Programming Language Concepts | 3 |
Breadth Area 4 | ||
Choose two of the following: | ||
CSDS 313 | Introduction to Data Analysis | 3 |
CSDS 335 | Data Mining for Big Data | 3 |
CSDS 340 | Introduction to Machine Learning | 3 |
CSDS 391 | Introduction to Artificial Intelligence | 3 |
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.
Code | Title | Credit Hours |
---|---|---|
Required Secure Computing Course: | ||
Choose one of the following: | ||
CSDS 344 | Computer Security | 3 |
CSDS 356 | Data Privacy | 3 |
CSDS 427 | Internet Security and Privacy | 3 |
CSDS 444 | Computer Security | 3 |
CSDS 448 | Smartphone Security | 3 |
MATH 408 | Introduction to Cryptology | 3 |
Code | Title | Credit Hours |
---|---|---|
Required Mathematics, Science and Engineering Courses: | ||
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 |
Code | Title | Credit Hours |
---|---|---|
Required Statistics Course: | ||
Choose one of the following: | ||
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 |
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
Code | Title | Credit Hours |
---|---|---|
Any CSDS Course | ||
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 |
Code | Title | Credit Hours |
---|---|---|
DSCI 330 | Cognition and Computation | 3 |
DSCI 351 | Exploratory Data Science | 3 |
DSCI 352 | Applied Data Science Research | 3 |
DSCI 353 | Data Science: Statistical Learning, Modeling and Prediction | 3 |
ECON 380 | Computational Economics | 3 |
ECSE 245 | Electronic Circuits | 4 |
ECSE 246 | Signals and Systems | 4 |
ECSE 304 | Control Engineering I with Laboratory | 3 |
ECSE 305 | Control Engineering I Laboratory | 1 |
ECSE 309 | Electromagnetic Fields I | 3 |
ECSE 313 | Signal Processing | 3 |
ECSE 318 | VLSI/CAD | 4 |
ECSE 319 | Applied Probability and Stochastic Processes for Biology | 3 |
ECSE 324 | Modeling and Simulation of Continuous Dynamical Systems | 3 |
ECSE 346 | Engineering Optimization | 3 |
ECSE 350 | Operations and Systems Design | 3 |
ECSE 354 | Digital Communications | 3 |
ECSE 375 | Applied Control | 3 |
ECSE 408 | Introduction to Linear Systems | 3 |
ECSE 413 | Nonlinear Systems I | 3 |
ECSE 414 | Wireless Communications | 3 |
ECSE 416 | Convex Optimization for Engineering | 3 |
ECSE 489 | Robotics I | 3 |
ENGR 210 | Introduction to Circuits and Instrumentation | 4 |
MATH 224 | Elementary Differential Equations | 3 |
MATH 228 | Differential Equations | 3 |
MATH 303 | Elementary Number Theory | 3 |
MATH 308 | Introduction to Abstract Algebra | 3 |
MATH 327 | Convexity and Optimization | 3 |
MATH 439 | Bayesian Scientific Computing | 3 |
MATH 497 | Stochastic Models: Time Series and Markov Chains | 3 |
PHIL 201 | Introduction to Logic | 3 |
PHYS 221 | Introduction to Modern Physics | 3 |
PHYS 250 | Computational Methods in Physics | 3 |
STAT 345 | Theoretical Statistics I | 3 |
STAT 346 | Theoretical Statistics II | 3 |
First Year | ||
---|---|---|
Fall | Credit 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 Hours | 14 | |
Spring | ||
CSDS 233 | Introduction to Data Structures | 4 |
MATH 122 |