Academic Programs Catalog

College of Engineering

Undergraduate Programs

The Department of Computer Science and Engineering offers two Bachelor of Science degree programs, one in Computer Science and one in Computational Data Science. Students in both programs are provided with a theoretical foundation in computer science, required for continued success in these rapidly changing fields, as well as practical experience with current tools and techniques. To achieve these goals, students take courses that span a spectrum of knowledge ranging from theoretical foundations, which enable a rigorous analysis of data and computational problems and solutions, to applied design and engineering methods. At the upper level, students choose from a wide range of elective courses focusing on computer networks, big data, artificial intelligence, database systems, computer security, software engineering, and computer graphics. The senior year in both programs culminates with a team-oriented design course building on much of what one has learned throughout the undergraduate experience. Students with interests in other areas can consult and work with interested faculty from a wide range of academic disciplines.

The Bachelor of Science in Computer Science prepares students to be professionals in software design and development.  The Bachelor of Science in Computational Data Science prepares students for careers where the central focus is manipulating and deriving understanding from large volumes of data.
 


Computational Data Science

The Bachelor of Science degree in Computational Data Science focuses on the computational foundations of data science, providing an in-depth understanding of the algorithms and data structures for storing, manipulating, visualizing, and learning from large data sets. Students in the program have unique access to a wide range of fundamental computer science courses in topics ranging from mobile application and web development to theory of computation and fundamental algorithms. Students can tailor their degree to their unique interests and requirements, with an emphasis on computational foundations.

Requirements for the Bachelor of Science Degree in Computational Data Science

  1. The University requirements for bachelor's degrees as described in the Undergraduate Education section of this catalog; 120 credits, including general elective credits, are required for the Bachelor of Science degree in Computational Data Science.

    The University's Tier II writing requirement for the Computational Data Science major is met by completing Computational Mathematics, Science and Engineering 495, referenced in item 3. b. below.

    Students who are enrolled in the College of Engineering may complete the alternative track to Integrative Studies in Biological and Physical Sciences that is described in item 1. under the heading Graduation Requirements for All Majors in the College statement.
  2. The requirements of the College of Engineering for the Bachelor of Science degree.

    The credits earned in certain courses referenced in requirement 3. below may be counted toward College requirements as appropriate.
    1. The following requirements for the major:
      a. Bioscience (4 to 6 credits)
      (1) One of the following courses:
      BS   161 Cell and Molecular Biology  3
         ENT  205 Pests, Society and Environment  3
      IBIO   150 Integrating Biology: From DNA to Populations  3
            MMG  141 Introductory Human Genetics  3
            MMG   201 Fundamentals of Microbiology  3
            PLB   105 Plant Biology  3
            PSL  250 Introductory Physiology  4
      (2) One of the following courses:
      BS  171 Cell and Molecular Biology Laboratory  2
            CEM  161 Chemistry Laboratory I  1
            CEM  162 Chemistry Laboratory II  1
            PHY  191 Physics Laboratory for Scientists, I  1
            PHY  192 Physics Laboratory for Scientists, II  1
            PLB  106 Plant Biology Laboratory 1
      b.  All of the following courses (47 credits):
      CMSE  201 Computational Modeling and Data Analysis I 4
         CMSE  381 Fundamentals of Data Science Methods  4
         CMSE  382 Optimization Methods in Data Science  4
         CMSE  495 Experiential Learning in Data Science (W) 4
      CSE  232 Introduction to Programming II  4
      CSE 300 Social, Ethical, and Professional Issues in Computing 1
         CSE  331 Algorithms and Data Structures  3
      CSE 380 Information Management and the Cloud 3
         CSE  404 Introduction to Machine Learning  3
         CSE  482 Big Data Analysis  3
         CSE  480 Database Systems  3
      MTH  314 Matrix Algebra with Computational Applications 3
      STT  180 Introduction to Data Science  4
         STT  380 Probability and Statistics for Data Science  4
      c.  Two courses selected from the following (6 credits): 
      CSE  402 Biometrics and Pattern Recognition  3
         CSE  415 Introduction to Parallel Computing  3
         CSE  431 Algorithm Engineering  3
         CSE  440 Introduction to Artificial Intelligence  3
      Computer Science and Engineering 415 and Computational Science, Mathematics and Engineering 401 may not be used to fulfill both requirements c. and d.
      d.  Two courses selected from the following (6 credits):
      CMSE  401 Methods for Parallel Computing  4
         CMSE  402 Data Visualization Principles and Techniques 3
      CSE  402 Biometrics and Pattern Recognition  3
         CSE  415 Introduction to Parallel Computing  3
         CSE  431 Algorithm Engineering  3
         CSE  440 Introduction to Artificial Intelligence  3
         CSE  471 Media Processing and Multimedia Computing  3
         CSE  472 Computer Graphics  3
         MTH  451 Numerical Analysis I  3
         MTH  468 Predictive Analytics 3
         STT  464 Statistics for Biologists  3
         STT  465 Bayesian Statistical Methods  3
      Computer Science and Engineering 415 and Computational Science, Mathematics and Engineering 401 may not be used to fulfill both requirements c. and d.


 

