Computer Science

The computer science department educates students in a broad range of areas. Students take courses in the design and implementation of software systems and the algorithms (problem solving techniques) used to solve “real world” problems in business, industry, and engineering or as preparation for graduate study. Students are given both the depth and breadth of computer science so necessary to keep them competitive in today’s fast-changing world. While instruction and research are on the leading edge of computing, the department endeavors to promote proactive teaching practices and effective interactions between the students and faculty.

In addition to computer science courses, the department’s undergraduate program requires students to be educated in a broad range of general education courses. All computer science seniors are expected to take the capstone course that gives them “real world” experience working in teams composed of fellow students. These teams design, implement, test, and maintain actual software systems. (The sample curriculum shown below provides more detail.)

The computer science faculty has a broad range of scholarly interests which include computer security and privacy, databases and wireless systems, intelligent systems (artificial intelligence, machine learning, evolutionary computation), data mining, parallel and distributed processing, software engineering, computer networks, computer vision, mobile and pervasive computing, computational science, and algorithms. The research being done in these areas involves both undergraduates and graduates and supports the department’s crosscutting areas of excellence: big data, critical infrastructure protection, cyber physical systems, and smart computing. Faculty are not only actively doing research in these areas; they integrate their research experiences into the classroom.

Computer science graduates from Missouri S&T work in a variety of environments. Some work for large companies, others prefer smaller companies. Many of our graduates have started their own companies. Regardless of their choice of employment, Missouri S&T computer science graduates are in high demand as evidenced by the number of companies that specifically recruit our graduates.

The computer science department at Missouri S&T makes use of both its own computer learning center (CLC) as well as university CLCs. The department CLC contains a mix of Linux and Windows computing platforms.

Research laboratories provide support for both undergraduate and graduate students. These laboratories include:

  • Advanced Networking and Cyber-Physical Systems Laboratory
  • Applied Computational Intelligence Laboratory
  • CReWMaN Laboratory
  • Critical Infrastructure Protection Laboratory
  • Cybersecurity Laboratory
  • Data Mining Laboratory
  • Pervasive and Mobile Computing Laboratory
  • Web and Wireless Computing (W2C) Laboratory & Net-Centric Center

Wired and wireless network access is available to all students, faculty and staff.

Program Educational Objectives

  1. Strengthen core computer science competencies while inventing and embracing new processes and technology that can be applied to both computer science and interdisciplinary endeavors.
  2. Grow effective communication, collaboration, and leadership skills that result in strong working relationships and high-performance work environments.
  3. Apply sound judgement to the business, societal, ethical, and professional issues of the rapidly evolving computing industry.
  4. Contribute to the greater good of their communities through professional involvement, writing, speaking, and mentoring.

Student Outcomes

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the problem's discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program's discipline.
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions.

For further information, visit the department’s web page at http://cs.mst.edu or contact us at 573-341-4491 or at csdept@mst.edu.

Bachelor of Science
Computer Science

For the Bachelor of Science degree in Computer Science, a minimum of 128 credit hours is required. This requirement is in addition to credit received for algebra, trigonometry, and basic ROTC courses. An average of at least two grade points per credit hour must be attained. A "C" or better grade must be earned in each computer science course used to fulfill B.S. in computer science degree requirements as well as in COMP ENG 2210COMP ENG 3150, and the required ethics elective.

The computer science curriculum requires twelve semester hours in humanities, exclusive of foreign language, and must include ENGLISH 1160 or ENGLISH 3560. A minimum of nine semester hours is required in social sciences, including either HISTORY 1300, HISTORY 1310HISTORY 1200, or POL SCI 1200. Specific requirements for the bachelor degree are outlined in the sample program listed below.

Sample Course of Study

Freshman Year
First SemesterCreditsSecond SemesterCredits
FR ENG 11001COMP SCI 12003
COMP SCI 150013COMP SCI 15703
Laboratory Science Elective25COMP SCI 15801
MATH 1214 or 121134MATH 121544
ENGLISH 11203ENGLISH 1160 or 35603
 Humanities / Social Science Elective53
 16 17
Sophomore Year
First SemesterCreditsSecond SemesterCredits
COMP SCI 15753COMP SCI 38003
COMP SCI 15851COMP SCI 22003
COMP ENG 221063COMP SCI 25003
PHYSICS 113574COMP ENG 315063
Statistics Elective83PHYSICS 213594
Humanities / Social Science Elective53 
 17 16
Junior Year
First SemesterCreditsSecond SemesterCredits
COMP SCI 23003COMP SCI 35003
COMP SCI 36103Cmp Sc Elective12, 163
MATH 31083Cmp Sc Elective 12, 163
Humanities / Social Science Elective53Sci/Eng Elective133
Ethics Elective113SP&M S 1185143
 15 15
Senior Year
First SemesterCreditsSecond SemesterCredits
COMP SCI 40903COMP SCI 40913
COMP SCI 46103Cmp Sc Electives12, 163
Cmp Sc Electives12, 166Humanities / Social Science Elective53
Sci/Eng Elective133Free Elective15,168
 15 17
