Department of Computer Science

# Bachelor of Arts in Computer Science

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

## Requirements

The major requires at least 30 credit hours (36–42 credit hours with the Addenda Requirements), including the requirements listed below.

**Core Courses.****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

# CSCI-C 200 Introduction to Computers and Programming

- Credits
- 4
- Prerequisites
- High school precalculus math
- Description
- This course is an introduction, broadly, to algorithmic thinking and, specifically, to programming. It teaches the basics of programming using real world applications in natural, physical and social sciences. Students will develop ability to program by identifying problems in real world and then creating a program that solves the problem.
- Repeatability
- Credit given for only one of CSCI-C 200, CSCI-C 211, CSCI-H 211, or CSCI-A 591.

# CSCI-C 211 Introduction to Computer Science

- Credits
- 4
- Prerequisites
- High school precalculus math
- Description
- A first course in computer science for those intending to take advanced computer science courses. Introduction to programming and to algorithm design and analysis. Using the Scheme programming language, the course covers several programming paradigms. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-C 200, CSCI-C 211, CSCI-H 211, or CSCI-A 591.

# CSCI-H 211 Introduction to Computer Science, Honors

- Credits
- 4
- Prerequisites
- High school precalculus math
- Description
- Honors version of CSCI-C 211. A first course in computer science for those intending to take advanced computer science courses. Introduction to programming and to algorithm design and analysis. Using the Scheme programming language, the course covers several programming paradigms. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-A 591, CSCI-C 200, CSCI-C 211, or CSCI-H 211.

**Software Systems.**One (1) course:- CSCI-C 212 Introduction to Software Systems
- CSCI-H 212 Introduction to Software Systems, Honors

# CSCI-C 212 Introduction to Software Systems

- Credits
- 4
- Prerequisites
- CSCI-C 200 or CSCI-C 211.
- Description
- Design of computer software systems and introduction to programming in the environment of a contemporary operating system. Topics include a modern object-oriented programming language; building and maintaining large projects; and understanding the operating system interface. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-A 592, CSCI-C 212, CSCI-H 212, or ENGR-E 111.

# CSCI-H 212 Introduction to Software Systems, Honors

- Credits
- 4
- Prerequisites
- CSCI-C 200 or CSCI-C 211
- Description
- Honors version of CSCI-C 212. Design of computer software systems and introduction to programming in the environment of a contemporary operating system. Topics include a modern object-oriented programming language; building and maintaining large projects; and understanding the operating system interface. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-A 592, CSCI-C 212, CSCI-H 212, or ENGR-E 111.

**Discrete Structures.**One (1) course:- CSCI-C 241 Discrete Structures for Computer Science
- CSCI-H 241 Discrete Structures for Computer Science, Honors

# CSCI-C 241 Discrete Structures for Computer Science

- Credits
- 3
- Prerequisites
- CSCI-C 200 or CSCI-C 211
- Notes
- R: MATH-M 211
- Description
- Induction and recursive programs, running time, asymptotic notations, combinatorics and discrete probability, trees and lists, the relational data model, graph algorithms, propositional and predicate logic.
- Repeatability
- Credit given for only one of CSCI-C 241 or CSCI-H 241.

# CSCI-H 241 Discrete Structures for Computer Science, Honors

- Credits
- 3
- Prerequisites
- CSCI-C 200 or CSCI-C 211
- Notes
- R: MATH-M 211
- Description
- Honors version of CSCI-C 241. Induction and recursive programs, running time, asymptotic notations, combinatorics and discrete probability, trees and lists, the relational data model, graph algorithms, propositional and predicate logic.
- Repeatability
- Credit given for only one of CSCI-C 241 or CSCI-H 241.

**Data Structures.**One (1) course:- CSCI-C 343 Data Structures
- CSCI-H 343 Data Structures, Honors

# CSCI-C 343 Data Structures

- Credits
- 4
- Prerequisites
- CSCI-C 212 and CSCI-C 241
- Description
- Systematic study of data structures encountered in computing problems, structure and use of storage media, methods of representing structured data, and techniques for operating on data structures. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-C 343 or CSCI-H 343.

# CSCI-H 343 Data Structures, Honors

