Computer Science

Page address: http://www.mnsu.edu/supersite/academics/bulletins/graduate/current/computerscience.html

... > Current > Computer Science

College of Science, Engineering & Technology
Department of Computer Science
273 Wissink Hall
507-389-2968

The graduate program in Computer Science provides a foundation for advanced study and professional development. Graduate faculty in the department offer courses in artificial intelligence, systems and networking topics, advanced scientific computation, theoretical computer science and the engineering of software. Faculty research areas mirror and extend these topic areas and opportunities for graduate student research abound.

Admission
In addition to meeting the general admission requirements of the College of Graduate Studies and Research, successful applicants must meet the following requirements for admission:
1. The Graduate Record Examination (GRE) is required (contact department for specific requirements).
2. Applicants must have an undergraduate degree in computer science, software engineering, or a related field. Qualified students with other backgrounds may be granted provisional admission and required to complete undergraduate courses in core areas of computer science.


Financial Assistance
Lab Project and Research Assistantships requiring professional computer knowledge may be available in the department and from other departments and administrative offices on campus.

Computer Science MS

(Thesis Plan - 32 credits)
(Alternate Plan Paper - 34 credits)

Required Core (13 credits from the following)

• CS 600 or IT 600 Research Methods (3) (REQUIRED)
• CS 602 Research Seminar (1)
• CS 610 Algorithm Analysis (3)
• CS 620 Advanced Computer Organization (3)
• CS 631 Knowledge-Based Systems (3)
• CS 660 Operating Systems Theory and Design (3)
• CS 662 Data Communications and Networking (3)
• CS 680 Software Engineering Project (3)


Required Electives ( 3 - 20 credits)

Choose additional credits using any 500-level or 600-level courses. Up to 4 credits of 5/600 non-departmental elective courses may be selected in consultation with an advisor.At most, 12 credits of 500-level courses may be used for elective credits.
• CS 601 Research Topics (3)
• CS 611 Theory of Computation (3)
• CS 630 Advanced Artificial Intelligence (3)
• CS 677 Individual Study (1-4)
Required Capstone Experience
• CS 699 Thesis (3-6) or
• CS 694 Alternate Plan Paper (1-2)

Prior to registering for CS/IT 694 or CS/IT 699, the student must satisfy the comprehensive examination requirement and must have successfully completed the core course credits. Students must be registered for a minimum of one credit of Thesis/APP for every semester that they are working on their paper.

A minimum GPA of 3.5 is required in the 13-credits applied to the core course requirement. This requirement may be waived if the student scores a passing grade on a comprehensive examination that contains questions from the computer science core (except for CS 602).

Course Descriptions


CS 500 (
3) Software Design and Architecture

Current processes, methods, and tools related to formal methods for modeling and designing software systems. Topics include software architectures, methodologies, model representations, component-based design, patterns, frameworks, CASE-based designs, and case studies.

CS 510 (3) Abstract Machines & Grammars

This course studies the theoretical underpinnings of modern computer science, focusing on three main models of computation:DFA, PDA, and Turing machines. Students determine model capabilities and limitations are: what is and is not computable by each of them. Pre: consent of instructor

CS 515 (3) High Performance Computing

This course covers High Performance Computing (HPC) techniques used to address problems in Computational Science. Topics include the application areas and basic concepts of parallel computing, hardware design of modern HPC platforms and parallel programming models, methods of measuring and characterizing serial and parallel performance, and computational grid technologies. Pre: consent of instructor

CS 520 (3) Advanced Computer Organization

Advanced topics in computer architecture including a major emphasis on measuring and improving computer performance. Topics include advances in pipelining and analysis and optimization of storage systems and networks, multiprocessor challenges and trends. Pre: consent of instructor

CS 525 (3) Real-time and Embedded Systems

This course provides an overview of embedded and real-time systems and their development. Students will design and build a real-time operation system with a microprocessor to host real-time service data processing using sensor/actuator devices. The course covers design principles, methodologies, design tools and problem solving techniques. Pre: consent of instructor