Computer Science

The Bachelor of Science degree in Computer Science focuses on the analysis, design, and development of software and hardware computer systems. Computer Science applies creativity, logic, and computational thinking to solve problems important to science, healthcare, education, business, entertainment, government, and all aspects of modern life. Students develop the fundamental programming skills for building software systems and are introduced to a wide range of algorithms, data structures, and patterns that can be applied to problem-solving. A range of elective courses allows a student to customize the degree in this expansive field to their interests. Complementing these major areas, the cognate provides an excellent opportunity to develop an individually selected area of interest.

Students who are enrolled in the Bachelor of Science degree program with a major in computer science may elect a Minor in Game Design and Development. For additional information, refer to the Minor in Game Design and Development statement in the Department of Media and Information section of this catalog.

The Bachelor of Science degree program in Computer Science is accredited by the Computing Accreditation Commission of ABET, www.abet.org under the General Criteria and the Computer Science and Similarly Named Computing Programs Program Criteria.

Requirements for the Bachelor of Science Degree in  Computer Science

  1. The University requirements for bachelor's degrees as described in the Undergraduate Education section of this catalog; 120 credits, including general elective credits, are required for the Bachelor of Science degree in Computer Science.
    The University's Tier II writing requirement for the Computer Science  major is met by completing Computer Science  and Engineering 498, referenced in item  3. b.  below.

    Students who are enrolled in the College of Engineering may complete the alternative track to Integrative Studies in Biological and Physical Sciences  that is described in item 1. under the heading Graduation Requirements for All Majors in the College statement.
  2. The requirements of the College of Engineering for the Bachelor of Science degree.

    The credits earned in certain courses referenced in requirement 3. below may be counted toward College requirements as appropriate.
    1. The following requirements for the major:
      a. Bioscience - Courses may not be used to satisfy both (1) and (2) below (4 to 6 credits):
      (1) One of the following courses:
      BS  161 Cell and Molecular Biology 3
      ENT  205 Pests, Society and Environment 3
      IBIO 150 Integrating Biology: From DNA to Populations 3
      MMG 141 Introductory Human Genetics 3
      MMG  201 Fundamentals of Microbiology 3
      PLB  105 Plant Biology 3
      PSL 250 Introductory Physiology 4
      (2) One of the following courses: 4
      BS 171 Cell and Molecular Biology Laboratory 2
      CEM 161 Chemistry Laboratory I 1
      CEM 162 Chemistry Laboratory II 1
      PHY 191 Physics Laboratory for Scientists, I 1
      PHY 192 Physics Laboratory for Scientists, II 1
      PLB 106 Plant Biology Laboratory
      b. All of the following courses (32 credits):
      CSE 232 Introduction to Programming II 4
      CSE 260 Discrete Structures in Computer Science 4
      CSE 300 Social, Ethical, and Professional Issues in Computing 1
      CSE 320 Computer Organization and Architecture 3
      CSE 325 Computer Systems 3
      CSE 331 Algorithms and Data Structures 3
      CSE 335 Object-Oriented Software Design 4
      CSE 380 Information Management and the Cloud 3
      CSE 498 Collaborative Design (W) 4
      STT 351 Probability and Statistics for Engineering 3
      Students must have a minimum grade of 2.0 in each of the following courses: CSE 300, CSE 320, CSE 325, CSE 331, CSE 335, CSE 380.
      c. One of the following courses (3 or 4 credits):
      MTH 314 Matrix Algebra with Computational Applications 3
      MTH 317H Honors Linear Algebra 4
      d. An additional five courses selected from the following (15 credits):
      CSE 402 Biometrics and Pattern Recognition 3
      CSE 404 Introduction to Machine Learning 3
      CSE 410 Operating Systems 3
      CSE 415 Introduction to Parallel Programming 3
      CSE 420 Computer Architecture 3
      CSE 422 Computer Networks 3
      CSE 425 Introduction to Computer Security 3
      CSE 431 Algorithm Engineering 3
      CSE 434 Autonomous Vehicles 3
      CSE 435 Software Engineering 3
      CSE 440 Introduction to Artificial Intelligence 3
      CSE 450 Translation of Programming Languages 3
      CSE 460 Computability and Formal Language Theory 3
      CSE 471 Media Processing and Multimedia Computing 3
      CSE 472 Computer Graphics 3
      CSE 476 Mobile Application Development 3
      CSE 477 Web Application Architecture and Development 3
      CSE 480 Database Systems 3
      CSE 482 Big Data Analysis 3
      CSE 491 Selected Topics in Computer Science 1 to 4
      MTH 451 Numerical Analysis I 3
      e. Required Cognate (12 credits):
      Cognates in the following areas are available to students in Computer Science: business, communication arts and sciences, foreign language, mathematics, the natural sciences, philosophy, psychology, the social sciences, and telecommunication.  Students may complete cognates in other areas with the approval of the Department of Computer Science and Engineering academic advisor. The cognate should enhance the student’s ability to apply analytical procedures in a specific subject area.
      The cognate requires a minimum of four courses totaling 12 or more credits outside the College of Engineering selected from (1) or (2) below. The academic advisor of the Department of Computer Science and Engineering must pre approve both the cognate and the cognate courses.
      (1) A minimum of four courses totaling 12 or more credits. At least 6 of the 12 credits must be in courses at the 300-400 level.
      (2) Cognate in The Eli Broad College of Business consisting of this specific set of courses: ACC 230, FI 320, GBL 323 and MKT 327. 
      (3) A sequence of at least three courses in a foreign language totaling at least 12 credits.