- Credits
- 4
- Prerequisites
- CSCI-C 212, CSCI-C 241 and CSCI-C 291
- Description
- Honors version of CSCI-C 343. Systematic study of data structures encountered in computing problems, structure and use of storage media, methods of representing structured data, and techniques for operating on data structures. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-C 343 or CSCI-H 343.

**Advanced Electives.**15 credit hours:- Any CSCI-B 300–399
- Any CSCI-B 400–499
- Any CSCI-C 300–399
- Any CSCI-C 400–499
- Any CSCI-H 300–399
- Any CSCI-H 400–499
- Any CSCI-P 300–399
- Any CSCI-P 400–499
- Any CSCI-Y 300–399
- Any CSCI-Y 400–499
- MATH-M 471 Numerical Analysis I
- MATH-M 472 Numerical Analysis II
- 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

- Credits
- 3
- Prerequisites
- MATH-M 301, MATH-M 303, or MATH-S 303; and MATH-M 311 or MATH-S 311; and MATH-M 343 or MATH-S 343
- Notes
- Knowledge of a computer language such as FORTRAN, C, C++, etc., is essential for success in this course. Students with other programming backgrounds should consult the instructor
- Description
- Interpolation and approximation of functions, numerical integration and differentiation, solution of nonlinear equations, acceleration and extrapolation, solution of systems of linear equations, eigenvalue problems, initial and boundary value problems for ordinary differential equations, and computer programs applying these numerical methods.

# MATH-M 472 Numerical Analysis II

- Credits
- 3
- Prerequisites
- MATH-M 301, MATH-M 303, or MATH-S 303; and MATH-M 311 or MATH-S 311; and MATH-M 343 or MATH-S 343
- Notes
- Knowledge of a computer language such as FORTRAN, C, C++, etc., is essential for success in this course. Students with other programming backgrounds should consult the instructor.
- Description
- Interpolation and approximation of functions, numerical integration and differentiation, solution of nonlinear equations, acceleration and extrapolation, solution of s of linear equations, eigenvalue problems, initial and boundary value problems for ordinary differential equations, and computer programs applying these numerical methods.

# INFO-H 494 DESIGN AND DEVELOPMENT OF AN INFORMATION SYSTEM

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# INFO-H 495 DESIGN AND DEVELOPMENT OF AN INFORMATION SYSTEMS

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# INFO-I 494 DESIGN AND IMPLEMENTATION OF AN INFORMATION SYSTEM (PART I)

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# INFO-I 495 DESIGN AND DEVELOPMENT OF AN INFORMATION SYSTEM

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

**Addenda Requirements*.****Mathematical Foundations.**One (1) course:- MATH-M 118 Finite Mathematics
- MATH-M 211 Calculus I
- MATH-S 118 Honors Finite Mathematics
- MATH-S 211
- MATH-V 118 Finite Mathematics with Applications

# MATH-M 118 Finite Mathematics

- Credits
- 3
- Prerequisites
- None
- Notes
- R: To be successful, students will demonstrate mastery of two years of high school algebra as indicated by an appropriate ALEKS score or completion of MATH-M 014, MATH-M 018, or MATH-J 111
- Description
- Sets, counting, basic probability, including random variables and expected values. Linear systems, matrices, linear programming, and applications.
- Repeatability
- Credit given for only one of MATH-A 118, MATH-M 118, MATH-S 118, MATH-V 118; or MATH-D 116 and MATH-D 117.

- Fall 2024CASE MMcourse

- Fall 2024CASE NMcourse

# MATH-M 211 Calculus I

- Credits
- 4
- Prerequisites
- None
- Notes
- R: To be successful, students will demonstrate mastery of two years of high school algebra, one year of high school geometry, and pre-calculus, and trigonometry as indicated by an appropriate ALEKS score or completion of MATH-M 027
- Description
- Limits, continuity, derivatives, definite and indefinite integrals, applications.
- Repeatability
- A student may receive credit for only one of the following: MATH-J 113, MATH-M 119, MATH-V 119, MATH-M 211, or MATH-S 211.

- Fall 2024CASE MMcourse

- Fall 2024CASE NMcourse

# MATH-S 118 Honors Finite Mathematics

