MSCS Majors
Navigation:
Bachelor of Science in Mathematical Computer Science
The MCS curiculum fosters the development of logical and analytical thinking and is designed to provide a basic foundation for students who seek careers in the forefront of computing. Emphasis is given to the mathematical theory of computer science and computational methods. The program concentrates on both the practical and theoretical aspects of computer science such as numerical computing, super computing, programming languages, algorithms, complexity, coding theory, combinatorics and graph theory. The curriculum is intended for students who seek careers in systems and/or mathematical computing.
- MSCS General Advising Guide
- Information on what you need to know about getting started as an MSCS major and working toward graduation.
- New MCS Curriculum requirements - effective Fall 2007
A helpful list of required courses in the MCS major including new recommended clusters.
Each MCS major will be able to decide whether to graduate using the old requirements or under the new requirements. If you would like to switch to the new one, you must see a Department Advisor during advising and declare this option. Changes will go into effect during the Fall Semester 2007.
It is important to understand that once a change is made, it cannot be reversed. Full details are available at the Undergraduate Studies Offices on the 3rd floor SEO or at advising during the Spring Semester.
- Old Coursework and Checksheet
- A helpful list of required courses in the Math major and checksheet to mark your progress.
- Old MCS Recommended Clusters
- MCS students are encouraged to choose their courses based on three areas of specialization in the major.
- Computer Majors
- Four options for students who are interested in computers.
- LAS Graduation Requirements
- A source of all general education, residence and GPA requirements for graduation from the College of Liberal Arts and Sciences.
- Old Plan of Study
- A four-year plan of study in the undergraduate catalog to help you map out your degree.
Mathematical Computer Science Requirements
| Course | Hours | Prerequisites and Advice |
|---|---|---|
Math 180, 181, 210
Calculus I, II, III
|
13 | C or higher in each to continue |
Math 300
Writing in Mathematics
|
1 | English 161 and C or higher in Math 210
Open only to declared majors
|
Math 310
Applied Linear Algebra, or
Math 320
Linear Algebra I
|
3 | C or higher in Math 210
C or higher in MCS 261 or Math 215
|
MCS 260
Intro to Comp Science
|
4 | C or concurrent enrollment in Math 180 |
MCS 261
Discrete Mathematics
|
3 | C or higher in MCS 260 and Math 180 |
MCS 275
Programming Tools
|
4 | C or higher in MCS 260 and Math 180 |
MCS 360
Intro to Data Structures
|
4 | C or higher in MCS 261 and 275 |
Stat 381
Applied Stat Methods
|
3 | C or higher in Math 210 |
Phyics 141-142
General Physics I, II
or
Chem 112-114
General Chemistry I, II
or
Chem 116-118
Honors Chem I, II
or
Bios 100-101
Cells and Organisms,
Populations and
Communities
|
8 - 10 | See individual prerequisites |
| Six courses taken from Math 220, 330, 410, 430, 435, 436, 480, Stat 471, and MCS courses numbered 300 or higher other than MCS 360, Calculus I, II, III | 18 | See MCS Clusters below for recommendations in major electives |
MCS Recommended Clusters of Study
The MCS curriculum requires 6 electives taken from Math 220, Math 330, Math 410, Math 430, Math 435, Math 436, Math 480, Stat 471 and MCS courses numbered 300 and higher other than MCS 360. Students are encouraged to concentrate their electives in a specialization of computer science represented by one of the following clusters of courses and to consult with the faculty advisor or advisors associated with the cluster for further information.
Coding, Cryptography, and Number Theory Cluster
Advisors: Dan Bernstein (djb@math.uic.edu)
Error-correcting codes protect information against noise. CDs sound the same even when they've been scratched, thanks to Reed-Solomon codes. Cryptography protects information against espionage and sabotage. Internet eavesdroppers can't see the credit-card number that you send to Amazon, thanks to the RSA public-key cryptosystem. MCS 401 is an introduction to the design and analysis of algorithms. Fast computations are essential for applied coding theory and applied cryptography. MCS 425 is an introduction to coding theory and cryptography. Math 435 is an introduction to number theory. Math 436 is a second course in number theory, focusing on the problem of discovering the prim factors of a large integer. These aspects of number theory are crucial for understanding why the RSA cryptosystem works and how secure it is.
- MCS 401 - Computer Algorithms I
- MCS 425 - Codes and Cryptography
- Math 435 - Foundations of Number Theory
- Math 436 - Number Theory for Applications
Programming Cluster
Advisors: Jeffrey Leon (jleon@uic.edu)
This cluster is for students interested in computer programming. MCS 415 is an introduction to the major types of programming languages and to general issues in language design such as description of syntax and semantics, control structures, data types, and methods of communication between separate parts of a program. These issues arise in many different languages, and familiarity with them can lead to a deeper understanding of a language one already knows and to easier learning of new language. MCS 320 introduces symbolic computation through the Maple Language. MCS 451, designed for students familiar with C, presents the concepts of object-orientation with are central to languages such as C++, Java, and Smalltalk. It also provides overall background in C++ programming not limited to object-oriented features. The Department often offers 400-level special topics courses on programming languages. With Departmental approval one such course may be substituted for MCS 320 or MCS 451.
- MCS 415 - Programming Language Design
- MCS 320 - Symbolic Computation
- MCS 451 - Object-Oriented Programming
Combinatorics and Theory of Computation Cluster
Advisors: Uri Peled (uripeled@uic.edu) and Gyorgy Turan (gyt@uic.edu)
This cluster focuses on techniques important in theoretical computer science. MCS 421 covers counting techniques (including solving recurrences and generating functions) essential for the analysis of computer algorithms - how efficient of a given algorithm is in terms of time and storage resources. MCS 423 covers problems such as graph coloring, matching, and reachability that are useful in modeling computer resource allocation and management, as well as complexity studies. MCS 441 covers formal languages, automata, grammars and Turing machines, and forms the basis for studies in computability and complexity, central topics in theoretical computer science. Students completing this cluster will have a solid background for further study in computer science, as well as for practical applications such as network design and VLSI design.
- MCS 421 - Combinatorics
- MCS 423 - Graph Theory
- MCS 441 - Theory of Computation I
Algorithms and Operations Research Cluster
Advisors: Uri Peled (uripeled@uic.edu)
This cluster deals with solutions of discrete optimization problems such as sorting, searching, and manipulation of trees and more general graphs. Linear programming seeks to maximize linear functions of several variables subject ton constraints given by linear equations and inequalities. Many real-world optimization problems can be solved in terms of linear programming. In addition, knowledge of linear programming is essential in solving harder combinatorial optimization problems such as matching and matroid problems. Graph theory is more theoretical, but helpful in the design of computer algorithms for problems such as matching and network flows which admit an efficient solution, and for problems such as Hamiltonian Graphs and the Traveling Salesman Problem, which are believed not to have an efficient solution method. Computational geometry studies algorithms related to objects embedded in a space of fixed dimension. Such algorithms have relevance to computer graphics, VLSI design and statistics.
- MCS 401 - Computer Algorithms 1
- MCS 423 - Graph Theory
- MCS 481 - Computational Geometry
Scientific Computation Cluster
Advisors: Jan Verschelde
This cluster is an applied computer science concentration of courses, also called computational science. The focus of the computational numerical analysis and mathematical software courses in on discretizing continuous mathematical models and preparing discrete models for real floating point computation so that the problems of finite floating point precision are minimized and the speed of computations is maximized. The applications concern solving problems in linear algebra, nonlinear equations, integrals, differential equations, least squeares curve fitting, random simulations and data mining. Also a course in data encryption is important for data transfer security in industrial applications.
- MCS 320 - Symbolic Computation
- MCS 471 - Numerical Analysis
Computer Majors at UIC
At the University of Illinois at Chicago, there are four options for students who are interested in computers. The College of Engineering offers majors in Computer Science and Computer Engineering. In addition, the College of Liberal Arts and Sciences offers a major in Mathematical Computer Science and the College of Business offers a program in Information and Decision Sciences.
- Computer Engineering
- Computer Science
- Mathematical Computer Science
- Information and Decision Sciences
Computer Engineering - College of Engineering
Computer Engineering is concerned with the application of electrical theory to the design of computer systems and digital networks.
This program requires courses in discrete mathematics, probabilitity and statistics and in the fundamentals of electrical engineering and computer science. This includes course work in computer languages, data structures an algorithms, software design and development, circuita nalysis, signal processing, computer architecture, digital networks, microprocessor based design, digital electronic circuits design, and computer operating systems design.
Computer Science - College of Engineering
This program is intended to provide a broad background in the fundamental areas of computer science; such as computer systems, organization and architecture, algorithms and data structures, principles of software design, elements of the theory of computation and operating systems; along with a strong theoretical component which places special emphasis on the development of applied skills in design, implementation, and validation of computer systems.
In addition, students obtain specialized backgrounds through the selection of five technical elective courses in computer science. Required and elective courses in the sciences and mathematics, along with additional courses in writing, humanities, social sciences, and the arts give students the opportunity to expand their horizons and to prepare for multi-disciplinary careers.
Mathematical Computer Science - College of Liberal Arts and Sciences
Mathematics is the language of the sciences and of fields where patterns and systematic processes are analyzed. Study in the mathematical sciences provides the tools and a framework essential for the understanding of a modern technological society. The MCS curriculum fosters the development of logical and analytical thinking and is designed to provide a basic foundation appropriate for students who seek careers in computing. Emphasis is given to the mathematical theory of computer science and computational methods.
The Mathematical Computer Science curriculum requires coursework in calculus, discrete mathematics, statistics, computer programming, and data structures. Because of the diversity of the underlying field, students are encouraged to select electives from a variety of areas such as coding and cryptography, combinatorics, numerical analysis, advanced algorithms, and symbolic computation. In addition, students are required to complete a strong liberal arts background in natural sciences, humanities and foreign language.
Information and Decision Sciences - College of Business
This program offers instruction in the application of computer ad mathematical techniques to the analysis of problems of business and management. This involves three major interrelated desciplines:
- computer ingormation systems,
- operations management and research, and
- statistics.
Majors take courses in each of the three disciplines with further work in one or more of the disciplines chosen by the student. A graduate of the program brings an analytical approach to the solutions of management problems and may find employment in fields such as information systems development, operations and production management and statistical data analysis. The program also provides ideal preparation for graduate study leading to the MS in Management Information Systems, Master of Business Administration and other advanced degrees.