Concentrations in Computer Science

The Department offers the following concentrations to students wishing an area of specialization in their degree. The concentrations are available to, but not required of, any student enrolled in the Bachelor of Science degree program in Computer Science. NOTE: Completing the Bachelor of Science degree in Computer Science with a concentration may require more than 120 credits. Upon completion of the required courses for a concentration, certification will appear on the student’s official transcript. Students may select no more than one concentration.

For any concentration, 3 credits of CSE 499 Undergraduate Research related to the subject area may be applied with approval of the Department of Computer Science and Engineering.

Artificial Intelligence
To complete a Bachelor of Science degree in Computer Science with an artificial intelligence concentration, students must complete the requirements for the bachelor’s degree, including the following:
Two of the following courses (6 credits):
CSE 404 Introduction to Machine Learning 3
CSE 440 Introduction to Artificial Intelligence 3
CSE 482 Big Data Analysis 3
Three of the following courses not taken above (9 to 12 credits):
CSE 402 Biometrics and Pattern Recognition 3
CSE  404 Intro to Machine Learning 3
CSE 434 Autonomous Vehicles 3
CSE 440 Introduction to Artificial Intelligence 3
CSE 482 Big Data Analysis 3
CSE 803 Computer Vision 3
ADV 401 Neuromarketing and Consumer Decisions 3
LIN 401 Introduction to Linguistics 4
LIN 424 Introduction to Phonetics and Phonology 3
LIN 427 Laboratory Phonetics 3
LIN 431 Introduction to Morphology 3
LIN 434 Introduction to Syntax 3
LIN 437 Introduction to Semantics and Pragmatics 3
LIN 463 Introduction to Cognitive Science 3
LIN 471 Sociolinguistics 3
MI 484 Human Robot Interaction (W) 3
MTH 468 Predictive Analysis 3
NEU 301 Introduction to Neuroscience I 3
NEU 302 Introduction to Neuroscience II 3
PHL 330 Formal Deductive Reasoning 4
PHL 331 Formal Practical Reasoning 4
PHL 432 Logic and its Metatheory 4
PSY 301 Cognitive Neuroscience 3
  