- Credits
- 3
- Prerequisites
- Hutton Honors College membership
- Notes
- R: To be successful students will demonstrate mastery of two years of high school algebra as indicated by an appropriate ALEKS score or completion of MATH-M 014, MATH-M 018, or MATH-J 111
- Description
- Designed for students of outstanding ability in mathematics. Covers all material of MATH-M 118 and additional topics from statistics and game theory. Computers may be used in this course, but no previous experience is assumed.

- Fall 2024CASE MMcourse

- Fall 2024CASE NMcourse

# MATH-V 118 Finite Mathematics with Applications

- Credits
- 3
- Prerequisites
- None
- Notes
- R: To be successful, students will demonstrate mastery of two years of high school algebra as indicated by an appropriate ALEKS score or completion of MATH-M 014, MATH-M 018, or MATH-J 111
- Description
- Sets, counting, basic probability, linear modelling, and other discrete topics. Applications to various areas depending on topic. Possibilities include social and biological sciences and consumer mathematics.
- Repeatability
- Credit given for only one of MATH-A 118, MATH-M 118, MATH-S 118, MATH-V 118; or MATH-D 116 and MATH-D 117.

- Fall 2024CASE NMcourse

**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
- 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

# MATH-M 212 Calculus II

- Credits
- 4
- Prerequisites
- MATH-M 211 or MATH-S 211; or consent of department
- Description
- Techniques of integration (by parts, trigonometric substitutions, partial fractions), improper integrals, volume, work, arc length, surface area, infinite series.
- Repeatability
- Credit given for only one of MATH-M 120 or MATH-M 212.

- Fall 2024CASE NMcourse

# MATH-M 301 Linear Algebra and Applications

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212; or MATH-M 211 and CSCI-C 241; or MATH-S 211 and CSCI-C 241
- Description
- Solving systems of linear equations, matrix algebra, determinants, vector spaces, eigenvalues and eigenvectors. Selection of advanced topics. Applications throughout. Computer used for theory and applications.
- Repeatability
- Credit given for only one of MATH-M 301 or MATH-M 303.

- Fall 2024CASE NMcourse

# MATH-M 303 Linear Algebra for Undergraduates

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212; or MATH-M 211 and CSCI-C 241; or MATH-S 211 and CSCI-C 241
- Description
- Introduction to the theory of real vector spaces. Coordinate s, linear dependence, bases. Linear transformations and matrix calculus. Determinants and rank. Eigenvalues and eigenvectors.
- Repeatability
- Credit given for only one of MATH-M 301, MATH-M 303, or MATH-S 303.

- Fall 2024CASE NMcourse

# MATH-M 311 Calculus III

- Credits
- 4
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212
- Description
- Elementary geometry of 2, 3, and n-space; functions of several variables; partial differentiation; minimum and maximum problems; multiple integration.

- Fall 2024CASE NMcourse

# MATH-M 312 Calculus IV

- Credits
- 3
- Prerequisites
- MATH-M 311 or MATH-S 311
- Description
- Differential calculus of vector-valued functions, transformation of coordinates, change of variables in multiple integrals. Vector integral calculus: line integrals, Green\'s theorem, surface integrals, Stokes\' theorem. Applications.
- Repeatability
- Credit given for only one of MATH-M 312 or MATH-S 312.

# MATH-M 371 Elementary Computational Methods

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212
- Description
- Interpolation and approximation of functions, solution of equations, numerical integration and differentiation. Errors, convergence, and stability of the procedures. Students write and use programs applying numerical methods.

- Fall 2024CASE NMcourse

# MATH-M 384 Logic

- Credits
- 3
- Prerequisites
- CSCI-C 241, MATH-M 303, or MATH-S 303
- Description
- Construction and study of formal mathematical languages. Definitions of, and relationships between, the notions of truth and provability of a formal sentence. Proof systems for logical systems such as propositional logic and syllogistic logic. Soundness, completeness, and decidability.

- Fall 2024CASE NMcourse

# MATH-M 391 Introduction to Mathematical Reasoning

- Credits
- 3
- Prerequisites
- (A) MATH-M 212, MATH-M 213, or MATH-S 212; or CSCI-C 241 and MATH-M 211; or CSCI-C 241 and MATH-S 211; and (B) MATH-M 301, MATH-M 303, or MATH-S 303
- Notes
- Recommended for students with insufficient background for 400-level courses and for students in education
- Description
- Elementary logic, techniques of proof, basic set theory, functions, relations, binary operations, number systems, counting. Bridges the gap between elementary and advanced courses.
- Repeatability
- Not open to students who have received credit for MATH-M 403, MATH-M 413, or MATH-M 420.

