University of Illinois Urbana-ChampaignWebsiteAcademic Catalog
Computing and Data ScienceDepartment Website
BSLAS Degree in Mathematics and Computer Sciencesource 1source 2
CS Courses
- Software Design LabCS 222 (1)softengCS 222: Software Design Lab
Design and implementation of novel software solutions. Problem identification and definition; idea generation and evaluation; and software implementation, testing, and deployment. Emphasizes software development best practices—including framework selection, code review, documentation, appropriate library usage, project management, continuous integration and testing, and teamwork.
- Data StructuresCS 225 (4)introCS 225: Data Structures
Data abstractions: elementary data structures (lists, stacks, queues, and trees) and their implementation using an object-oriented programming language. Solutions to a variety of computational problems such as search on graphs and trees. Elementary analysis of algorithms.
- orSystem ProgrammingCS 341 (4)sysCS 341: System Programming
Basics of system programming, including POSIX processes, process control, inter-process communication, synchronization, signals, simple memory management, file I/O and directories, shell programming, socket network programming, RPC programming in distributed systems, basic security mechanisms, and standard tools for systems programming.
Introduction to Computer SystemsCS 340 (3)sysCS 340: Introduction to Computer SystemsBasics of computer systems. Number representations, assembly/machine language, abstract models of processors, processes/process control, simple memory management, file I/O and directories, network programming, usage of cloud services.
- Numerical Methods ICS 357 (3)mathCS 357: Numerical Methods I
Fundamentals of numerical methods for students in science and engineering; floating-point computation, systems of linear equations, approximation of functions and integrals, the single nonlinear equation, and the numerical solution of ordinary differential equations; various applications in science and engineering; programming exercises and use of high quality mathematical library routines.
- Introduction to Algorithms & Models of ComputationCS 374 (4)algsCS 374: Introduction to Algorithms & Models of Computation
Analysis of algorithms, major paradigms of algorithm design including recursive algorithms, divide-and-conquer algorithms, dynamic programming, greedy algorithms, and graph algorithms. Formal models of computation including finite automata and Turing machines. Limitations of computation arising from fundamental notions of algorithm and from complexity-theoretic constraints. Reductions, undecidability and NP-completeness.
- Programming Languages & CompilersCS 421 (3)plsCS 421: Programming Languages & Compilers
Structure of programming languages and their implementation. Basic language design principles; abstract data types; functional languages; type systems; object-oriented languages. Basics of lexing, parsing, syntax-directed translation, semantic analysis, and code generation.
- Numerical AnalysisCS 450 (3)mathCS 450: Numerical Analysis
Linear system solvers, optimization techniques, interpolation and approximation of functions, solving systems of nonlinear equations, eigenvalue problems, least squares, and quadrature; numerical handling of ordinary and partial differential equations.
- orFormal Models of ComputationorCS 475 (3)theoryCS 475: Formal Models of Computation
Finite automata and regular languages; pushdown automata and context-free languages; Turing machines and recursively enumerable sets; linear-bounded automata and context-sensitive languages; computability and the halting problem; undecidable problems; recursive functions; Chomsky hierarchy; computational complexity.
Program VerificationororCS 476 (3)softengCS 476: Program VerificationFormal methods for demonstrating correctness and other properties of programs. Invariant assertions; Hoare axiomatics; well-founded orderings for proving termination; structural induction; computational induction; data structures; parallel programs; overview of predicate calculus.
Mathematical LogicMATH 414 (3)mathMATH 414: Mathematical LogicIntroduction to the formalization of mathematics and the study of axiomatic systems; expressive power of logical formulas; detailed treatment of propositional logical and predicate logic; compactness theorem and Godel completeness theorem, with applications to specific mathematical theories; algorithmic aspects of logical formulas. Proofs are emphasized in this course, which can serve as an introduction to abstract mathematics and rigorous proof; some ability to do mathematical reasoning required.
- Technical Elective (Math or CS, 400+)
Math/Stat Courses
- Calculus IMATH 221 (4)mathMATH 221: Calculus I
First course in calculus and analytic geometry for students with some calculus background; basic techniques of differentiation and integration with applications including curve sketching; antidifferentation, the Riemann integral, fundamental theorem, exponential and trigonometric functions.
- Fundamental MathematicsMATH 347 (3)mathMATH 347: Fundamental Mathematics
Fundamental ideas used in many areas of mathematics. Topics will include: techniques of proof, mathematical induction, binomial coefficients, rational and irrational numbers, the least upper bound axiom for real numbers, and a rigorous treatment of convergence of sequences and series. This will be supplemented by the instructor from topics available in the various texts. Students will regularly write proofs emphasizing precise reasoning and clear exposition. Credit is not given for both MATH 347 and MATH 348.
- Probability & Statistics for Computer ScienceorCS 361 (3)mathCS 361: Probability & Statistics for Computer Science
Introduction to probability theory and statistics with applications to computer science. Topics include: visualizing datasets, summarizing data, basic descriptive statistics, conditional probability, independence, Bayes theorem, random variables, joint and conditional distributions, expectation, variance and covariance, central limit theorem, Markov inequality, Chebyshev inequality, law of large numbers, Markov chains, simulation, the PageRank algorithm, populations and sampling, sample mean, standard error, maximum likelihood estimation, Bayes estimation, hypothesis testing, confidence intervals, linear regression, principal component analysis, classification, and decision trees.
Statistics and Probability IorSTAT 400 (4)mathSTAT 400: Statistics and Probability IIntroduction to mathematical statistics that develops probability as needed; includes the calculus of probability, random variables, expectation, distribution functions, central limit theorem, point estimation, confidence intervals, and hypothesis testing. Offers a basic one-term introduction to statistics and also prepares students for STAT 410 and STAT 425. Same as MATH 463.
- Graph TheoryororMATH 412 (3)mathMATH 412: Graph Theory
Examines basic concepts and applications of graph theory, where graph refers to a set of vertices and edges that join some pairs of vertices; topics include subgraphs, connectivity, trees, cycles, vertex and edge coloring, planar graphs and their colorings. Draws applications from computer science, operations research, chemistry, the social sciences, and other branches of mathematics, but emphasis is placed on theoretical aspects of graphs.
Intro to Abstract AlgebraorMATH 417 (3)mathMATH 417: Intro to Abstract AlgebraFundamental theorem of arithmetic, congruences. Permutations. Groups and subgroups, homomorphisms. Group actions with applications. Polynomials. Rings, subrings, and ideals. Integral domains and fields. Roots of polynomials. Maximal ideals, construction of fields.
- Applied Linear AlgebraorMATH 415 (3)mathMATH 415: Applied Linear Algebra
Introductory course emphasizing techniques of linear algebra with applications to engineering; topics include matrix operations, determinants, linear equations, vector spaces, linear transformations, eigenvalues, and eigenvectors, inner products and norms, orthogonality, equilibrium, and linear dynamical systems.
- Honors Real AnalysisorMATH 424 (3)mathMATH 424: Honors Real Analysis
A rigorous treatment of basic real analysis via metric spaces recommended for those who intend to pursue programs heavily dependent upon graduate level Mathematics. Metric space topics include continuity, compactness, completeness, connectedness and uniform convergence. Analysis topics include the theory of differentiation, Riemann-Darboux integration, sequences and series of functions, and interchange of limiting operations. As part of the honors sequence, this course will be rigorous and abstract.
Elementary Real AnalysisorMATH 444 (3)mathMATH 444: Elementary Real AnalysisCareful treatment of the theoretical aspects of the calculus of functions of a real variable intended for those who do not plan to take graduate courses in Mathematics. Topics include the real number system, limits, continuity, derivatives, and the Riemann integral.
Real VariablesMATH 447 (3)mathMATH 447: Real VariablesCareful development of elementary real analysis for those who intend to take graduate courses in Mathematics. Topics include completeness property of the real number system; basic topological properties of n-dimensional space; convergence of numerical sequences and series of functions; properties of continuous functions; and basic theorems concerning differentiation and Riemann integration.
- ororNonlinear ProgrammingMATH 484 (3)mathMATH 484: Nonlinear Programming
Iterative and analytical solutions of constrained and unconstrained problems of optimization; gradient and conjugate gradient solution methods; Newton's method, Lagrange multipliers, duality and the Kuhn-Tucker theorem; and quadratic, convex, and geometric programming.