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
Department of Information Systems & Technology
273 Wissink Hall
507-389-2968

The Master of Science degree in Computer Science is jointly offered by the departments of Computer Science and Information Systems & Technology. Courses from both departments are used to satisfy the requirements of this degree program.

The program of study prepares the student for a career as a computer professional, yet offers enough flexibility to allow a student to design a course of study suitable for preparation for doctoral work in computer science. The program is designed to offer graduate level educational opportunities with an applied science perspective. It addresses the pre-service as well as occupational and career advancement needs of baccalaureate prepared computer scientists. The program objectives are:

  1. To address the needs of Minnesota's public and private enterprises by providing opportunities within the state of Minnesota for graduate study in applied computer science.
  2. To provide a graduate degree program for practicing computer scientists who have clearly defined academic needs related to professional advancement and/or specialization.
  3. To offer a graduate program for baccalaureate students who want to continue their education and gain specialized knowledge and skills in computer science.
  4. To expand the functional role of the Department of Computer Science and the Department of Information Systems & Technology in service to the Mankato area and the state of Minnesota.

These objectives are met by a curriculum with core studies in software and knowledge engineering, theory, and research methods. The core studies provide the foundation upon which students develop an academic program appropriate to their interests, culminating in a research experience.

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, computer information systems, management information systems 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

Teaching, Lab Project and Research Assistantships requiring professional computer knowledge are available in the CIS department and from various other departments and administrative offices. Applications are posted on the school's Academic and Administrative Job Postings web page.

Computer Science MS

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

Required Core (13 credits from the following)

  1. CS 600 or IT 600 – Research Methods (3) REQUIRED
  2. CS 602or IT 602 – Research Seminar (1)
  3. CS 610 – Algorithm Analysis (3)
  4. CS 620 – Advanced Computer Organization (3)
  5. CS 631 – Knowledge-Based Systems (3)
  6. IT 640 – Advanced Database Systems (3)
  7. CS 660 – Operating Systems Theory and Design (3)
  8. CS 662 or IT 662 – Data Communications and Networking (3)
  9. CS 680 or IT 680– Software Engineering Project (3)

Required Electives (9 - 15 credits)

Choose any 6 credits using additional core courses, any 500-level course from the Department of Computer Science or the Department of Information Systems & Technology (excluding IT 691) or any of the following elective courses. At most, one 500-level course may be used for elective credits. Up to 4 credits of 5/600 non-departmental elective courses may be selected in consultation with an advisor.

  • CS 601 or IT 601– Research Topics (3)
  • CS 611 – Theory of Computation (3)
  • CS 630 or IT 630– Advanced Artificial Intelligence (3)
  • IT 641 – Distributed Database Systems (3)
  • CS 677 or IT 677– Individual Study (1-4)

Required Capstone Experience

  • CS 699or IT 699– Thesis (3-6) or
  • CS 694or IT 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.

Comprehensive Examination Requirement

The comprehensive examination will contain questions from the computer science core except for CS/IT 602. The comprehensive examination will be waived if the student obtains a 3.5 GPA in the core courses or achieves 60% or better on the GRE subject exam in computer science.

Graduate Certificate in Database Technology

This program provides the basic concepts, skills, and values for pursuing a career in computer and information science, emphasizing design and implementation of sophisticated database systems and related software.

  • IT 540 – Database Management Systems II (4)
  • IT 640 – Advanced Database Systems (3)
  • IT 641 – Distributed Database Processing (3)

Course Descriptions


CS 510 (4) 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 (4) 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 (4) 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 550 (4) Operations Research II

A second course in operations research for majors and non-majors. Topics include computer simulation, game theory, stochastic processes, queuing theory, Markov processes, and reliability. Simulation topics include Monte Carlo methods, discrete and continuous simulations, simulation languages and packages. Prerequisite: 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 (4) 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 (4) 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 563 (4) Client/Server and Web Applications

Introduction to distributed and client/server systems. Network operating systems to support C/S. Database servers. Client server and the Internet. Distributed objects. Web-based application development on PC and UNIX platforms. The principal functions of web servers and how they handle clients. CGI, ASP, JSP, JDBC, JavaBeans, Active-X, Servlets. Pre: consent of instructor

CS 565 (4) Parallel & Distributed Processing