Total Credits: 128
1

Or COMP SCI 1971 and COMP SCI 1981. May be waived in lieu of a score of 4 or 5 on the AP Computer Science A exam.

2

An approved science lecture-laboratory course pair totaling at least four credit hours. The laboratory is mandatory in all cases. The approved course pairs are: CHEM 1310 and CHEM 1319; PHYSICS 1505 and PHYSICS 1509; PHYSICS 1605 and PHYSICS 1609; GEOLOGY 1120 and GEOLOGY 1129; BIO SCI 1113 and BIO SCI 1219BIO SCI 1223 and BIO SCI 1229; BIO SCI 2213 and BIO SCI 2219BIO SCI 2353 and BIO SCI 2359; BIO SCI 2383 and BIO SCI 2389.

3

Or MATH 1208.

4

Or MATH 1221.

5

Any nine credit hours of social science courses and three credit hours of humanities courses on the approved lists maintained on the computer science website. One course must satisfy the Missouri and U.S. Constitution requirement. COMP SCI 4700 may be counted as a Social Science elective.

6

Laboratory not required.

7

Or both PHYSICS 1111 and PHYSICS 1119.

8

One of STAT 3113, STAT 3115, STAT 3117, or STAT 5643.

9

Or both PHYSICS 2111 and PHYSICS 2119.

10

One literature course on the approved list maintained on the computer science website.

11

One of PHILOS 3225, PHILOS 3235, PHILOS 4340, or PHILOS 4368.

12

Fifteen hours of elective COMP SCI courses excluding COMP SCI 2002, COMP SCI 4700, COMP SCI 2001 - Domain Exploration and Innovation Methods, COMP SCI 3001 - Skill Development for Entrepreneurs and Innovators, COMP SCI 4001 - Advanced Domain Exploration and Innovation Methods, COMP SCI 4001 - Interpersonal Dynamics for Entrepreneurs and Innovators, and all COMP SCI x9xx courses. At least nine hours must be 5000-level or higher. At least nine hours must be lecture courses.

13

Any six hours chosen from departments that offer a degree associated with either the Discipline Specific Curricula Committee for Sciences or the Discipline Specific Curricula Committee for Engineering, excluding Computer Science. The following courses are also excluded: all 1000-level MATH courses, all STAT courses below 4000-level, all 11xx-level Physics courses, PHYSICS 2111, PHYSICS 2119, PHYSICS 2135, and PHYSICS 2145.

14

SP&M S 1185 or SP&M S 3245 or THEATRE 3245 or one of the two complete four-course sequences in Advanced ROTC (MIL ARMY 3250, MIL ARMY 3500, MIL ARMY 4250, and MIL ARMY 4500; or MIL AIR 3110, MIL AIR 3120, MIL AIR 4110 and MIL AIR 4120).

15

Courses chosen from any discipline so that 128 hours are completed. These and only these courses may be taken pass/fail and only one course may be taken pass/fail each semester. The following courses are excluded: all 1000-level MATH courses, all STAT courses below 4000-level, all 11xx-level Physics  courses, PHYSICS 2111PHYSICS 2119PHYSICS 2135PHYSICS 2145, any COMP SCI x9xx courses, and the first two years of ROTC.

16

COMP SCI 4010 can be counted as Computer Science Elective or Free Elective, limited to three times.

Computer Science Minor Curriculum

A student with a minor in computer science must meet the following requirements:

  1. A "C" or better grade in the following core courses: COMP SCI 1500, COMP SCI 1570, COMP SCI 1575, COMP SCI 1580, and COMP SCI 1585. Note that COMP SCI 1500 will be waived in lieu of a score of 4 or 5 on the AP Computer Science A exam and no additional credit hours will be required.
  2. A "C" or better grade in at least 9 credit hours of COMP SCI courses in addition to the above listed core courses, excluding:
    1. COMP SCI 2001 – Domain Exploration and Innovation Methods
    2. COMP SCI 3001 – Skill Development for Entrepreneurs and Innovators
    3. COMP SCI 4001 – Advanced Domain Exploration and Innovation Methods
    4. COMP SCI 4001 – Interpersonal Dynamics for Entrepreneurs and Innovators
    5. COMP SCI 4700
    6. all COMP SCI x9xx courses.
  3. At most 6 credit hours can be transfer credits and transfer classes must show a "C" or better grade.

COMP SCI 1000 Special Problems (IND 0.0-6.0)

Problems or readings on specific subjects or projects in the department. Consent of instructor required.


COMP SCI 1001 Special Topics (LAB 0.0-6.0)

This course is designed to give the department an opportunity to test a new course. Variable title.


COMP SCI 1010 Introduction To Computer Science (LEC 1.0)

This course is devoted to an introduction of various areas of Computer Science, the faculty members, and lab equipment. Computer ethics will be discussed in several lectures.


COMP SCI 1200 Discrete Mathematics for Computer Science (LEC 3.0)