- Fall 2024CASE NMcourse

# MATH-M 405 Number Theory

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212
- Description
- Numbers and their representation, divisibility and factorization, primes and their distribution, number theoretic functions, congruences, primitive roots, diophantine equations, quadratic residues, sums of squares.

# MATH-M 409 Linear Transformations

- Credits
- 3
- Prerequisites
- MATH-M 301, MATH-M 303, or MATH-S 303
- Description
- The study of linear transformations on a finite dimensional vector space over the complex field. Canonical forms, similarity theory; inner products and diagonalization of normal transformations.

# MATH-S 212 Honors Calculus II

- Credits
- 4
- Prerequisites
- MATH-S 211 or consent of department
- Description
- Includes material of MATH-M 212 and supplemental topics. Designed for students of outstanding ability in mathematics.
- Repeatability
- Credit given for only one of MATH-M 120, MATH-M 212, or MATH-S 212.

- Fall 2024CASE NMcourse

# MATH-S 311 Honors Course in Calculus III

- Credits
- 4
- Prerequisites
- MATH-S 212 or consent of instructor; and MATH M-301, MATH M-303, or MATH S-303
- Description
- Honors version of MATH-M 311, covering geometry of 2, 3, and n-space; functions of several variables; partial differentiation; minimum and maximum problems; and multiple integration. For students with unusual aptitude and motivation.
- Repeatability
- Credit given for only one of MATH-M 311 or MATH-S 311.

- Fall 2024CASE NMcourse

# MATH-S 312 Honors Course in Calculus IV

- Credits
- 3
- Prerequisites
- MATH-S 311 or consent of instructor
- Description
- For students with unusual aptitude and motivation.
- Repeatability
- Credit given for only one of MATH-M 312 or MATH-S 312.

# MATH-S 343 Honors Course in Differential Equations

- Credits
- 3
- Prerequisites
- MATH-S 212 or consent of instructor
- Description
- Introduction, with historical examples, first order ordinary differential equations (ODEs) and applications, second order linear ODEs, linear ODEs of higher order, series solutions to linear ODEs, and numerical methods for ODEs. In addition, some theoretical aspects will be studied in detail such as the Picard existence/uniqueness theorem for initial-value problems, convergence of series solutions, and the matrix exponential exp(tA).

- Fall 2024CASE NMcourse

# PHIL-P 250 Introductory Symbolic Logic

- Credits
- 3
- Prerequisites
- None
- Description
- Propositional logic and first-order quantificational logic.
- Repeatability
- No credit for PHIL-P 150 if PHIL-P 250 taken first or concurrently.

- Fall 2024CASE NMcourse

# PHIL-P 251 Intermediate Symbolic Logic

- Credits
- 3
- Prerequisites
- PHIL-P 250 or consent of instructor
- Description
- Identity, definite descriptions, properties of formal theories, elementary set theory.

- Fall 2024CASE NMcourse

# PHIL-P 350 Logic of Sets

- Credits
- 3
- Prerequisites
- PHIL-P 250 or consent of instructor
- Description
- Elementary operations on sets, relations, functions, orderings, introduction to ordinal and cardinal numbers.

# PHIL-P 352 Logic and Philosophy

- Credits
- 3
- Prerequisites
- PHIL-P 250 or consent of instructor
- Description
- Relation of logic to other areas of philosophy. Selected topics from among the following: logic and ontology; logic and language; logic, reasoning, and belief; intentionality and intentional logic; tense and modal logic; individuation, reference, identity.

- Fall 2024CASE AHcourse