Computer Systems
To complete a Bachelor of Science degree in Computer Science with a computer systems concentration, students must complete the requirements for the bachelor’s degree, including the following:
All of the following courses (9 credits):
CSE 410 Operating Systems 3
CSE 422 Computer Networks 3
CSE 450 Translation of Programming Languages 3
Two of the following courses (6 credits):
CSE 415 Introduction to Parallel Programming 3
CSE 420 Computer Architecture 3
CSE 425 Introduction to Computer Security 3
CSE 434 Autonomous Vehicles 3
CSE 472 Computer Graphics 3
CSE 480 Database Systems 3
Cybersecurity
To complete a Bachelor of Science degree in Computer Science with a cybersecurity concentration, students must complete the requirements for the bachelor’s degree, including the following:
All of the following courses (6 credits):
CSE 402 Biometrics and Pattern Recognition 3
CSE 425 Introduction to Computer Security 3
Three of the following courses (9 credits):
CSE 410 Operating Systems 3
CSE 422 Computer Networks 3
CSE 431 Algorithm Engineering 3
CSE 434 Autonomous Vehicles 3
CSE 480 Database Systems 3
CSE 482 Big Data Analysis 3
MI 239 Digital Footprints: Privacy and Online Behavior 3
MTH 416 Introduction to Algebraic Coding 3
Multimedia and Graphics
To complete a Bachelor of Science degree in Computer Science with a multimedia and graphics concentration, students must complete the requirements for the bachelor’s degree, including the following:
Two of the following courses (6 credits):
CSE 471 Media Processing and Multimedia Computing 3
CSE 472 Computer Graphics 3
CSE 476 Mobile Application Development 3
CSE 477 Web Application Architecture and Development 3
Three of the following courses not taken above (8 or 9 credits):
CSE 471 Media Processing and Multimedia Computing 3
CSE 472 Computer Graphics 3
CSE 476 Mobile Application Development 3
CSE 477 Web Application Architecture and Development 3
CSE 803 Computer Vision 3
CMSE 402 Data Visualization Principles and Techniques 3
FLM 230 Introduction to Film 3
FLM 260 Introduction to Digital Film and Emergent Media 3
MI 231 Game and Interactive Media Development 3
MI 247 Three-Dimensional Graphics and Design 3
MI 337 Compositing and Special Effects 3
MI 347 Advanced Three-Dimensional Computer Animation 3
MI 350 Evaluating Human-Centered Technology 3
MI 377 Advanced 3D Modeling 3
MI 445 Game Design and Development I 3
MI 450 Creating Human-Centered Technology 3
MI 455 Game Design and Development II 3
MI 462 Social Media and Social Computing 3
MI 482 Building Virtual Worlds (W) 3
MI 497 Game Design Studio 3
STA 380 Electronic Art 3
STA 384 Experiments in Digital Video 3
THR 205 Media Acting I 2
THR 419 Projection Design for Live Performance 3
Software Engineering
To complete a Bachelor of Science degree in Computer Science with a software engineering concentration, students must complete the requirements for the bachelor’s degree, including the following:
The following course (3 credits):
CSE 435 Software Engineering 3
Four of the following courses (12 credits):
CSE 431 Algorithm Engineering 3
CSE 476 Mobile Application Development 3
CSE 477 Web Application Architecture and Development 3
CSE 480 Database Systems 3
CSE 870 Advanced Software Engineering 3
MI 350 Evaluating Human-Centered Technology 3
MI 420 Interactive Prototyping 3
MI 450 Creating Human-Centered Technology (W) 3
Theory
To complete a Bachelor of Science degree in Computer Science with a theory concentration, students must complete the requirements for the bachelor’s degree, including the following:
The following course (3 credits):
CSE 460 Computability and Formal Language Theory 3
One of the following courses (3 credits):
CSE 431 Algorithm Engineering 3
CSE 830 Design and Theory of Algorithms 3
Three of the following courses (9 or 10 credits):
CSE 835 Algorithmic Graph Theory 3
CSE 860 Foundations of Computing 3
MTH 299 Transitions 4
MTH 416 Introduction to Algebraic Coding 3
MTH 417 Topics in Number Theory 3
MTH 880 Combinatorics I 3
MTH 882 Combinatorics II 3