This course provides a rigorous treatment of topics from discrete mathematics which are essential to computer science. Principal topics include: formal logic (propositional & predicate), set theory, proof techniques, mathematical induction, program correctness, combinatorics, discrete probability, relations, functions, matrices, and graph theory. Prerequisite: A grade of "C" or better in either Comp Sci 1500 or Comp Sci 1570 and in one of Math 1120, Math 1140, Math 1208, Math 1210, Math 1211, or Math 1214.


COMP SCI 1500 Computational Problem Solving (LAB 1.0 and LEC 2.0)

This course provides a rigorous introduction to computational problem solving, thinking, and debugging, for those with little-to-no experience in computer science. Language-agnostic foundations focus on pseudo-code, flowcharts, and software-based code tracing, then build to programming in a high-level interpreted language, with a focus on data and modeling.


COMP SCI 1570 Introduction To C++ Programming (LEC 3.0)

Object-Oriented Programming design and development in C++. Emphasis placed on good programming practices. Topics include syntax/semantics, operators, control flow/decision branching, memory management, functions, file I/O, C-strings, arrays, pointers, classes, templates, inheritance, polymorphism, and exception handling. This course is programming intensive. Prerequisites: A grade of "C" or better in Comp Sci 1500 or in both of Comp Sci 1971 and Comp Sci 1981, and accompanied by Comp Sci 1580.


COMP SCI 1575 Data Structures (LEC 3.0)

A continuation of Object-Oriented Programming, with emphasis on the efficient organization of data through Abstract Data Types and Data Structures. Topics include Linked Lists, Vectors, Stacks, Queues, Trees, Hash Tables, Graphs and their use in a variety of algorithms. Recursive programming techniques are also covered. This course is programming intensive. Prerequisite: Grade of "C" or better in Comp Sci 1570.


COMP SCI 1580 Introduction To Programming Laboratory (LAB 1.0)

Practical applications of concepts learned in Computer Science 1570. Hands-on instruction in C++ developing, debugging, and testing programming projects. Prerequisite: Accompanied by Comp Sci 1570.


COMP SCI 1585 Data Structures Laboratory (LAB 1.0)

Hands-on instruction in programming development tools such as version control systems, integrated development environments, debuggers, profilers, and event-based programming environments. Exercises will complement the concepts presented in Comp Sci 1575. Prerequisite: Preceded or accompanied by Comp Sci 1575.


COMP SCI 1911 Computer Science Concepts (LEC 3.0)

Introduces students to foundational concepts of computer science and challenges them to explore how computing and technology can impact the world. Learn the principles that underlie the science of computing and develop the thinking skills that computer scientists use. This course can be used as a free elective, but not as a CompSci elective.


COMP SCI 1970 Basic Scientific Programming (LEC 2.0)

Introduction to the structure of programs and programming techniques in Fortran to solve science and engineering problems. Topics include data representation, basic solutions of numerical problems and the debugging and verification of programs. Prerequisite: Entrance requirements.


COMP SCI 1971 Introduction To Programming Methodology (LEC 2.0)

Basic structured programming and problem solving techniques using C++. Development, debugging, and testing of programs, data representation. Topics to include syntax/semantics, operators, loops, decision branching, arrays, file I/O. This course is a terminal course for non-majors and is not sufficient for entry into Computer Science 1575.


COMP SCI 1972 Introduction to MATLAB Programming (LEC 2.0)

Programming design and development using MATLAB for non-CS majors. Strong emphasis placed on algorithmic problem solving methods using good programming practices. Introduction to built-in functions including plotting, as well as logical/relational/arithmetic operators, decision branching, loops, functions, file I/O, datastructures, and output formatting. Prerequisite: Accompanied by Comp Sci 1982 and a grade of "C" or better in one of Math 1208, Math 1211, or Math 1214.


COMP SCI 1980 Computer Programming Laboratory (LAB 1.0)

A laboratory to accompany Comp Sci 1970 which emphasizes the designing, writing and debugging of programs in Fortran. Prerequisite: Accompanied by Comp Sci 1970.


COMP SCI 1981 Programming Methodology Laboratory (LAB 1.0)

A hands-on introduction to structured programming in C++. Development, coding, debugging, and execution of programming concepts discussed in Computer Science 1971. Prerequisite: Accompanied by Computer Science 1971.


COMP SCI 1982 MATLAB Programming Laboratory (LAB 1.0)

Practical application of concepts learned in Comp Sci 1972. Hands-on instruction in MATLAB developing, debugging and testing programming projects. Prerequisite: Accompanied by Comp Sci 1972.


COMP SCI 2000 Special Problems (IND 0.0-6.0)

Problems or readings on specific subjects or projects in the department. Consent of instructor required.


COMP SCI 2001 Special Topics (LAB 0.0 and LEC 0.0)

This course is designed to give the department an opportunity to test a new course. Variable title.


COMP SCI 2002 Cooperative Work Training (IND 1.0-5.0)

On-the-job experience gained through cooperative education with industry, with credit arranged through departmental cooperative advisor. Grade received depends on quality of reports submitted and work supervisors evaluation. Not more than 9 hours may be applied to the B.S. degree.


