Mathematical Computer Science (MCS)

Courses

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. Course Information: Prerequisite(s): Credit or concurrent registration in MATH 180. Class Schedule Information: To be properly registered, students must enroll in one Laboratory-Discussion and one Lecture. Natural World - No Lab course.

MCS 275. Programming Tools and File Management. 4 hours.

Theory, techniques, and tools of the Python programming language, with applications to data structures, algorithms, web programming, and selected topics. Course Information: 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. Class Schedule Information: To be properly registered, students must enroll in one Laboratory and one Lecture.

MCS 294. Special Topics in Computer Science. 1-4 hours.

Course content is announced prior to each term in which it is given. Course Information: 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. Course Information: 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. Course Information: Prerequisite(s): Grade of C or better in MCS 260 and Grade of C or better in MCS 275. Class Schedule Information: To be properly registered, students must enroll in one Discussion/Recitation and one Lecture.

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. Course Information: Previously listed as MCS 261. Prerequisite(s): Grade of C or better in MATH 215 and Grade of C or better in CS 102.

MCS 394. Special Topics in Computer Science. 2-4 hours.

Course content is announced prior to each term in which it is given. Course Information: 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. Course Information: 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. Course Information: 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. Course Information: 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. Course Information: 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. Course Information: 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. Course Information: 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. Course Information: 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. Course Information: 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. Course Information: 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. Course Information: 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. Course Information: 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. Course Information: 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-4 hours.

Reading course supervised by a faculty member. Course Information: May be repeated. Students may register in more than one section per term. Prerequisite(s): Approval of the instructor and the department. Class Schedule Information: This course counts toward the limted number of independent study hours accepted toward the degree and the major.