Mathematical Computer Science (MCS)

Subject Number Title Hours Catalog Description General Education Category
MCS 260 Introduction to Computer Science 4 hours. Computer literacy, number systems, concepts of operation systems, storage, files, databases, logic gates, circuits, networks, internet. Introduction to programming in Python, variables, assignments, functions, objects. Prerequisite(s): Credit or concurrent registration in MATH 180.  Natural World - No Lab course.
MCS 275 Programming Tools and File Management 4 hours. Bit manipulation, screen and file input/output, separate compilation and linking, creating and using libraries, the ANSI C library, make utilities, interactive debuggers, introduction to C++ classes. Prerequisite(s): Grade of C or better in MATH 180, and grade of C or better in MCS 260 or grade of C or better in CS 102.   
MCS 294 Special Topics in Computer Science 1 TO 4 hours. Course content is announced prior to each term in which it is given. May be repeated. Prerequisite(s): Approval of the department.   
MCS 320 Introduction to Symbolic Computation 3 hours. Introduction to computer algebra systems (MAPLE), symbolic computation, and the mathematical algorithms employed in such computation, with examples and applications to topics in undergraduate mathematics. Prerequisite(s): Grade of C or better in MATH 210; and Grade of C or better in MCS 260 or Grade of C or better in CS 102 or Grade of C or better in CS 108.  
MCS 360 Introduction to Data Structures 4 hours. Pointers and dynamic memory allocation in C/C++, recursion, stacks, queues, heaps, binary and multiway trees, graphs, hash tables. Sorting and searching algorithms. Prerequisite(s): Grade of C or better in MCS 260 and Grade of C or better in MCS 275.   
MCS 361 Discrete Mathematics 3 hours. Discrete mathematical structures used in computer science: sets, functions and relations; induction, recursive definitions and relations, methods of proof, quantifiers; counting; graphs and trees; algorithms. Previously listed as MCS 261. Prerequisite(s): Grade of C or better in MATH 215; and Grade of C or better in MCS 260 or Grade of C or better in CS 102.  
MCS 394 Special Topics in Computer Science 2 TO 4 hours. Course content is announced prior to each term in which it is given. May be repeated. Students may register in more than one section per term. Prerequisite(s): Approval of the department.   
MCS 401 Computer Algorithms I 3 OR 4 hours. Design and analysis of computer algorithms. Divide-and-conquer, dynamic programming, greedy method, backtracking. Algorithms for sorting, searching, graph computations, pattern matching, NP-complete problems. Same as CS 401. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): Grade of C or better in MCS 360; or Grade of C or better in CS 202.  
MCS 411 Compiler Design 3 OR 4 hours. Language translation: lexical analysis, parsing schemes, symbol table management, syntax and semantic error detection, and code generation. Development of fully-functional compiler. Same as CS 473. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): Grade of C or better in CS 301 or grade of C or better in MCS 441; and grade of C or better in CS 202 or grade of C or better in MCS 360; and grade of C or better in CS 266.   
MCS 415 Programming Language Design 3 OR 4 hours. Definition, design, and implementation of programming languages. Syntactic and semantic description; variable bindings, control and data structures, parsing, code generation, optimization; exception handling; data abstraction. Same as CS 476. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): MCS 360 or CS 340.   
MCS 421 Combinatorics 3 OR 4 hours. The pigeonhole principle, permutations and combinations,  binomial coefficients, inclusionexclusion principle, recurrence relations and generating functions, special counting sequences, Polya theory of counting. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): Grade of C or better in MATH 215; and Grade of C or better in MATH 310 or Grade of C or better in MATH 320; or consent of the instructor.  
MCS 423 Graph Theory 3 OR 4 hours. Basic concepts of graph theory including Eulerian and hamiltonian cycles, trees, colorings, connectivity, shortest paths, minimum spanning trees, network flows, bipartite matching, planar graphs. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): Grade of C or better in MATH 215; and Grade of C or better in MATH 310 or Grade of C or better in MATH 320; or consent of the instructor.  
MCS 425 Codes and Cryptography 3 OR 4 hours. Mathematics of communications theory, basic information theory necessary to understand both coding theory and cryptography, basic ideas and highlights for both coding theory and cryptography, including public-key cryptosystems. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): Grade of C or better in MATH 215; and Grade of C or better in MATH 310 or Grade of C or better in MATH 320; or consent of the instructor.  
MCS 441 Theory of Computation I 3 OR 4 hours. Introduction to formal languages; relations between grammars and automata; elements of the theory of computable functions. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): MATH 215.  
MCS 451 Object-Oriented Programming in C++ 3 OR 4 hours. C++ as an object-oriented language, classes and member functions, access control, class scope, constructors, destructors, overloading, conversions, streams, derived classes, polymorphism through virtual functions, templates, class libraries. 3 undergraduate hours. 4 graduate hours. Credit is not given for MCS 451 if the student has credit for CS 474. Extensive computer use required. Prerequisite(s): Grade of C or better in MCS 360 or the equivalent or consent of the instructor.   
MCS 471 Numerical Analysis 3 OR 4 hours. Introduction to numerical analysis; floating point arithmetic, computational linear algebra, iterative solution to nonlinear equations, interpolation, numerical integration, numerical solution of ODEs, computer subroutine packages. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): Grade of C or better in MCS 275 or grade of C or better in CS 102 or grade of C or better in CS 108; or consent of instructor.   
MCS 472 Introduction to Industrial Math and Computation 3 OR 4 hours. Technical writing and oral presentations in preparation for industrial projects. Topics include quality control, operations research, cost-benefit analysis, differential equations, using scientific software.   Extensive computer use required.  Prerequisite(s):  Grade of C or better in MCS 471 or consent of the instructor.  Recommended background:  Designed for students with a desire to explore mathematics via practical field work.  
MCS 481 Computational Geometry 3 OR 4 hours. Algorithmic problems on sets of points, rectangles, intervals, arcs, chords, polygons. Counting, reporting, location, intersection, pairing; static and dynamic data structures. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): Grade of C or better in MCS 401 or consent of the instructor.   
MCS 494 Special Topics in Computer Science 3 OR 4 hours. Topics in mathematical computer science, such as symbolic compution, automated reasoning, cryptography or geometric algorithms. 3 undergraduate hours. 4 graduate hours. May be repeated to a maximum of 12 hours. Students may register in more than one section per term. Prerequisite(s): Approval of the department.   
MCS 496 Independent Study 1 TO 4 hours. Reading course supervised by a faculty member. May be repeated. Students may register in more than one section per term. Prerequisite(s): Approval of the instructor and the department.