This course offers an introduction to technical issues related to parallel and distributed systems. Topics addressed included parallel and distributed programming languages, parallel algorithm design and analysis, and parallel and distributed architectures. The course includes practical parallel programming experiences. Pre: consent of instructor

CS 570 (4) 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 (4) Advanced Program 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 591 (1-6) In-Service in Computer Science

This course is designed to meet the needs of kindergarten through twelfth grade practicing teaching majors who wish to enhance their technology-related skills and knowledge. Both lab and lecture activities are used to provide participants guided experiences with current applications of technology. Prerequisite: consent of instructor

CS 592 (3) Computers in the Classroom

Using both a lecture and lab format, this course provides students with a foundation for developing computer-delivered instruction within the classroom by examining the hardware and software which are part of emerging technologies, and the research issues associated with developing effective instruction using the computer.

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

------------------------------------------------------------------------------

Information Systems

ISYS 541 (4) Database Modeling for Appliations

Data modeling using techniques such as E/R, UML, ORM, and LDS. Requirements analysis, conceptual data modeling, and transformation of models, SQL. Higher normal forms, advanced SQL, object-relational mapping, and use of complex data models in business applications. Prerequisite: consent of instructor

ISYS 550 (4) Information Warfare

The course includes information warfare principles and technologies. The key areas are: Information warfare concepts; Protocols, Authentication, and Encryption; Network attack techniques, methodologies, and tools; Network defense; Malware: trojans, worms, viruses, and malicious code; Electronic crimes and digital evidence. Prerequisite: consent of instructor

ISYS 580 (4) Software Quality Assurance and Testing

This course focuses on the processes, methods and techniques for developing quality software, assessing software quality, and maintaining software quality. Software testing processes at the unit, module, subsystem, and system levels is discussed. Testing methods covered include: automatic and manual generation of test data, static vs. dynamic analysis, functional testing, inspections, and reliability assessment. Pre: consent of instructor

ISYS 582 (4) Human Computer Interaction

Human factors issues in the development of software, use of database systems, and design of user interfaces for interactive systems. Science base and software engineering with user interface development environments. Issues include: command languages, menus, forms, and direct manipulation, graphical user interfaces, computer supported cooperative work, information search and visualization, World Wide Web design, input/output devices, and display design. Pre: consent of instructor

ISYS 584 (4) Software Enginnering

This course introduces students to all important aspects of the discipline. The main purpose of the course is to simulate the engineering of a software product, from gathering requirements through implementation and maintenance. The course emphasizes traditional development methodology. Students will be introduced to Visual Basic and Microsoft Project, but the emphasis of the course will be on principles of software engineering, including project planning, requirements gathering, size and cost estimation, analysis, design, coding, testing, and implementation. Pre: consent of instructor

ISYS 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.

--------------------------------------------------------------------------------------------

Information Technology

 

IT 512 (4) Graphics

Concepts and algorithms used in computer graphics, including polygonal and curved images in both 2 and 3 dimensions, representation of solid objects, and color and illumination models. Pre: consent of instructor

IT 514 (4) Advanced Object-Oriented Programming with Design Patterns

This course endeavors to provide the student with a solid understanding of the principles, techniques and tools involved in advanced object-oriented programming as it is practiced in enterprise industries. The successful student should have a distinct advantage in the marketplace. Pre: consent of instructor

IT 530 (4) Intelligent Systems

This course offers an overview of the field of intelligent systems. Emphasis is placed on rule-based expert systems, fuzzy rule-based systems, artificial neural networks and evolutionary computaiton. Uncertainty management in rule-based systems is covered in detail. Pre: consent of instructor

IT 532 (4) Robotics

Current practice and future directions in robotics including robot anatomy, kinematics, sensors, sensor interfacing and fusion, mobile robotics, realtime programming, vision and image processing algorithms, subsumption architecture. Pre: consent of instructor

IT 540 (4) Database Management Systems II

Extensive coverage of query processing and optimization; concurrency control and recovery, and security and integrity in centralized/distributed environments. Team-oriented projects in a heterogeneous client server environment. Pre: consent of instructor

IT 542 (4) Database Security, Auditing, and Disaster Recovery

This course provides science and study of methods of protecting data, and designing disaster recovery strategy. Secure database design, data integrity, secure architectures, secure transaction processing, information flow controls, inference controls, and auditing. Security models for relational and object-oriented databases. Pre: consent of instructor

