Skip to main content
Department of Computer Science

Bachelor of Arts in Computer Science

Students on Summer 2019, Fall 2019, or Spring 2020 requirements CSCIBA

The Bachelor of Arts in Computer Science teaches the principles of computation and algorithms and allows students to develop programming and computing skills. Computer scientists, software engineers, programmers, and other computing professionals are experts on how technology works and how computing can address even the most complicated and intricate problems.

Requirements

The major requires at least 30 credit hours (36–42 with the Addenda requirements), including the requirements listed below.
  1. Core Courses.
    1. Introduction to Computer Science. One (1) course:
      • CSCI-C 200 Introduction to Computers and Programming
      • CSCI-C 211 Introduction to Computer Science
      • CSCI-H 211 Introduction to Computer Science, Honors
    2. Software Systems. One (1) course:
      • CSCI-C 212 Introduction to Software Systems
      • CSCI-H 212 Introduction to Software Systems, Honors
    3. Discrete Structures. One (1) course:
      • CSCI-C 241 Discrete Structures for Computer Science
      • CSCI-H 241 Discrete Structures for Computer Science, Honors
    4. Data Structures. One (1) course:
      • CSCI-C 343 Data Structures
      • CSCI-H 343 Data Structures, Honors
  2. Advanced Electives. 15 credit hours:
    • CSCI-B 351 INTRODUCTION TO ARTIFICIAL INTELLIGENCE
    • CSCI-B 355 Autonomous Robotics
    • CSCI-B 355 AUTONOMOUS ROBOTICS
    • CSCI-B 361 INTRO ARTIFCL IN & COMP SIMUL
    • CSCI-B 363 CSCI-B 363 Bioinformatics Algorithms
    • CSCI-B 363 BIOINFORMATICS ALGORITHMS
    • CSCI-B 365 Introduction to Data Analysis and Mining
    • CSCI-B 365 INTRODUCTION TO DATA ANALYSIS AND MINING
    • CSCI-B 392 Competitive Programming
    • CSCI-B 392 COMPETITIVE PROGRAMMING
    • CSCI-B 401 Fundamentals of Computing Theory
    • CSCI-B 401 FUNDAMENTALS OF COMPUTING THEORY
    • CSCI-B 403 Introduction to Algorithm Design and Analysis
    • CSCI-B 403 INTRODUCTION TO ALGORITHM DESIGN AND ANALYSIS
    • CSCI-B 430 Security for Networked Systems
    • CSCI-B 430 SECURITY FOR NETWORKED SYSTEMS
    • CSCI-B 433 Systems & Protocol Security & Information Assurance
    • CSCI-B 433 SYSTEMS & PROTOCOL SECURITY & INFORMATION ASSURANCE
    • CSCI-B 438 FUNDAMENTALS OF COMPUTER NETWORKS
    • CSCI-B 441 Digital Design
    • CSCI-B 441 DIGITAL DESIGN
    • CSCI-B 443 INTRODUCTION TO COMPUTER ARCHITECTURE
    • CSCI-B 443 Introduction to Computer Architecture
    • CSCI-B 453 GAME DEVELOPMENT
    • CSCI-B 455 Principles of Machine Learning
    • CSCI-B 455 PRINCIPLES OF MACHINE LEARNING
    • CSCI-B 456 Image Processing
    • CSCI-B 456 IMAGE PROCESSING
    • CSCI-B 457 Introduction to Computer Vision
    • CSCI-B 457 INTRODUCTION TO COMPUTER VISION
    • CSCI-B 461 DATABASE CONCEPTS
    • CSCI-B 461 Database Concepts
    • CSCI-B 471 NUMERICAL ANALYSIS I
    • CSCI-B 472 NUMERICAL ANALYSIS II
    • CSCI-B 481 INTERACTIVE GRAPHICS
    • CSCI-B 481 Interactive Graphics
    • CSCI-B 490 SEMINAR IN COMPUTER SCIENCE
    • CSCI-B 490 Seminar in Computer Science
    • CSCI-C 301 FORTRAN PROGRAMMING
    • CSCI-C 302 PASCAL PROGRAMMING
    • CSCI-C 303 COBOL PROGRAMMING
    • CSCI-C 304 C PROGRAMMING
    • CSCI-C 306 OBJECT ORIENTED PROGRAMMING
    • CSCI-C 307 APPLIED PROGRAMMING TECHNIQUES
    • CSCI-C 308 SYSTEM ANALYSIS AND DESIGN
    • CSCI-C 311 Programming Languages
    • CSCI-C 311 PROGRAMMING LANGUAGES
    • CSCI-C 322 Object-Oriented Software Methods
    • CSCI-C 322 OBJECT-ORIENTED SOFTWARE METHODS
    • CSCI-C 323 Mobile App Development
    • CSCI-C 323 MOBILE APP DEVELOPMENT
    • CSCI-C 335 Computer Structures
    • CSCI-C 335 COMPUTER STRUCTURES
    • CSCI-C 341 FUNDAMENTALS OF COMPUTING THEORY
    • CSCI-C 343 Data Structures
    • CSCI-C 343 DATA STRUCTURES
    • CSCI-C 390 INDIVIDUAL PROGRAMMING LAB
    • CSCI-C 391 PROJECT IN PROFESSIONAL PRACTICE
    • CSCI-C 422 DIGITAL HARDWARE DESIGN II
    • CSCI-C 428 COMPUTER ARCHITECTURE
    • CSCI-C 431 ASSEMBLERS AND COMPILERS 1
    • CSCI-C 432 ASSEMBLERS AND COMPILERS 2
    • CSCI-C 435 OPERATING SYSTEMS 1
    • CSCI-C 436 OPERATING SYSTEMS 2
    • CSCI-C 445 INFORMATION SYSTEMS I
    • CSCI-C 446 INFORMATION SYSTEMS II
    • CSCI-C 451 AUTOMATA AND FORMAL GRAMMARS
    • CSCI-C 452 THEORY OF COMPUTABILITY
    • CSCI-C 455 ANALYSIS OF ALGORITHMS I
    • CSCI-C 460 SENIOR PROJECT I
    • CSCI-C 463 ARTIFICIAL INTELLIGENCE I
    • CSCI-C 464 ARTIFICIAL INTELLIGENCE II
    • CSCI-C 470 SENIOR PROJECT II
    • CSCI-C 482 IMAGE SYNTHESIS
    • CSCI-C 490 SEMINAR IN COMPUTER SCIENCE
    • CSCI-H 311 Programming Languages, Honors
    • CSCI-H 311 PROGRAMMING LANGUAGES HONORS
    • CSCI-H 335 Computer Structures, Honors
    • CSCI-H 335 COMPUTER STRUCTURES HONORS
    • CSCI-H 343 Data Structures, Honors
    • CSCI-H 343 DATA STRUCTURES, HONORS
    • CSCI-H 498 Undergraduate Honors Seminar
    • CSCI-H 498 UNDERGRADUATE HONORS SEMINAR
    • CSCI-P 415 Introduction to Verification
    • CSCI-P 415 INTRODUCTION TO VERIFICATION
    • CSCI-P 423 Compilers
    • CSCI-P 423 COMPILERS
    • CSCI-P 424 Advanced Functional Programming
    • CSCI-P 424 ADVANCED FUNCTIONAL PROGRAMMING
    • CSCI-P 434 Distributed Systems
    • CSCI-P 434 DISTRIBUTED SYSTEMS
    • CSCI-P 436 Introduction to Operating Systems
    • CSCI-P 436 INTRODUCTION TO OPERATING SYSTEMS
    • CSCI-P 438 Introduction to Computer Networks
    • CSCI-P 438 INTRODUCTION TO COMPUTER NETWORKS
    • CSCI-P 442 Digital Systems
    • CSCI-P 442 DIGITAL SYSTEMS
    • CSCI-P 462 Database Application Design and Implementation
    • CSCI-P 462 DATABASE APPLICATION DESIGN AND IMPLEMENTATION
    • CSCI-P 465 Software Engineering for Information Systems I
    • CSCI-P 465 SOFTWARE ENGINEERING FOR INFORMATION SYSTEMS I
    • CSCI-P 466 Software Engineering for Information Systems II
    • CSCI-P 466 SOFTWARE ENGINEERING FOR INFORMATION SYSTEMS II
    • CSCI-Y 331 DIGITAL SYSTEMS
    • CSCI-Y 390 Undergraduate Independent Study
    • CSCI-Y 390 UNDERGRADUATE INDEPENDENT STUDY
    • CSCI-Y 391 Undergraduate Independent System Development
    • CSCI-Y 391 UNDERGRADUATE INDEPENDENT SYSTEM DEVELOPMENT
    • CSCI-Y 395 Career Development for CSCI Majors
    • CSCI-Y 395 CAREER DEVELOPMENT FOR CSCI MAJORS
    • CSCI-Y 399 Project in Professional Practice
    • CSCI-Y 399 PROJECT IN PROFESSIONAL PRACTICE
    • CSCI-Y 499 Honors Research
    • CSCI-Y 499 HONORS RESEARCH
    • INFO-H 494 DESIGN AND DEVELOPMENT OF AN INFORMATION SYSTEM
    • INFO-H 495 DESIGN AND DEVELOPMENT OF AN INFORMATION SYSTEMS
    • INFO-I 494 DESIGN AND IMPLEMENTATION OF AN INFORMATION SYSTEM (PART I)
    • INFO-I 495 DESIGN AND DEVELOPMENT OF AN INFORMATION SYSTEM
    • MATH-M 471 Numerical Analysis I
    • MATH-M 472 Numerical Analysis II
  3. Addenda Requirements*.
    1. Mathematical Foundations. One (1) course:
      • MATH-M 118 Finite Mathematics
      • MATH-M 211 Calculus I
      • MATH-S 118 Honors Finite Mathematics
      • MATH-S 211 Honors Calculus I
      • MATH-V 118 Finite Mathematics with Applications
    2. Mathematical Science Elective. One (1) course:
      • Additional course from the Mathematical Foundations list
      • MATH-M 212 Calculus II
      • MATH-M 213
      • MATH-M 301 Linear Algebra and Applications
      • MATH-M 303 Linear Algebra for Undergraduates
      • MATH-M 311 Calculus III
      • MATH-M 312 Calculus IV
      • MATH-M 343 Introduction to Differential Equations with Applications I
      • MATH-M 371 Elementary Computational Methods
      • MATH-M 384 Logic
      • MATH-M 391 Introduction to Mathematical Reasoning
      • MATH-M 405 Number Theory
      • MATH-M 409 Linear Transformations
      • MATH-S 212 Honors Calculus II
      • MATH-S 311 Honors Course in Calculus III
      • MATH-S 312 Honors Course in Calculus IV
      • MATH-S 343 Honors Course in Differential Equations
      • PHIL-P 250 Introductory Symbolic Logic
      • PHIL-P 251 Intermediate Symbolic Logic
      • PHIL-P 350 Logic of Sets
      • PHIL-P 352 Logic and Philosophy
    3. Additional Elective. One (1) course:
      • Additional course from the Mathematical Science Elective list
      • CSCI-B 401 Fundamentals of Computing Theory (Note: This course will count toward the Major Hours and Major GPA requirements)
      • CSCI-B 403 Introduction to Algorithm Design and Analysis (Note: This course will count toward the Major Hours and Major GPA requirements)
      • CSCI-P 415 Introduction to Verification (Note: This course will count toward the Major Hours and Major GPA requirements)
      • ECON-E 370 Statistical Analysis for Business and Economics
      • MATH-M 365 Introduction to Probability and Statistics
      • STAT-S 320 Introduction to Statistics
  4. Major GPA, Hours, and Minimum Grade Requirements.
    1. At least 18 credit hours in the major must be completed in courses taken through the Indiana University Bloomington campus or an IU-administered or IU co-sponsored Overseas Study program.
    2. At least 18 credit hours in the major must be completed at the 300–499 level.
    3. Except for the GPA requirement, a grade of C- or higher is required for a course to count toward a requirement in the major.
    4. A GPA of at least 2.000 for all courses taken in the major—including those where a grade lower than C- is earned—is required.
    5. Exceptions to major requirements may be made with the approval of the department's Director of Undergraduate Studies, subject to final approval by the College of Arts and Sciences.