The computer has become this century’s version of the wheel; a piece of technology so ubiquitous and essential that nearly every other consequential human endeavor relies upon its effective use. Computer scientists turn this miraculous machine’s potential into power. Beginning with a study of the design and development of automated computation and information processing systems, they incorporate theoretical mathematics, logic, and engineering to improve hardware and software, conceive new applications, explore artificial intelligence, and push the boundaries of automation.
The information below is based on the Undergraduate Catalog for the 2025-2026 Academic Year. View our Course Catalog page for more information about our individual courses.
Introduction to programming with C++. Binary, two’s complement, decimal, hex, and octal representations. Variable types. Simple, iterative, and conditional statements. Procedure and functions with parameters by value and reference with or without a returning value. Arrays and vectors, multidimensional arrays, bubble and selection sorts, linear and binary search. Pointer and dynamic memory allocation, character and C-strings, file input/output (sequential). Classes, friends, array of objects, and operators’ overloading. Inheritance, polymorphism, virtual function, and recursion.
MCS1514
4
Records, advanced file input/output (random access), dynamic memory allocation. Static and dynamic implementation of stacks, linked lists (ordered and unordered), queue (regular and priority), circular queues. Selection and insertion sort, binary search. Lecture 3 hrs., Lab 1hr.
MCS2514
4
Analysis of algorithms, Big Oh notation, asymptotic behavior. Advanced sorting (heapsort, quicksort), external sorting. Binary, multiway, and AVL trees. Lecture 4 hrs.
MCS2534
4
Prerequisite: Permission of department chair. Design and implementation of relational, hierarchical and network database system. Query/update data language, conceptual data model, physical storage methods, database system architecture and normal forms. Database security and integrity. Relational database system are emphasized. A project involving an on-line database system is normally assigned. No credit given after MIS6113. Lecture 3 hrs.
MCS3543
3
The Data Science course delivers the fundamentals of data sets analysis arising in various disciplines, like banking, finance, health care, bioinformatics, security, education, and social services. The content of this course introduces theories and practices of data science concepts based on mathematical and statistical concepts. This course offers a multitude of topics relevant to the analysis of complex data sets accompanying programming and code algorithms in R that underpinning data science. This course is ideal for students and practitioners without a strong background in data science. The students will also learn analyses of foundational theoretical subjects, including the history of data science, matrix algebra, and random vectors, and multivariate analysis; a comprehensive examination of time series forecasting, including the different components of time series and transformations to achieve stationarity; introductions to the R programming languages, including basic data types and sample manipulations; an exploration of algorithms, including how to write one and how to perform an asymptotic analysis; and, a comprehensive discussion of several techniques for analyzing and predicting complex data sets. Towards the end of the class, students will develop a case study by gathering data to apply and practice the learned concepts in a large-scale project.
MCS2403
3
Number Theory, review of induction and recursion, advanced counting, equivalence, partial ordering, graphs, trees.
MCS2523
3
This course is a brief overview of software engineering topics including software development models, requirements, software design and implementation, software debugging and testing, software maintenance, software quality and metrics, and software project management. Focused in depth learning goals include system modelling and analysis tools, model-based design, coding standards, IDE tools, version control systems, and the introduction of agile software development methodologies. In addition to theories, students will practice in the development of a long-running software project applying and utilizing software engineering techniques and tools covered in class.
MCS2513
3
Chose one of the following three options:
Two upper division classes (MCS 3/4xx3) approved by a computer science advisor
One upper division class (MCS 3/4XX3) approved by a computer science advisor, plus both of the following:
Hands-on introduction for programmers and artists into game development. Each of the major components of making computer games will be studied through hands-on exercises. Students will make their first games using industry-wide tools. No prior programming experience required.
MCS1643
3
Create video games of several different genres such as shoot-em-up, scrolling shooter, platform, puzzles, maze racing, sports, and RPG. Examining and implementing game requirements for different hardware platforms.
MCS1653
3
Completion of MCS 4833 Senior Project and MCS 4843 (Senior Project 2) -or- MCS 4833 plus one additional upper division class (MCS 3/4XX3) approved by a computer science advisor.