COMP SCI 2200 Theory of Computer Science (LEC 3.0)

This course will cover the theoretical underpinnings of computer science. In particular, this course will cover the following topics: basic computability and formal language concepts, regular languages, context free languages, recursively-enumerable languages, and classes P, NP, and NP-completeness. Prerequisite: A grade of "C" or better in both Comp Sci 1200 and Comp Sci 1575.


COMP SCI 2300 File Structures and Introduction to Database Systems (LEC 3.0)

Course covers major topics in file structures and database systems including techniques for disk access and organization, record and file structures, index structures, sequential file, dense/sparse and secondary indexes, B-trees, range queries, insertion/deletion, hash tables, fundamentals of database systems, the ER model, relational model, algebra and SQL. Prerequisite: A grade of "C" or better in Comp Sci 1575.


COMP SCI 2500 Algorithms (LEC 3.0)

Students will solve recurrence relations, analyze algorithms for correctness and time/space complexity, apply these analysis techniques to fundamental dynamic programming, greedy, shortest-path, minimal spanning trees, and maximum flow algorithms and validate these analyses through programming. Prerequisite: A grade of "C" or better in both Comp Sci 1200 and Comp Sci 1575; preceded or accompanied by a grade of "C" or better in either Math 1208, Math 1211, or Math 1214.


COMP SCI 2501 Java and Object Oriented Design (LEC 3.0)

This course will cover Basic Java, Applets, Application, Classes, interfaces, Strings, Arrays, Generics, inheritance, Polymorphism, Algorithm and Object Oriented Design, Software Testing, Exception Handling, File I/O. The use of Graphical User Interfaces in program design and introduction to Software Life Cycle. Project included. Prerequisite: A "C" or better grade in Comp Sci 1570.


COMP SCI 2889 Introduction To Computer Organization And Assembly (LEC 3.0)

A detailed study designed to teach the building blocks of a computer system, assembly language programming and the basic computer organization concepts. Subjects include digital logic, performance issues, machine & assembly language, binary arithmetic, and the structure of an ALU. Prerequisites: Comp Sci 1575 and Comp Sci 1200.


COMP SCI 3000 Special Problems (IND 0.0-6.0)

Problems or readings on specific subjects or projects in the department. Consent of instructor required.


COMP SCI 3001 Special Topics (LAB 0.0 and LEC 0.0)

This course is designed to give the department an opportunity to test a new course. Variable title.


COMP SCI 3010 Seminar (IND 0.0-6.0)

Discussion of current topics.


COMP SCI 3100 Software Engineering I (LEC 3.0)

Development of methodologies useful in the software engineering classical life cycle. This includes: requirements, design, implementation, and testing phases. These methodologies are reinforced through utilization of a CASE tool and a group project. Prerequisite: A "C" or better grade in Comp Sci 2500 and at least Junior standing.


COMP SCI 3200 Introduction To Numerical Methods (LEC 3.0)

Finite difference interpolation, numerical differentiation and integration, linear systems of equations, solution of nonlinear equations, numerical solution of ordinary differential equations, computational techniques and the programming of a large number of problems on digital computers. Prerequisites: Program competency and a "C" or better grade in either Math 1215 or Math 1221.


COMP SCI 3402 Introduction to Data Science (LEC 3.0)

This course provides an entry into data science. It covers concepts involved in obtaining and processing data, and deriving insight from data. The course includes standard tools and techniques (UNIX, Python and MySQL), data analytics (predictive), problem solving with data (collection, analysis, evaluation), machine learning, and applications. Prerequisite: A grade of "C" or better in Comp Sci 1500, Comp Sci 2300, and one of Stat 3113, Stat 3115, Stat 3117, or Stat 5643.


COMP SCI 3500 Programming Languages And Translators (LEC 3.0)

Covers basic design of programming languages, compilers and interpreters. The concepts of syntax, variables, expressions, types, scope, functions, procedures, statements, I/O, exception handling and concurrency are introduced. The manner in which various programming languages handle these concepts is discussed. Prerequisite: A "C" or better grade in Comp Sci 2200.


COMP SCI 3601 Digital Forensics (LEC 3.0)

Planning/managing incidents and response related to digital forensics; identifying, collecting, and preserving digital evidence; live/dead approaches covering systems as a whole emphasizing file system forensics; analysis and interpretation of artifacts culminating in a final project consisting of a collection, analysis, and report; legal and ethical issues. Prerequisites: A grade of "C" or better in Comp Sci 3800.


COMP SCI 3610 Introduction to Computer Networks (LEC 3.0)

This course covers general principles of computer networking, focusing primarily on internet protocols. It covers the TCP/IP stack, with the application layer first, moving down through link and physical layers. Topics include network virtualization, security, wireless, and mobile networks, with extensive live protocol analysis. Coursework is project based. Prerequisites: A grade of "C" or better in Comp Sci 3800.


COMP SCI 3800 Introduction to Operating Systems (LEC 3.0)

