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