IT 544 (4) Data Mining and Warehousing

The course offers a detailed overview of data mining and warehousing. Emphasis is placed on data mining strategies, techniques and evaluation methods. The star schema and other warehousing methods are covered. Students learn to experiement with several data mining and warehousing tools. Pre: consent of instructor

IT 550 (4) Information Warfare

The course includes information warfare principles and technologies. The key areas are: Information warfare concepts; Protocols, Authentication, and Encryption; Network attack techniques, methodologies, and tools; Network defense; Malware: trojans, worms, viruses, and malicious code; Electronic crimes and digital evidence. Pre: consent of instructor

IT 560 (4) Network and Security Protocols

Advanced coverage of data communication, networking and security protocols. Topics include: data transmission methods, error detection and recovery, flow control, routing, data throughput, security issues, and performance analysis of existing and emerging protocols for secure communication between the many points within a computer network and across the Internet. Pre: consent of instructor

IT 562 (4) Network Administration and Programming

Network and server systems administration include: domain administration; file system management; networked printers; user management; and workstation configuration. Network programming experience will be gained through programming assignments/projects in Layered Software Systems, HTTP Server, UDP (TFTP or DNS), CGI program, IPV6, RPC/SCTP. Pre: consent of instructor

IT 564 (4) Applications of Wireless and Mobile Networks

This course provides an understanding of existing and emerging mobile and wireless data networks, with an emphasis on digital data communications. Students will gain an understanding of the unique considerations that must be given to network protocols for wireless and mobile communication as well as their applications. Pre: consent of instructor

IT 580 (4) Software Quality Assurance and Testing

Topics include software quality assurance, software quality metrics, software configuration management, software verification and validation, reviews, inspections, and audits, configuration control boards and software process improvement models, black-box and white-box testing models. Pre: consent of instructor


IT 582 (4) Human Computer Interaction

Concepts and techniques for user interface design and human computer interaction. Emphasizes user-centered design, interface development techniques, and usability evaluation. Various interface devices and metaphors will be considered. Visual development environments and other development tools will be studied. Students will complete a substantial project. Pre: consent of instructor

IT 583 (4) Web Applications and User Interface Design

HTTP Protocol; Presentation abstractions; Web-markup languages; Client-side programming; Server-side programming; Web services; Web servers; Emerging technologies; Security; Standards & Standard Bodies; Techniques for web interface design; User-centered design; Visual development environments and development tools; Measure the effectiveness of interface design. Pre: consent of instructor

IT 584 (4) Software Engineering

This is a course in software engineering that introduces the student to all important aspects of the discipline. The main purpose of this course is to stimulate the engineering of a software product, from gathering requirements through implementation and maintenance. The course emphasizes a traditional development methodology. Students will be introduced to Visual Basic and Microsoft Project, but the emphasis of the course will be on principles of software engineering including project planning, requirements gathering, size and cost estimation, analysis, design, coding, testing, and implementation. Pre: consent of instructor

IT 588 (4) Rapid Application Development

In-depth understanding of low and high CASE tools and rapid application development. CASE tools will range from the traditional software development life cycle to object-oriented client/server environments. Extensive team-oriented applications will be developed using tools such as SYNON, OBSYDIAN, Power Builder, and MSSQL server. Pre: consent of instructor

IT 597 (1-12) Internship

Provides students with opportunity to utilize their training in a real-world business environment working under the guidance and direction of a faculty member. (A maximum of 4 credits apply toward a degree in this department) Pre: consent Fall, Spring, Summer

IT 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

IT 601 (3) Research Topics

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

IT 602 (1) Research Seminar

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

IT 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

IT 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

IT 640 (3) Advanced Database Systems

In-depth study of advanced topics such as object-oriented databases, intelligent database systems, parallel databases, database mining and warehousing, distributed database design and query processing, multi-database integration and interoperability, and multilevel secure systems. Prerequisite: CS 540

IT 641 (3) Distributed Database Processing

Introduction to distributed database systems, resource allocation, homogenous vs. heterogeneous databases, schema integration, distributed concurrency control and recovery, and other topics dealing with distributed database processing. Prerequisite: CS 540

IT 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: IT 562 or 564

IT 677 (1-4) Individual Study

Problems on an individual basis. Prerequisite: consent

IT 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

IT 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

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

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

IT 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

IT 699 (1-6) Thesis

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