This course teaches the concepts, structure, and mechanisms of Operating Systems. Topics include process management, concurrency, synchronization, deadlock, multithreading, memory management, scheduling, and internetworking. Special emphasis is given to Unix and its modern-day derivatives. Prerequisites: A grade of "C" or better in both Comp Sci 1575 and Comp Eng 2210.


COMP SCI 3803 Computer Organization (LEC 3.0)

A detailed study of computer organization concepts and the components of a computer system including control unit, microprogrammming, pipelining, memory hierarchy, cache design, virtual memory, I/O devices, and a brief introduction to parallel processors. Prerequisites: A "C" or better in both Comp Eng 2210 and Comp Sci 1575. (Co-listed with Comp Eng 3110).


COMP SCI 4000 Special Problems (IND 0.0-6.0)

Problems or readings on specific subjects or projects in the department. Consent of instructor required.


COMP SCI 4001 Special Topics (LAB 0.0 and LEC 0.0)

This course is designed to give the department an opportunity to test a new course. Variable title.


COMP SCI 4010 Seminar (RSD 1.0)

Discussion of current topics. Prerequisite: Junior standing.


COMP SCI 4090 Software Engineering Capstone I (LEC 3.0)

This is the first course in the Software Engineering Capstone sequence covering the Software Life Cycle. Students will learn about software engineering, and work in teams to spec, design, prototype, implement, test, document, deploy, and maintain a software system. This course is programming intensive, writing emphasized and addresses ethical considerations. Prerequisites: A grade of "C" or better in all of Comp Sci 2300, Comp Sci 2500, and Comp Sci 3610.


COMP SCI 4091 Software Engineering Capstone II (LEC 3.0)

This is the second course in the Software Engineering Capstone sequence covering the Software Life Cycle. Students will learn about software engineering, and work in teams to spec, design, prototype, implement, test, document, deploy and maintain a software system. This course is programming intensive, writing emphasized and addresses ethical considerations. Prerequisites: A grade of "C" or better in both Comp Sci 4090 and Comp Sci 4610, and proceeded or accompanied by one of Philos 3225, Philos 3235, Philos 4340 or Philos 4368.


COMP SCI 4096 Software Systems Development I (LEC 3.0)

Class members will work in small teams to develop a complete software system beginning with end-user interviews and concluding with end-user training. Prerequisites: 100 credit hours completed and a grade of "C" or better in both Comp Sci 3100 and one of Phil 3225, Phil 3235, Phil 4340, or Phil 4368.


COMP SCI 4097 Software Systems Development II (LEC 3.0)

This course is an optional continuation of Comp Sci 4096. Those interested in project management should take this course since participants become officers or group leaders in the class "corporation." This course is especially important for those going straight into industry upon graduation. Students with coop experience may find this course redundant. Prerequisite: A grade of "C" or better in Comp Sci 4096 or Comp Sci 4091.


COMP SCI 4099 Undergraduate Research (IND 0.0-6.0)

Designed for the undergraduate student who wishes to engage in research. Does not lead to the preparation of a thesis. Not more than six (6) credit hours allowed for graduation credit. Subject and credit to be arranged with the faculty supervisor.


COMP SCI 4489 Multimedia Systems (LEC 3.0)

This course introduces the concepts and components of Multimedia information systems. Topics include: Introduction to Multimedia Data, Multimedia Date Compression, Techniques and Standards, Indexing and Retrieval, Data Storage Organization, Communication and Synchronization, Applications-Media-OnDemand Systems, Video Conferencing, Digital Libraries. Prerequisite: A "C" or better grade in Comp Sci 1575.


COMP SCI 4601 Computer Network Concepts And Technology (LEC 3.0)

This course will introduce computer network concepts and will survey the current and evolving technology for the construction, operation, and management of those networks. Both hardware and software issues will be addressed with a focus on local area networks. Prerequisite: A "C" or better grade in Comp Sci 3800.


COMP SCI 4610 Computer Security (LEC 3.0)

This course covers principles of threat-modeling, trust, and security policies. Topics include cryptography, reverse engineering, software security, malware analysis, authentication, access controls, operating systems hardening, virtualization, database security, and network security. This class is programming intensive and project based, with case-analyses. Prerequisites: A grade of "C" or better in Comp Sci 3610.


COMP SCI 4700 Intellectual Property For Computer Scientists (LEC 3.0)

A presentation of the relationship between the law of intellectual property and computer science. Topics include the application of copyright principles to computer programs, protection of computer programs through patents and trade secret law, and the effect of various agreements which are frequently encountered by the computer scientist. Prerequisite: Senior or graduate standing.


COMP SCI 5000 Special Problems (IND 0.0-6.0)

Problems or readings on specific subjects or projects in the department. Consent of instructor required.


COMP SCI 5001 Special Topics (LEC 0.0-6.0)

This course is designed to give the department an opportunity to test a new course. Variable title.


COMP SCI 5040 Oral Examination (IND 0.0)