CS 530 (3) Artificial Intelligence

This course offers an overview of the field of Artificial Intelligence (AI). Basic introductory concepts and a history of the field are covered. Emphasis is placed on the knowledge representation and reasoning strategies used for AI problem solving. Solutions are found using the LISP programming language. Pre: consent of instructor

CS 531 (3) Computational Linguistics

This course presents and overview of the field of computational linguistics. Topics include regular expressions, finite state automata, information theory, context free grammars, hidden Markov models and Viterbi algorithms. Students will work on problems with the field including parsing, machine translation, speech recognition, information extraction and parsing. Pre: consent of instructor

CS 533 (3) Data Mining and Machine Learning

This course offers a blended view of computer science, information science, and statistics for storing, accessing, modeling, and understanding large data sets. Topics include fundamental data mining algorithms: decision trees, classification, regression, association rules, statistical models, neural networks, and support vector machines. Pre: consent of instructor

CS 552 (3) Network Protocol Internals

This course provides advanced coverage of data communication and networking protocols. The course introduces the principles, protocols, and performance evaluation techniques of various advance networking technologies. Topics include error detection and recovery, flow control, routing, data throughput, and performance analysis of existing and emerging Internet protocols. Pre: consent of instructor

CS 554 (3) Mobile and Wireless Networks

This course covers emerging mobile and wireless data networks, The course reviews significant standard wireless protocols (e.g., Bluetooth, IEEE 802.11, RFID, and WAP), and explores technologies for the development of mobile and wireless applications (e.g., J2ME, WML, Brew). Includes research, design, and implementation of a wireless, mobile application. Pre: consent of instructor

CS 560 (3) Operating Systems: Design & Implementation

This course studies the historical and current concepts and implementations of computer operating systems. Basic operating systems topics include processes, interprocess communication, interprocess synchronization, deadlock, memory allocation, segmentation, paging, resource allocation, scheduling, file systems, storage, devices, protection, security, and privacy. Pre: CS consent of instructor

CS 562 (3) Communication Protocols

Advanced coverage of data communication and networking protocols with an emphasis on protocol design and implementation. Topics addressed will include data transmission methods, error detection and recovery, flow control, routing, data throughput, and performance analysis of existing and emerging Internet protocols. Pre: consent of instructor

CS 565 (3) Graphics and Game Programming II

The second of a two-course sequence on graphics and game programming. The course concentrates on 3D graphics including modeling, rendering, and animation for computer games and graphic simulations. Programs are created using a current graphics and game development environment.

CS 570 (3) Compilers

This course offers an introduction to the specification and implementation of modern compilers. Topics covered include lexical scanning, parsing, type checking, code generation and translation, an introduction to optimization, and compile-time and run-time support for modern programming languages. Students will build a working compiler. Pre: consent of instructor

CS 580 (3) Advanced Programming Practices

This course covers advanced object-oriented programming for general purpose software development. Topics include tools and processes appropriate for employing object-oriented designs and programming with a significant software development environment and advance data structures and algorithms, graphical user interfaces, and software development processes. Pre: consent of instructor

CS 581 (3) Software Engineering

Building upon the introduction provided in CS 300, provides a formal presentation of software engineering concepts. Additional topics include alternative design methods, software metrics, software project management, reuse and re-engineering.

Admission to course requires instructor consent.

CS 582 (3) Software Verification

Provides an introduction to software quality assurance with focus on software testing processes, methods, techniques and tools. Topics include formal verification and validation techniques; black box and white box testing; integration, regression, performance, stress, and acceptance testing of software.

CS 593 (3) Computer-Based Instructional Systems

This course provides participants with opportunities to develop, implement, and assess formative and summative evaluation instruments; identify researchable issues in computer-delivered instruction; develop computer-delivered instruction using a sophisticated authoring tool.

CS 595 (1) Seminar in Computer Science

Through reading, small group discussion, and presentations, explores the topics not normally covered in the curriculum. Prerequisite: consent

CS 596 (1-4) Selected Topics in Computer Science