Minor in Computer Science

The Minor in Computer Science and Engineering is administered by the Department of Computer Science and Engineering. This minor will provide students with a foundation in computer science that applies to many disciplines. This will also provide opportunities for students in industry or government, as well as prepare students for graduate-level study in computer science.

The minor is available as an elective to students who are enrolled in bachelor’s degree programs at Michigan State University other than the Bachelor of Science Degree in Computer Science or the Bachelor of Science Degree in Computer Engineering or the Bachelor of Science Degree in Computational Data Science, or the Bachelor of Science Degree in Data Science.  With the approval of the department and college that administers the student’s degree program, the courses that are used to satisfy the minor may also be used to satisfy the requirements for the bachelor’s degree.

Students who plan to complete the requirements for the minor must apply to the Department of Computer Science and Engineering. The minimum criteria for acceptance are the completion of Computer Science and Engineering 231 and 260 with a combined grade-point average in those two courses of 3.0. Enrollment may be limited. Application forms are available at www.cse.msu.edu.

Requirements for the Minor in Computer Science

Complete a minimum of 18 credits in the Department of Computer Science and Engineering from the following:

1. All of the following courses (13 credits):
CSE 231 Introduction to Programming I 4
CSE 232 Introduction to Programming II 4
CSE 260 Discrete Structures in Computer Science 4
CSE 300 Social, Ethical, and Professional Issues in Computing  1
2. Two of the following courses (6 or 7 credits):
CSE 320 Computer Organization and Architecture 3
CSE 325 Computer Systems 3
CSE 331 Algorithms and Data Structures 3
CSE 335 Object-Oriented Software Design 4
CSE 380 Information Management and the Cloud 3
CSE 402 Biometrics and Pattern Recognition 3
CSE 404 Introduction to Machine Learning 3
CSE 420 Computer Architecture 3
CSE 431 Algorithm Engineering 3
CSE 434 Autonomous Vehicles 3
CSE 440 Introduction to Artificial Intelligence 3
CSE 460 Computability and Format Language Theory 3
CSE 471 Media Processing and Multimedia Computing 3
CSE 472 Computer Graphics 3
CSE 476 Mobile Application Development 3
CSE 477 Web Application Architecture and Development 3
CSE 480 Database Systems 3
CSE 482 Big Data Analysis 3