After completion of all other program requirements, oral examinations for on-campus M.S./Ph.D. students may be processed during intersession. Off-campus M.S. students must be enrolled in oral examination and must have paid an oral examination fee at the time of the defense/comprehensive examination (oral/ written). All other students must enroll for credit commensurate with uses made of facilities and/or faculties. In no case shall this be for less than three (3) semester hours for resident students.


COMP SCI 5099 Research (IND 0.0-16)

Investigations of an advanced nature leading to the preparation of a thesis or dissertation. Consent of instructor required.


COMP SCI 5100 Agile Software Development (LEC 3.0)

Understand principles of agile software development and contrast them with prescriptive processes. Specifically: Eliciting, organizing, and prioritizing requirements; Design processes; Understand how a particular process promotes quality; Estimate costs and measure project progress and productivity. Prerequisite: A "C" or better grade in Comp Sci 3100.


COMP SCI 5101 Software Testing And Quality Assurance (LEC 3.0)

It covers unit testing, subsystem testing, system testing, object-oriented testing, testing specification, test case management, software quality factors and criteria, software quality requirement analysis and specification, software process improvement, and software total quality management. Prerequisite: A "C" or better grade in Comp Sci 2500.


COMP SCI 5102 Object-Oriented Analysis And Design (LEC 3.0)

This course will explore principles, mechanisms, and methodologies in object-oriented analysis and design. An object-oriented programming language will be used as the vehicle for the exploration. Prerequisite: A "C" or better grade in Comp Sci 2500.


COMP SCI 5200 Analysis Of Algorithms (LEC 3.0)

The purpose of this course is to teach the techniques needed to analyze algorithms. The focus of the presentation is on the practical application of these techniques to such as sorting, backtracking, and graph algorithms. Prerequisite: A "C" or better grade in Comp Sci 2500.


COMP SCI 5201 Object-Oriented Numerical Modeling I (LEC 3.0)

A study of object-oriented modeling of the scientific domain. Techniques and methodologies will be developed enabling the student to build a class library of reusable software appropriate for scientific application. Applications will be drawn from mechanics, finance, and engineering. Prerequisites: A grade of "C" or better in both Comp Sci 3200 and Comp Sci 1575; a grade of "C" or better in one of Math 3108, 3103, 3329.


COMP SCI 5202 Object-Oriented Numerical Modeling II (LEC 3.0)

A continued study of object-oriented modeling of the scientific domain. Advanced applications include models posed as balance laws, integral equations, and stochastic simulations. Prerequisite: A "C" or better grade in Comp Sci 5201.


COMP SCI 5203 Mathematical Logic I (LEC 3.0)

A mathematical introduction to logic with some applications. Functional and relational languages, satisfaction, soundness and completeness theorems, compactness theorems. Examples from Mathematics, Philosophy, Computer Science, and/or Computer Engineering. Prerequisite: Philos 3254 or Math 5105 or Comp Sci 2500 or Comp Eng 2210. (Co-listed with Math 5154, Philos 4354 and Comp Eng 5803.).


COMP SCI 5204 Regression Analysis (LEC 3.0)

Simple linear regression, multiple regression, regression diagnostics, multicollinearity, measures of influence and leverage, model selection techniques, polynomial models, regression with autocorrelated errors, introduction to non-linear regression. Prerequisites: Math 2222 and one of Stat 3111, 3113, 3115, 3117, or 5643. (Co-listed with Stat 5346).


COMP SCI 5205 Real-Time Systems (LEC 3.0)

Introduction to real-time (R-T) systems and R-T kernels, also known as R-T operating systems, with an emphasis on scheduling algorithms. The course also includes specification, analysis, design and validation techniques for R-T systems. Course includes a team project to design an appropriate R-T operating system. Prerequisites: COMP ENG 3150 or COMP SCI 3800. Co-listed with Comp Eng 5170.


COMP SCI 5300 Database Systems (LEC 3.0)

This course introduces the advanced database concepts of normalization and functional dependencies, transaction models, concurrency and locking, timestamping, serializability, recovery techniques, and query planning and optimization. Students will participate in programming projects. Prerequisite: A "C" or better grade in both Comp Sci 1200 and Comp Sci 2300.


COMP SCI 5400 Introduction To Artificial Intelligence (LEC 3.0)

A modern introduction to AI, covering important topics of current interest such as search algorithms, heuristics, game trees, knowledge representation, reasoning, computational intelligence, and machine learning. Students will implement course concepts covering selected AI topics. Prerequisite: A "C" or better grade in Comp Sci 2500.


COMP SCI 5401 Evolutionary Computing (LEC 3.0)

Introduces evolutionary algorithms, a class of stochastic, population-based algorithms inspired by natural evolution theory (e.g., genetic algorithms), capable of solving complex problems for which other techniques fail. Students will implement course concepts, tackling science, engineering and/or business problems. Prerequisite: A "C" or better grade in both Comp Sci 2500 and in a Statistics course.


COMP SCI 5402 Introduction to Data Mining (LEC 3.0)