Special topics not covered in other courses. May be repeated for credit on each new topic. Prerequisite: consent

CS 597 (1-12) Internship

This course is designed to provide students with an opportunity to utilize their training in a real-world business environment. Participants are placed and supervised in selected locations by the internship coordinator for a minimum period of one semester while working under the guidance and direction of a full-time staff member. Prerequisite: Completion of core and consent.

CS 599 (1-2) Individual Study

Problems on an individual basis. Prerequisite: consent

CS 600 (3) Research Methods

Research methodology in general and in computer science. Data and research sources. Analysis of existing research. Preliminary planning and proposals. Conceptualization, design, and interpretation of research. Good reporting. Prerequisite: an elementary statistics course

CS 601 (3) Research Topics

Special topics in computer science research not covered in other courses. May be repeated for credit on each new topic.

CS 602 (1) Research Seminar

Students attend seminar presentations and present a research topic at one of the seminars. Prerequisite: consent

CS 610 (3) Algorithm Analysis

Brings together fundamental methods in order to provide access to the best method(s) for algorithm usage and analysis. Prerequisite: CS 510 or consent of instructor

CS 611 (3) Theory of Computation

Computation using Turing machines, logic, oracles, alternating Turing machines, and interactive proof systems. Various aspects of computational complexity including NP-completeness, Co-NP, parallel-complexity theory, their relationships, counting classes, and the polynomial time hierarchy are discussed. Prerequisite: CS 510 or consent of instructor

CS 620 (3) Advanced Computer Organization

This course will cover concepts and techniques used in modern processor architectures (such as pipelining, superscalar execution, branch system and application software (such as compilers, operating system, database management systems, and network communication). Prerequisite: CS 520

CS 630 (3) Advanced Artificial Intelligence Systems

This course is a continuation of Artificial Intelligence (CS 530). Emphasis is placed on advanced topics and the major areas of current research within the field. Theoretical and practical issues involved with developing large-scale systems are covered. Prerequisite: CS 530

CS 631 (3) Knowledge-Based Systems

The design of large-scale, knowledge-based systems. Emphasis on both theoretical and practical issues. Examination of alternative knowledge representation techniques and problem-solving methods used to design knowledge-based systems. Prerequisite: CS 530

CS 660 (3) Operating Systems Theory and Design

This course will focus on advanced uniprocessor and distributed operating systems. Topics covered will include operating system organization, including monolithic, microkernel, and exokernel; communications, including secure communications protocols, naming, and remote procedure call; file systems, including RAID and journaling; and memory management, including distributed shared memory. Prerequisite: CS 560

CS 662 (3) Data Communications and Networking

This course will focus on research, design, and analysis of computer networks and data communications systems. The course will also entail detailed examination of modern communication standards, protocol systems and their implementation. Additional topics may include transmission technology, packet switching, routing, flow control, and protocols. Prerequisite: CS 562 or 564

CS 677 (1-4) Individual Study

Problems on an individual basis. Prerequisite: consent

CS 680 (3) Software Engineering Project

Advanced software design, analysis, and development techniques under realistic time and budget constraints. Hands-on project management techniques. Emphasis of concepts through immersion in a team project of significant size. Prerequisite: CS 580

CS 690 (3) Statistical Inference Packages

Statistical package programs used in data collection, transformation, organization, summarization, interpretation and reporting. Statistical description and hypothesis testing with statistical inference. Interpreting outputs. Chi-square, correlation, regression, analysis of variance, nonparametrics, and other designs. Accessing and using large files (U.S. Census data, National Health Survey, etc.) Pre: a statistics course

CS 691 (1-6) In-Service in Computer Science

A course designed to upgrade the qualifications of persons on-the-job. Prerequisite: consent

CS 694 (1-2) Alternate Plan Paper

Preparation of a master's degree alternate plan paper under the direction of the student's graduate advisor. Prerequisite: consent

CS 699 (1-6) Thesis

Preparation of a master's degree thesis under the direction of the student's graduate advisor. Prerequisite: consent