Professors: Kenneth Vollmar, Ph.D.; Yang Wang, Ph.D.
Associate Professors: Edward H. Matthews, Ph.D.; Jamil M. Saquer, Ph.D.; Eric Shade, Ph.D.
Assistant Professors: Hui Liu, Ph.D.; Richard Martin, Ed.D.
Lecturers: Michael Scroggins, M.B.A.; Harry Shea, M.S.
Emeritus Professors: Melvin V. Foster, Ph.D.; Ivon H. Lowsley, Jr., Ph.D.
Computing Accreditation Commission (CAC) of ABET – Computer Science, B.S.
Credit by Examination is available. Refer to the Credit by Examination policy in the Academic Regulations section of the catalog.
The following graduate programs are available:
Master of Natural and Applied Science degree with an area of emphasis in Computer Science.
Refer to the Graduate Catalog for more information.Accelerated Master of Natural and Applied Science degree: Eligible undergraduate students majoring in the College of Natural and Applied Sciences may apply for preliminary acceptance into the Master of Natural and Applied Science program after admission requirements for the accelerated masters program have been satisfied. If approved, a maximum of 12 hours of approved graduate level courses may be designated as “mixed credit” and counted toward both the undergraduate and graduate degree programs. This option offers an opportunity for CNAS majors whose goals, academic capabilities, and career planning include graduate work, to complete the requirements for the masters degree in less time than would otherwise be possible. See the Graduate Catalog or contact the MNAS program director for further information and guidelines.
For courses to be designated as Mixed Credit, the graduate advisor, undergraduate department head, and Graduate College dean must approve by signing the Permission for Mixed Credit form. This form must be provided to the Office of the Registrar in Carrington Hall 320 no later than the end of the Change of Schedule Period for the semester.
Computers for Learning Proficiency Examination: A proficiency examination to obtain waiver from completing the General Education/Computers for Learning requirement (CIS 101, CSC 101, CSC 111) is available. Credit hours are not granted for this examination. For more information, visit the web site at http://learning.missouristate.edu.
Education Requirements - see General Education Program and Requirements section of catalog
Major Requirements
CSC 130(3), 131(4), 232(4), 320(4), 325(3), 333(4), 335(3), 450(3), 460(3), 482(1)
Select nine additional hours from eligible CSC courses numbered 300 or above with at least six hours from courses other than CSC 399 and 596.
Related science and mathematics requirements: MTH 215(3), 261(5)*, 280(5)*, 345(3) or 540(3); PHY 203(5)*, 204(5), 220(4), 324(4); and one of the following courses: BIO 121(4)*, BMS 110(4)*, CHM 160(4)*, GLG 110(4)*, GRY 135(4)*, GRY 142(4)*
* May also count toward General Education Requirements
Minor Required (NOTE: The major requirements for Computer Science automatically satisfy the requirements for a minor in Mathematics, and all but two hours of the requirements for a minor in Physics.)
General Baccalaureate Degree Requirements - see “General Baccalaureate Degree Requirements” section of catalog
CSC 101 Computers for Learning
General Education Course (Basic Required Courses). Fundamental computer concepts including word processing spreadsheets, assessing information and the responsible use of information and technology. Course may be waived by proficiency exam. Identical with CIS 101. Cannot receive credit for both CIS 101 and CSC 101. 2(1-2) F,S
CSC 111 Introduction to Computing
Prerequisite: eligible for MTH 261. General Education Course (Basic Required Courses). An introduction to computer hardware, software, and network resources relevant to the science major. Spreadsheets, word processing, databases, and computer-based mathematical software will be emphasized. 3(2-2) F,S
CSC 121 Introduction to BASIC Programming
Problem solving with computers, analysis of computational problems and development of algorithms for their solution. Algorithms will be implemented in the BASIC language utilizing personal computers. 3(3-0) S
CSC 125 Introduction to C++ Programming
Programming and problem-solving using C++. Language constructs for assignment, flow control, input/output and functions are studied and applied. Techniques of object-oriented programming are introduced. 4(3-2) F
CSC 130 The World of Computer Science
A broad overview of computer science, with topics ranging from the basic structure of a computer to artificial intelligence. Suitable for non-majors who want to learn more about computer science. Prospective computer science majors are encouraged to take preparatory mathematics courses concurrently with this course. 3(3-0) F,S
CSC 131 Introduction to Computer Science I
Prerequisite: CSC 130 and eligible for MTH 261. An introduction to software design methodology using a modern structured programming language. Topics will include: problem-solving techniques; high-level control structures, subprograms and modularity; simple, aggregate and user-defined data types; and fundamental algorithms. Program clarity, good coding style and effective documentation will be stressed. 4(3-2) F,S
CSC 197 Introductory Topics in Computer Science
Variable content course with topics that can change from semester to semester. Topics will be identified by title in the schedule of classes. The course may be repeated if a different topic is offered, however, no more than six credits may count toward any degree. 1-3 D
Prerequisite: CSC 121 or CSC 125 or CSC 131. A survey of modern higher level languages with emphasis on comparison of capabilities of languages. Choices of a language to be used in solving particular types of problems. 3(3-0) D
CSC 232 Introduction to Computer Science II
Prerequisite: CSC 130; "C" or better in CSC 131; and MTH 215 or MTH 315 or concurrent enrollment. A continuation of CSC 131. Topics will include: algorithm design; complexity analysis; abstract data types and encapsulation; basic data structures and their application, including stacks, queues, linked lists and binary trees; dynamic memory allocation; recursion; sorting and searching; debugging techniques. 4(3-2) F,S
CSC 300 Service Learning in Computer Science
Prerequisite: 30 hours and concurrent registration in a Computer Science course designated as a service learning offering. This service component for an existing course incorporates community service with classroom instruction in Computer Science to provide an integrative learning experience that addresses the practice of citizenship and promotes an awareness of and participation in public affairs. Includes 40 hours of service that benefits an external community organization, agency, or public service provider. Approved service placements and assignments will vary depending on the specific course topic and learning objectives; a list of approved placements and assignments is available from the instructor and the Citizenship and Service Learning Office. May be repeated but no more than two hours of service learning may count toward graduation. 1 F,S
Prerequisite: PHY 220 and CSC 131. Introduction to the architecture and internal operation of computers, including assembly language. A study of the major components, functional organization, and sequential operation of digital computers during program execution. Several computer architectures will be studied. 4(4-0) F,S
CSC 325 Algorithms and Advanced Data Structures
Prerequisite: CSC 232 and either MTH 215 or MTH 315. This course should be taken as soon as possible after CSC 232. Algorithms and advanced data structures, including graphs, heaps, self-adjusting data structures, set representations and dynamic programming. Sample applications, including memory management and data compression. Introduction to NP-complete problems. Correctness proofs and efficiency analysis are stressed. 3(3-0) F,S
CSC 333 Languages and Machines
Prerequisite: CSC 232; and CSC 320 or concurrent enrollment; and MTH 215 or MTH 315. A study of two classes of languages: formal languages (regular, context-free, and computable) and their associated machines (finite automata, pushdown automata, and Turing machines); and programming languages, including the essential features of imperative, functional, object-oriented, and logic programming languages, together with their design and implementation on modern computers and virtual machines. Includes a substantial number of programming assignments, most of which are language interpreters or machine simulators, to be implemented using a functional programming language that emphasizes recursion and higher-order functions. As a semester project, students must research a new programming language and use it to write a nontrivial application. 4(4-0) F,S
CSC 335 Database System Concepts
Prerequisite: CSC 121 or CSC 125 or CSC 131. A study of modern database systems and their underlying concepts. Core topics include the relational model, SQL, database design theory, query processing, file structures, transactions, and concurrency. Programming projects provide practical experience in developing GUI database applications. 3(3-0) F
Prerequisite: CSC 121 or CSC 125 or CSC 131. An introduction to paradigms and languages used in Internet and World Wide Web programming. These include modern tools for client-side and server-side programming and dynamic Web page generation. Advanced topics, such as security and XML, will be covered as time allows. 3(3-0) S
CSC 399 Cooperative Education in Computer Science
Prerequisite: permission of department head. The opportunity to earn academic credit in a planned learning process that integrates academic training with a supervised work experience. This is a variable content course that may be repeated to a total of 6 semester hours. Does not count toward any Computer Science minor. 1-3 D
Prerequisite: MTH 280. Recommended: CSC 125 or CSC 131. Solution of systems of linear and nonlinear equations, interpolation, integration, approximation, matrix computations. Problem solution will include the use of software. Identical with MTH 421. Cannot receive credit for both CSC 421 and MTH 421. 3(3-0) D
Prerequisite: MTH 303 and MTH 421. Solution of initial and boundary value problems in ordinary and partial differential equations, simulation, and optimization. Problem solution will include the use of software. Identical with MTH 422. Cannot receive credit for both CSC 422 and MTH 422. 3(3-0) D
Prerequisite: CSC 232 and either MTH 345 or MTH 540. The study of simulation techniques. Topics will include: probability distributions, statistical testing, random number generators, design of simulation experiments, language structures for simulation, and study of a simulation language. 3(3-0) D
CSC 450 Introduction to Software Engineering
Prerequisite: CSC 325. Principles, techniques and tools used to effect the orderly production of medium and large scale computer programs will be studied. These techniques will be applied to programming projects with students working in teams and managing all phases of a programming project. 3(3-0) F,S
CSC 460 Theory of Computer Operating Systems
Prerequisite: CSC 320 and CSC 325. A study of the concepts and implementation techniques used on modern operating systems. Core topics include processes, threads, interprocess communication, deadlocks, memory management, file systems, I/O systems, security and distributed systems. 3(3-0) F,S
CSC 482 Seminar in Computer Science
Prerequisite: CSC 333 and CSC 460 (or concurrent enrollment). Current trends and ethics in computer science with consideration given to future opportunities in the field. A written report and successful completion of the computer science assessment test will be required. 1(1-0) F,S
CSC 487 Computing for Bioinformatics
Prerequisite: any one of CSC 121, CSC 125, CSC 131, CSC 232, BMS 231, BIO 235, or CHM 350. This course focuses on computational techniques used in bioinformatics. Topics will include nucleotide and amino acid data representation, sequence alignment, coding sequence prediction, and use of statistical models. Students will learn to use bioinformatics libraries with a script language such as Python or Perl. May be taught concurrently with CSC 687. Cannot receive credit for both CSC 487 and CSC 687. 3(3-0) D
CSC 500 Hardware, Software, and Troubleshooting Personal Computers
An introduction to the installation, maintenance, troubleshooting, upgrading, simple repair, and management of personal computers found in educational settings. This course will provide numerous laboratory experiences providing hands-on experience with the goal of enabling students to support personal computer laboratories found in PK-12 schools. This course cannot be taken for credit toward a computer science major or minor. May be taught concurrently with CSC 600. Cannot receive credit for both CSC 600 and CSC 500. 3(2-2) D
CSC 505 Web-Based Resources in Educational Settings
An introduction to the design, implementation, and management of World Wide Web resources over the Internet and Intranet networks. Topics include Internet overview, web authoring, web programming, server setting and maintenance. The objective of the course is to know tools (HTML, JavaScript, and Java applets, and Internet Server software, and Navigator/Internet Explorer software packages), and their applicability in WWW design and management in PK-12 school settings. This course cannot be taken for credit toward a computer science major or minor. May be taught concurrently with CSC 605. Cannot receive credit for both CSC 605 and CSC 505. 2(2-0) D
CSC 510 Networking and Telecommunications in Educational Settings
An introduction to networking and data communications from an educator's perspective. The course will examine the necessary computer hardware, software, and personnel resources relevant to networking and data communication requirements in various educational settings. Local Area Networks, Wide Area Networks, Network Interconnections, and the Internet will be addressed. This course cannot be taken for credit toward a computer science major or minor. May be taught concurrently with CSC 610. Cannot receive credit for both CSC 610 and CSC 510. 2(2-0) D
Prerequisite: CSC 333. Topics include lexical analysis, parsing, symbol tables, type checking, run-time organization, code generation, basic code optimization, and the use of compiler development tools. The student must write a complete compiler for a small imperative programming language. May be taught concurrently with CSC 621. Cannot receive credit for both CSC 621 and CSC 521. 4(3-2) D
Prerequisite: CSC 232 and either MTH 215 or MTH 315. Introduction to the hardware and software components of graphics systems. Development of algorithms for two-dimensional graphics including windowing, clipping, and transformations; algorithms for three dimensional graphics including viewing, transformations, and removal of hidden lines and surfaces. Data structures for graphics and interactive techniques will be stressed. May be taught concurrently with CSC 625. Cannot receive credit for both CSC 525 and CSC 625. 3(3-0) F
CSC 526 Methods of Optimization
Prerequisite: CSC 421 or MTH 421; and MTH 533. Convex sets, classical optimization of functions, constrained optimiution, search techniques, linear and nonlinear optimization, applications to applied problems. May be taught concurrently with CSC 626. Cannot receive credit for both CSC 626 and CSC 526. 3(3-0) D
Prerequisite: CSC 232. This course studies the emerging technology of data mining--the automated extraction of patterns and information from data. The focus will be on understanding the algorithms underlying data mining and on the practical use of those algorithms. Students will use data mining software to analyze collections of data. May be taught concurrently with CSC 635. Cannot receive credit for both CSC 535 and CSC 635. 3(3-0) D
CSC 540 Introduction to Artificial Intelligence
Prerequisite: CSC 325. Techniques of artificial intelligence including study of expert systems, natural language processing, search strategies, computer vision and robotics. May be taught concurrently with CSC 640. Cannot receive credit for both CSC 540 and CSC 640. 3(3-0) S
CSC 545 Computer Speech, Music and Images
Prerequisite: CSC 232. This is an applied course focusing on the technical aspects of computer-based multimedia-speech, music, audio, and video. In any given semester, the focus may be more on audio or image processing, or it may be equally balanced between the two. Topics include multimedia data capture and representation, methods of data compression, multimedia information retrieval, and multimedia standards. May be taught concurrently with CSC 645. Cannot receive credit for both CSC 545 and CSC 645. 3(3-0) D
Prerequisite: CSC 232. An introduction to the theory, concepts and techniques upon which modern computer networks and telecommunication systems are based. The emphasis will be on layered network architectures, the design frameworks for both local and wide area networks and communication protocols. May be taught concurrently with CSC 665. Cannot receive credit for both CSC 565 and CSC 665. 3(3-0) F
Prerequisite: CSC 465. An introduction to the fundamental theory, concepts and techniques of wireless communication, wireless networks, network architecture, and wireless applications. Students will gain an understanding of the significance that wireless systems and user mobility have on the construction and handling of a data or telecommunications network. Topics include wireless and ad hoc networks, enabling technologies, multiplexing, protocol design, network security, and quality of service. May be taught concurrently with CSC 667. Students cannot receive credit for both CSC 567 and CSC 667. 3(3-0) S
CSC 590 Advanced Topics in Computer Science
Prerequisite: CSC 232. Variable content course with advanced topics that can change from semester to semester. Topics may be identified by title in the schedule of classes. May be repeated if a different topic is offered, however, no more than six credits may count toward any degree. May be taught concurrently with CSC 690. Cannot receive credit for both CSC 590 and CSC 690. 1-4 D
Prerequisite: permission of department head. Periodic conferences with an advisor are required. May be repeated to a total of 6 hours. Prerequisite: CSC 325 and permission of department head. Periodic conferences with an advisor are required. May be repeated to a total of 6 hours. May be taught concurrently with CSC 696. Cannot receive credit for both CSC 696 and CSC 596. 1-3 F,S
CSC 600 Hardware, Software, and Troubleshooting Personal Computers
An introduction to the installation, maintenance, troubleshooting, upgrading, simple repair, and management of personal computers found in educational settings. This course will provide numerous laboratory experiences providing hands-on experience with the goal of enabling students to support personal computer laboratories found in PK-12 schools. May be taught concurrently with CSC 500. Cannot receive credit for both CSC 500 and CSC 600. 3(2-2) D
CSC 605 Web-Based Resources in Educational Settings
An introduction to the design, implementation, and management of World Wide Web resources over the Internet and Intranet networks. Topics include Internet overview, web authoring, web programming, server setting and maintenance. The objective of the course is to know tools (HTML, JAVAscript, and JAVA applets, and Internet Server software, and Navigator/Internet Explorer software packages), and their applicability in WWW design and management in PK-12 school settings. May be taught concurrently with CSC 505. Cannot receive credit for both CSC 505 and CSC 605. 2(2-0) D
CSC 610 Networking and Telecommunications in Educational Settings
An introduction to networking and data communications from an educator's perspective. The course will examine the necessary computer hardware, software, and personnel resources relevant to networking and data communication requirements in various educational settings. Local Area Networks, Wide Area Networks, Network Interconnections, and the Internet will be addressed. May be taught concurrently with CSC 510. Cannot receive credit for both CSC 510 and CSC 610. 2(2-0) D
Topics include lexical analysis, parsing, symbol tables, type checking, run-time organization, code generation, basic code optimization, and the use of compiler development tools. The student must write a complete compiler for a small imperative programming language. May be taught concurrently with CSC 521. Cannot receive credit for both CSC 521 and CSC 621. 4(3-2) D
An introduction to computer graphics, with an emphasis on application programming. Algorithms for two dimensional graphics, including windowing, clipping, and transformations; algorithms for three dimensional graphics, including viewing, transformations, and removal of hidden lines and surfaces. Data structures for graphics and interactive techniques will be stressed. May be taught concurrently with CSC 525. Cannot receive credit for both CSC 625 and CSC 525. 3(3-0), F
CSC 626 Methods of Optimization
Convex sets, classical optimization of functions, constrained optimiution, search techniques, linear and nonlinear optimization, applications to applied problems. May be taught concurrently with CSC 526. Cannot receive credit for both CSC 526 and CSC 626. 3(3-0) D
This course studies the emerging technology of data mining - the automated extraction of patterns and information from data. The focus will be on understanding the algorithms underlying data mining and on the practical use of those algorithms. Students will use data mining software to analyze collections of data. May be taught concurrently with CSC 535. Cannot receive credit for both CSC 635 and CSC 535. 3(3-0), D
CSC 640 Artificial Intelligence
Techniques of artificial intelligence, including study of expert systems, natural language processing, search strategies, computer vision and robotics. May be taught concurrently with CSC 540. Cannot receive credit for both CSC 640 and CSC 540. 3(3-0), S
CSC 645 Computer Speech, Music and Images
This is an applied course focusing on the technical aspects of computer-based multimedia-speech, music, audio, and video. In any given semester, the focus may be more on audio or image processing, or it may be equally balanced between the two. Topics include multimedia data capture and representation, methods of data compression, multimedia information retrieval, and multimedia standards. May be taught concurrently with CSC 545. Cannot receive credit for both CSC 645 and CSC 545. 3(3-0), D
An introduction to the theory, concepts and techniques upon which modern computer networks and telecommunication systems are based. The emphasis will be on layered network architectures, the design frameworks for both local and wide area networks and communication protocols. May be taught concurrently with CSC 565. Cannot receive credit for both CSC 665 and CSC 565. 3(3-0), F
An introduction to the fundamental theory, concepts and techniques of wireless communication, wireless networks, network architecture, and wireless applications. Students will gain an understanding of the significance that wireless systems and user mobility have on the construction and handling of a data or telecommunications network. Topics include wireless and ad hoc networks, enabling technologies, multiplexing, protocol design, network security, and quality of service. May be taught concurrently with CSC 567. Cannot receive credit for both CSC 667 and CSC 567. 3(3-0), S
CSC 687 Computing for Bioinformatics
This course focuses on computational techniques used in bioinformatics. Topics will include nucleotide and amino acid data representation, sequence alignment, coding sequence prediction, and use of statistical models. Students will learn to use bioinformatics libraries with a script language such as Python or Perl. May be taught concurrently with CSC 587. Cannot receive credit for both CSC 687 and CSC 587. 3(3-0), D
CSC 690 Advanced Topics in Computer Science
Detailed consideration of advanced topics in the field of Computer Science. Topics will change, and this course may be repeated with differing topics. May be taught concurrently with CSC 590. Cannot receive credit for both CSC 690 and CSC 590. 1-4, D
Prerequisite: permission of department head. Periodic conferences with an advisor are required. May be repeated to a total of 6 hours. May be taught concurrently with CSC 596. Cannot receive credit for both CSC 596 and CSC 696. 1-3, F, S
CSC 798 Research in Computer Science
Prerequisite: permission of department head. Supervised research in computer science. May be repeated, but no more than 6 hours may count toward the Master of Natural and Applied Science degree. 1-4, F,S
Prerequisite: permission of instructor. Independent research and study connected with preparation of thesis. No more than 6 hours may count toward the Master of Natural and Applied Science degree. 1-6, D