The key objectives of this course are two-fold: (1) to teach the fundamental concepts of data mining and (2) to provide extensive hands-on experience in applying the concepts to real-world applications. The core topics to be covered in this course include classification, clustering, association analysis, data preprocessing, and outlier/novelty detection. Prerequisites: A grade of "C" or better in all of Comp Sci 2300, Comp Sci 2500, and one of Stat 3113, Stat 3115, Stat 3117 or Stat 5643.


COMP SCI 5403 Introduction to Robotics (LEC 3.0)

This course provides an introduction to robotics, covering robot hardware, fundamental kinematics, trajectories, differential motion, robotic decision making, and an overview of current topics in robotics. Prerequisite: A grade of "C" or better in both Math 3108 and Comp Sci 1575. (Co-listed with Comp Eng 5880 and Elec Eng 5880).


COMP SCI 5404 Introduction to Computer Vision (LEC 3.0)

This course introduces foundational theories and analysis methods in computer vision. Topics will include camera model and geometry, description of visual features, shape analysis, stereo reconstruction, motion and video processing, and visual object recognition. Prerequisite: A "C" or better grade in both Math 3108 and Comp Sci 2500.


COMP SCI 5405 Java Gui & Visualization (LEC 3.0)

Fundamentals of Java Swing Foundation Classes, Java System Language Specifics, Graphical User Interfaces, Images, Audio, Animation, Networking, and Threading. Visualization of Algorithms. GUI Elements include Event Driven Programming, Interaction with Mouse and KeyBoard, Window Managers, Frames, Panels, Dialog Boxes, Borders. Prerequisite: A "C" or better grade in Comp Sci 2500 or equivalent.


COMP SCI 5406 Interactive Computer Graphics (LEC 3.0)

Applications and functional capabilities of current computer graphics systems. Interactive graphics programming including windowing, clipping, segmentation, mathematical modeling, two and three dimensional transformations, data structures, perspective views, antialiasing and software design. Prerequisite: A "C" or better grade in both Comp Sci 3200 and Comp Sci 2500.


COMP SCI 5407 Introduction to Virtual Reality (LEC 3.0)

Fundamentals: creative and digital skills. Houdini interface (Scene View, Network, Parameter panes), design facets (networks of nodes, navigation of networks interactive 3D modeling and visualization, digital assets, animation, lights, cameras, rendering), and simple applications of particles, dynamics, and fluids (Shattering, Destruction, Smoke, Fire). Prerequisites: A grade of "C" or better in both Comp Sci 2500 and Math 3108.


COMP SCI 5408 Game Theory for Computing (LEC 3.0)

This course introduces the mathematical and computational foundations of game theory, and its applications to computer science (e.g., cybersecurity, robotics and networking). Topics include decision rationality, game representations, equilibrium concepts (e.g., Nash equilibrium), Bayesian games, dynamic games, cooperative game theory, and mechanism design. Prerequisites: A grade of "C" or better in both Comp Sci 2500 and Math 3108, and in one of Stat 3113, Stat 3115, Stat 3117, or Stat 5643. (Co-listed with Comp Eng 5320).


COMP SCI 5409 Applied Social Network Analysis (LEC 3.0)

In this course students will learn how to use networks to model and analyze relationships between people, artifacts, and ideas. Analyses will include identification of both communities and key individuals, and the modeling of diffusion processes such as the transmission of diseases. Methods will be practiced in programming assignments using Python. Prerequisites: A grade of "C" or better in Comp Sci 2500.


COMP SCI 5420 Introduction to Machine Learning (LEC 3.0)

This course introduces foundational theories and techniques in machine learning. Topics will include basics of machine learning, learning theory, various regression and classification models, as well as unsupervised learning methods. Students will implement course concepts in intensive programming assignments and mini-projects. Prerequisite: A grade of "C" or better in Comp Sci 2500, Math 3108, and one of Stat 3113, Stat 3115, Stat 3117, or Stat 5643.


COMP SCI 5500 The Structure of a Compiler (LEC 3.0)

Review of Backus normal form language descriptors and basic parsing concepts. Polish and matrix notation as intermediate forms, and target code representation. Introduction to the basic building blocks of a compiler: syntax scanning, expression translation, symbol table manipulation, code generation, local optimization, and storage allocation. Prerequisite: A "C" or better grade in both Comp Sci 3500 and Comp Sci 2500.


COMP SCI 5600 Advanced Computer Networks (LEC 3.0)

This course focuses on the principles of computer networking. It covers the TCP/IP model from the application layer to the physical layer. It is targeted toward entry-level graduate students. It also exposes students to wireless and mobile networks. It involves network performance modeling and analysis, and implementing communication protocols. Prerequisites: A grade of "C" or better in Comp Sci 3610.


COMP SCI 5601 Security Operations & Program Management (LEC 3.0)

An overview of information security operations, access control, risk management, systems and application life cycle management, physical security, business continuity planning, telecommunications security, disaster recovery, software piracy, investigations, ethics and more. There will be extensive reporting, planning and policy writing. Prerequisite: A "C" or better grade in all of: operating systems, computer networking, and a writing emphasized course.


COMP SCI 5602 Introduction to Cryptography (LEC 3.0)