**Additional Elective.**One (1) course:- Additional course from the Mathematical Science Elective list
- CSCI-B 403 Introduction to Algorithm Design and Analysis (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
- CSCI-B 401 Fundamentals of Computing Theory (This course will count toward the Major Hours and Major GPA requirements)
- CSCI-P 415 Introduction to Verification (This course will count toward the Major Hours and Major GPA requirements)

# CSCI-B 403 Introduction to Algorithm Design and Analysis

- Credits
- 3
- Prerequisites
- CSCI-C 241, CSCI-C 343 and MATH-M 216 or MATH-M 212
- Description
- Algorithm design methodology. General methods for analysis of algorithms. Analysis of the performance of specific algorithms, such as those for searching and sorting.
- Repeatability
- Credit give for only one of CSCI-B 403 or CSCI-B 503.

# ECON-E 370 Statistical Analysis for Business and Economics

- Credits
- 3
- Prerequisites
- MATH-M 118, MATH-S 118, or MATH-V 118
- Notes
- R: ECON-E 252 or ECON-B 252 and MATH-M 119
- Description
- Lectures emphasize the use of basic probability concepts and statistical theory in the estimation and testing of single parameter and multivariate relationships. In computer labs, using Microsoft Excel, each student calculates descriptive statistics, probabilities, and least squares regression coefficients in situations based on current business and economic events.
- Repeatability
- Credit given for only one of ANTH-A 306, CJUS-K 300, ECON-E 370, ECON-S 370, MATH-K 300, MATH-K 310, POLS-Y 395, PSY-K 300, PSY-K 310, SOC-S 371, SPEA-K 300, SPH-Q 381, STAT-K 310, STAT-S 300, STAT-S 301, or STAT-S 303.

- Fall 2024CASE NMcourse

# MATH-M 365 Introduction to Probability and Statistics

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212
- Description
- Elementary concepts of probability and statistics. Combinatorics, conditional probability, independence, random variables, discrete and continuous distributions, moments. Statistical inference, point estimation, confidence intervals, test of hypotheses. Applications to social, behavioral, and natural sciences.
- Repeatability
- Credit given for only one of MATH-M 360 or MATH-M 365.

- Fall 2024CASE NMcourse

# STAT-S 320 Introduction to Statistics

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-S 212, MATH-M 301, MATH-M 303, or MATH-S 303
- Description
- Basic concepts of data analysis and statistical inference, applied to 1-sample and 2-sample location problems, the analysis of variance, and linear regression. Probability models and statistical methods applied to practical situations using actual data sets from various disciplines.
- Repeatability
- Credit given for only one of STAT-S 320 or STAT-S 350.

- Fall 2024CASE NMcourse

# CSCI-B 401 Fundamentals of Computing Theory

- Credits
- 3
- Prerequisites
- CSCI-C 212 and CSCI-C 241
- Description
- Fundamentals of formal language theory, computation models and computability, the limits of computability and feasibility, and program verification.

# CSCI-P 415 Introduction to Verification

- Credits
- 3
- Prerequisites
- CSCI-C 311
- Description
- Tools and techniques for rigorous reasoning about software and digital hardware. Safety, reliability, security, and other design-critical applications. Decision algorithms. Projects involving the use of automated reasoning, such as model checkers, theorem provers, and program transformation.
- Repeatability
- Credit given for only one of CSCI-P 415 or CSCI-P 515.

**Major GPA, Hours, and Minimum Grade Requirements.**- 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.
- At least 18 credit hours in the major must be completed at the 300–499 level.
- Except for the GPA requirement, a grade of C- or higher is required for a course to count toward a requirement in the major.
- 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.
- 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.

Notes

The Bachelor of Arts degree requires at least 120 credit hours, to include the following:

**College of Arts and Sciences Credit Hours.**At least 100 credit hours must come from College of Arts and Sciences disciplines.**Upper Division Courses.**At least 42 credit hours (of the 120) must be at the 300–499 level.**College Residency.**Following completion of the 60th credit hour toward degree, at least 36 credit hours of College of Arts and Sciences coursework must be completed through the Indiana University Bloomington campus or an IU-administered or IU co-sponsored Overseas Study program.**College GPA.**A cumulative grade point average (GPA) of at least 2.000 is required for all courses taken at Indiana University.**CASE Requirements.**The following College of Arts and Sciences Education (CASE) requirements must be completed:- CASE Foundations
- CASE Breadth of Inquiry
- CASE Culture Studies
- CASE Critical Approaches: 1 course
- CASE Foreign Language: Proficiency in a single foreign language through the second semester of the second year of college-level coursework
- CASE Intensive Writing: 1 course
- CASE Public Oral Communication: 1 course

**Major.**Completion of the major as outlined in the Major Requirements section above.

Most students must also successfully complete the Indiana University Bloomington General Education program.