Introduces fundamentals of modern cryptography. Topics include basic number theory, public & private key encryption schemes, cryptographic hash functions, message authentication codes, elliptic curve cryptography, Diffie-Hellman key agreements, digital signatures, PUFs, quantum cryptography, and generation of prime numbers and pseudo-random sequences. Prerequisites: A grade of "C" or better in COMP SCI 5200 or a grade of "B" or better in COMP SCI 2500.


COMP SCI 5700 Bioinformatics (LEC 3.0)

The course will familiarize students with the application of computational methods to biology, as viewed from both perspectives. It will introduce problems in molecular, structural, morphological, and biodiversity informatics, and will discuss principles, algorithms, and software to address them. Prerequisites: A grade of "C" or better in both one of Bio Sci 1113 or Bio Sci 1213 and one of Comp Sci 1570 and Comp Sci 1580 or Comp Sci 1971 and Comp Sci 1981. (Co-listed with Bio Sci 5323).


COMP SCI 5701 Experiential Entrepreneurship for Computer Scientists (LEC 3.0)

Students will work in teams mentored by experienced entrepreneurs to generate innovative ideas and transform them into business models for economically viable knowledge tech companies. Experiential learning will be used in live customer discovery, prototyping and market validation. The prototyping phase will contain a significant computer science component. Prerequisites: A grade of "C" or better in Comp Sci 3100 or Comp Sci 4090.


COMP SCI 5800 Distributed Computing (LEC 3.0)

This is an introduction to the fundamentals of distributed computing. Topics include a review of communication between distributed processes, causality, distributed state maintenance, failure detection, reconfiguration and recovery, distributed mutual exclusion, clock synchronization, and leader election. Students will implement select course concepts. Prerequisites: A grade of "C" or better in both Comp Sci 3800 and Comp Sci 2500.


COMP SCI 5801 The Structure Of Operating Systems (LEC 3.0)

The hardware and software requirements for operating systems for uniprogramming, multiprogramming, multiprocessing, time sharing, real time and virtual systems. The concepts of supervisors, interrupt handlers, input/output control systems, and memory mapping are discussed in detail. Prerequisite: A "C" or better grade in Comp Sci 3800.


COMP SCI 5802 Introduction to Parallel Programming and Algorithms (LEC 3.0)

Parallel and pipelined algorithms, architectures, network topologies, message passing, process scheduling and synchronization. Parallel programming on clusters. Cost, speedup and efficiency analysis. Prerequisite: A "C" or better grade in both Comp Sci 3800 and Comp Sci 2500.


COMP SCI 5803 Introduction to High Performance Computer Architecture (LEC 3.0)

Overviews high performance architecture of computing systems and covers various architectural/hardware and software/algorithmic means that enhance performance. Uniprocessor and concurrent systems are investigated. Various computational models are studied and linked to commercial systems. Prerequisite: A "C" or better grade in both Comp Eng 3150 and Comp Sci 2500. (Co-listed with Comp Eng 5110).


Avah Banerjee, Assistant Professor
PHD George Mason University

Randy Lawrence Canis, Adjunct Professor
JD University of Missouri-Columbia

Nan Cen, Assistant Professor
PHD Northeastern University

Sajal K Das, St. Clair Endowed Chair Professor
PHD University of Central Flordia

Samuel Frimpong, Professor, Robert H. Quenon Chair in Mining Engineering1
PHD University of Alberta, Canada

Mike Gosnell, Assistant Teaching Professor
MS University of Missouri-Rolla

Gerry Howser, Associate Teaching Professor
PHD Missouri University of Science and Technology

Jennifer Leopold, Associate Professor
PHD University of Kansas

Xin Liang, Assistant Professor
PHD University of California

Tony Luo, Associate Professor
PHD National University of Singapore

Sanjay Kumar Madria, Professor
PHD Indian Institute of Technology, India

George Markowsky, Professor
PHD Harvard University

Bruce M McMillin, Professor
PHD Michigan State University

Angel Ricardo Morales, Assistant Teaching Professor
PHD Texas Tech University

Venkata Sriram Siddhardh Nadendla, Assistant Professor
PHD Syracuse University

Chaman L Sabharwal, Professor
PHD University of Illinois-Urbana

Sahra Sedigh Sarvestani, Associate Professor
PHD Purdue University, W. Lafayette

Patrick Taylor, Assistant Teaching Professor
PHD

Ardhendu Tripathy, Assistant Professor
PHD Iowa State University

Costas Tsatsoulis, Professor and Vice Chancellor of Research and Graduate Studies
PHD Purdue University

Donald C Wunsch II, Professor1
PHD University of Washington

San Yeung, Assistant Teaching Professor
MS Missouri University of Science and Technology

Peizhen Zhu, Assistant Teaching Professor
PHD University of Colorado-Denver

Superscripts 1, 2, 3, 4, 5, and 6 in the faculty listing refer to the following common footnotes:
1 Registered Professional Engineer
2 Registered Geologist
3 Certified Health Physicist
4 Registered Architect
5 Board Certified, American Academy of Environmental Engineers
6 LEED AP Certified