Computer Science

Undergraduate Programs

Description

The Computer Science major prepares graduates for positions in computer-related fields and for graduate study. Computer science as a field spans a wide range of topics from theoretical and algorithmic foundations to cutting-edge developments in operating system design and implementation, machine learning, robotics and intelligent systems. 

In the upper-division program, students earn their degrees by completing four semester-long team projects that come from industry, faculty research, non-profit groups, or their own entrepreneurial ideas. Project solutions require knowledge from multiple aspects of computer science so theory learned in technical courses is integrated through application. Student project teams can include students at different stages in their degrees, pooling their knowledge and experience to develop their skills in computing, software design, and professionalism. 

A computer science minor prepares students to apply the tools and theory of computer science to whatever their major field of study is. Applications in art, biology, physics, chemistry, engineering, cognitive science, music, and the social sciences can benefit from a deeper understanding of computer science. 

Majors

Program Locations Major / Total Credits
Computer Science BS BS - Bachelor of Science
  • Mankato
76 / 120

Minors

Program Locations Total Credits
Computer Science Minor
  • Mankato
28

Policies & Faculty

Policies

Admission to the Major is required before students are permitted to take 300- and 400-level courses in computer science.

Students with declared majors in computer engineering or cognitive science or with a declared computer science minor will be given permission to take upper-division required or elective computer science courses where they meet the pre-requisites.

Application to Major.

To be considered for admission to the computer science major, the student must meet the following requirements:

  • Completion of ENG 101, CIS 223, CIS 224 and MATH 280 with grades of "C" or better.
  • A cumulative GPA of 2.5 or higher in required lower-division Math and CIS courses (or their equivalents).
  • Completion of an application form including essay(s) and a letter of recommendation.

Admission to the Computer Science upper-division program is selective and subject to the approval of the Computer Science program faculty. Admission to the Computer Science program also requires the completion of the application found at the following website: cset.mnsu.edu/cs. Each application will be evaluated individually and the decision of Computer Science program faculty will be final. Failure to submit an application by stated deadline could result in the student being denied admission to the program. If a student is denied admission to the Integrated Engineering Program, he/she can reapply to the program for admission in subsequent years.

A. Minnesota State Mankato students. This application form (cset.mnsu.edu/cs) is submitted to the Computer Science program along with a copy of the student’s Minnesota State Mankato transcript and any transfer evaluations. Pre-engineering students at Minnesota State Mankato are not guaranteed admission to the program.

B. Transfer Students. Transfer students must submit an application to Minnesota State Mankato and follow all transfer policies. Students may be able to complete the required pre-engineering curriculum at another college or university and have these courses and credits transferred to Minnesota State Mankato, when applying for admission to the Computer Science Program. Along with applying to the University, students must apply directly to the program using this application form (cset.mnsu.edu/cs), which is submitted to the Computer Science program along with an unofficial copy of the student’s transcripts.

GPA Policy.

A GPA of 2.5 or higher in courses required for a major or minor in Computer Science is required for graduation. This GPA requirement is calculated and must be maintained for each of the following areas: 1) for the combined Required General Education and Required Support Courses, or their substitutions, if any; 2) for the Required for Major, Required Electives courses and Minor courses. Refer to the College regarding required advising for students on academic probation.

Grading Policy.

All coursework applied towards the major or minor, including required general education and support courses, must be taken for a letter grade except for courses offered only as P/N. A minimum grade of "C-" is required in all courses which are to be applied towards a departmental major or minor program, including those required courses which are in supporting areas (such as ENG 271W or CMST 100). In addition, a minimum grade of "C-" is required for all prerequisite courses unless a higher grade is noted in the admission requirements. Grades of "D" are not accepted by the department.

Incomplete Policy.

An incomplete grade for a course will generally be given only under two conditions. The first condition is illness — a doctor’s written recommendation must be supplied. The second condition arises when a death in the student’s family has caused the student to be away from the campus for an extended period of time. The student must have a satisfactory grade ("C-" or better) in the course at the time of the onset of the condition.

Residency.

At least 50 percent of the computer science credits required for a major or minor from this department must be earned at Minnesota State University, Mankato. Completion of the degree requires completion of four projects.

Contact Information

273 Wissink Hall

Main Office (507) 389-1412
http://cset.mnsu.edu/cs
https://cset.mnsu.edu/departments/computer-information-science/

Faculty

CS Advisor
  • Rebecca Bates
CS Advisor
  • Lin Chase
CS Advisor
  • Jonathan Hardwick
CS Advisor
  • Guarionex Salivia
Chair Integrated Engineering
  • Rebecca Bates
Chair Computer Information Science
  • Sarah Kruse
Faculty

100 Level

Credits: 3

This course provides fundamental conceptual, mathematical, and logical tools for students wishing to major in Computer Science. Topics include hardware concepts, number systems, computer arithmetic, counting, sets and functions, logic, simple induction, etc. Coreq: Math 112

Prerequisites: none

Credits: 2

This course provides an introduction to programming using C++. Emphasis on structured programming concepts, with a brief discussion of object-oriented programming. Control structures, expressions, input/ output, arrays, and functions. F, S

Prerequisites: MATH 113 or MATH 115

200 Level

Credits: 4

Course will explore the interplay between science fiction (1950s-present) and the development of artificial intelligence. Turing tests, agents, senses, problem solving, game playing, information retrieval, machine translation robotics, and ethical issues. Variable

Prerequisites: none

Goal Areas: GE-06, GE-09

Credits: 2

C++ syntax for students who already know Java. Specific topics are: data types, operators, functions, arrays, string operations, pointers, structures, classes, constructors, destructors, pointers as class members, static classes, the this pointer, operator functions, data type conversions, inheritance, polymorphism, and dynamic binding.VariablePrereq: Consent

Prerequisites: Consent 

Credits: 4

Investigates efficient data structuring techniques to support a variety of operations in different problem scenarios. Topics include binary trees, binary search trees, multiway search trees, hashing and hash tables, priority queues, and algorithm analysis for best, worst and average cases.Fall, Spring

Prerequisites: CS 111 and MATH 121

Credits: 4

Fundamentals of data mining and knowledge discovery. Methods include decision tree algorithms, association rule generators, neural networks, and web-based mining. Rule-based systems and intelligent agents are introduced. Students learn how to apply data-mining tools to real-world problems.

Prerequisites: CIS 121

Credits: 3

An introduction to graphical programming environments. Topics include data and data types, repetition, selection, data acquisition, data dependency, efficiency, modular program construction, array processing, debugging, and visualization.

Prerequisites: EET 113, MATH 121

Credits: 1

This class provides MAX scholars with an opportunity to explore a set of topics related to achieving success in academic, professional and personal realms. Speakers will include faculty, graduate students, visiting researchers and industry members as well as student participants.Fall, SpringRereq: Recipient of a MAX scholarship or instructor consent

Prerequisites: Recipient of a MAX scholarship or instructor consent

Credits: 1-3

Workshop topics will be announced. Workshops on different topics may be taken for credit.

Prerequisites: Consent of instructor

Credits: 1

Provides students interested in a computer science major or minor an opportunity to explore topics not normally covered in the curriculum. Speakers will include faculty, graduate students, undergraduate students admitted to the Computer Science major, visiting researchers and industry members.Fall, Spring

Prerequisites: none

Credits: 1-2

Special topics not covered in other 100 or 200-level courses. May be repeated for each new topic.Variable

Prerequisites: none

300 Level

Credits: 4

A team-based capstone experience for the mid-point of the CS program. Students are introduced to principles and methodologies of large-scale software development and engineering by working on a full life-cycle software project solving a substantial problem using multiple CS concepts.Spring

Prerequisites: CS 210 and CS 220

Credits: 2

This course introduces the foundational concepts of operating systems including operating systems principles, concurrency, scheduling, dispatch, and memory management and prepares students for advanced topics in operating systems.

Prerequisites: CIS 223, CIS 224 or EE 234, and admission to major.

Credits: 2

This course introduces the foundational concepts of software engineering, and parallel and distributed computing and prepares students for advanced topics in these areas.

Prerequisites: CIS 223, CIS 224, and admission to major.

Credits: 2

This course introduces the foundational concepts of programming languages, including the principles of language design, language constructs, and comparison of major languages. Topics include formal methods of examining syntax and semantics of languages and lexical analysis of language components and constructs, and propositional and predicate calculi.

Prerequisites: CIS 223, CIS 224, and admission to major.

Credits: 2

This course introduces the foundational concepts of Information Management, Database Systems, Data Modeling, Data Security, Secure Design, Defensive Programming, Security and Cryptography.

Prerequisites: CIS 223, CIS 224, and admission to major.

Credits: 2

An introduction to data communications and networks. The field encompasses local area networks, wide area networks, and wireless communication. Topics include digital signals, transmission techniques, error detection and correction, OSI model, TCP/IP model, network topologies, network protocols, and communications hardware.

Prerequisites: CIS 223 and CIS 224 or EE 234

Credits: 3

Algorithm design and analysis is central to much of computer science. This course exposes students to fundamental algorithm design and analysis techniques. Topics include many of the basic topic areas of computer science: searching, sorting, numeric computation, data representation, communication.Fall

Prerequisites: CS 210

Credits: 4

An introduction to methods, algorithms, and tools of cryptography. We will study the algorithmic and mathematical aspects of cryptographic methods and protocols. We will experiment with how they can be used to solve particular data and communication security problems. Prerequisite: CS 305 or permission of instructor.

Prerequisites: CS 305 or permission of instructor.

Credits: 3

This course presents historical and current concepts and implementations of computer organization. Topics include instruction set design, digital storage, performance metrics, processor datapath and control, pipelining, memory hierarchy, busses and I/O interfacing, and parallel processors.Spring

Prerequisites: CS 111 and CS 220, or EE 334

Credits: 4

This course provides an introduction to the theory and practice of neural computation. The goal is to familiarize students with the major models, techniques, and problems of neural network computation and to provide hands-on experience using these things. Topics include neural network models, supervised and unsupervised learning, associative memory models, and data representation.

Prerequisites: CS 230

Credits: 3

This course covers the fundamentals of database management focusing on the relational data model. Topics include database organization, file organization, query processing, concurrency control, recovery, data integrity, optimization and view implementation. Fall

Prerequisites: CS 210 and CS 320

Credits: 3

An introduction to data communications and networks. The field encompasses local area networks, wide area networks, and wireless communication. Topics include digital signals, transmission techniques, error detection and correction, OSI model, TCP/IP model, network topologies, network protocols, and communications hardware.Spring

Prerequisites: CIS 223, EE 234

Credits: 1

A laboratory in conjunction with CS 350.

Prerequisites: CS 305 or EE 234. Permission of instructor

Credits: 3

This course focuses on machine level I/O and operating system file processing. Structure of systems programs including assemblers, linkers, and object-oriented utilities and interfaces. Students will gain experience in writing utility programs and extensions to operating systems.Fall

Prerequisites: CS 111 or EE 107, and CS 320

Credits: 3

This course introduces the student to Windows programming in C++ using the Application Programming Interface. Windows programs are created in a visual development environment which includes editing and code generating facilities. Hands-on programming skills are developed in the lab.Variable

Prerequisites: CS 210

Credits: 3

The course introduces the student to graphics and game programming. Graphics programming topics addressed include modeling, rendering, and animation of vector-based components and bitmaps. Programs are created using a current graphics and game development environment.

Prerequisites: CS 210, CS 220, MATH 121

Credits: 3

Fundamental concepts of programming languages, including the principles of language design, language constructs, and comparison of major languages. Topics: formal methods of examining syntax and semantics of languages and lexical analysis of language components and constructs, and propositional and predicate calculi.Fall

Prerequisites: CS 210

Credits: 3

Students are introduced to techniques used in the analysis and design of software systems. Traditional techniques are reviewed and current methodologies for both object-oriented and procedural systems are studied. Standard notations used to document software requirements and designs are presented.Spring

Prerequisites: CS 300

Credits: 4

Students learn and practice the essential elements of computer science through research, classical problem or industry project implementation: scoping, modeling, experimentation, analysis, modern tools, creativity, business plans, and global/societal/environmental impacts. Students learn and develop the elements of professionalism while operating in project teams. Topics include leadership, metacognition, teamwork, written and oral communication, ethics and professional and personal responsibility. Course must be taken concurrently with CS 495.

Prerequisites: CIS 223 and MATH 280

Credits: 4

Students learn and practice the essential elements of computer science through research, classical problem or industry project implementation: scoping, modeling, experimentation, analysis, modern tools, creativity, business plans, and global/societal/environmental impacts. Students learn and develop the elements of professionalism while operating in project teams. Topics include leadership, metacognition, teamwork, written and oral communication, ethics and professional and personal responsibility. Course must be taken concurrently with CS 495.

Prerequisites: CIS 223 and MATH 280

Credits: 4

Students further learn and practice the essential elements of computer science through research, classical problem or industry project implementation: scoping, modeling, experimentation, analysis, modern tools, creativity, business plans, and global/societal/environmental impacts. Students continue to learn and develop the elements of professionalism while operating in project teams. Topics include leadership, metacognition, teamwork, written and oral communication, ethics and professional and personal responsibility. Course must be taken concurrently with CS 495.

Prerequisites: CS 391

Credits: 4

Students further learn and practice the essential elements of computer science through research, classical problem or industry project implementation: scoping, modeling, experimentation, analysis, modern tools, creativity, business plans, and global/societal/environmental impacts. Students continue to learn and develop the elements of professionalism while operating in project teams. Topics include leadership, metacognition, teamwork, written and oral communication, ethics and professional and personal responsibility. Course must be taken concurrently with CS 495.

Prerequisites: CS 391W

400 Level

Credits: 3

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

Prerequisites: CS 300 and MATH 121

Credits: 2

Study of theory and/or implementation topics related to operating systems such as security and protection, virtual machines, device management, file systems, real time and embedded systems, fault tolerance and system performance evaluation. Prerequisite: Admission to Major or Permission

Prerequisites: none

Credits: 2

Study of theory and/or implementation topics related to programming languages such as syntax analysis, semantic analysis, code generation, runtime systems, static analysis, advanced programming constructs, concurrency and parallelism, type systems, formal semantics, language pragmatics, and logic programming. Prerequisite: Admission to Major or Permission

Prerequisites: none

Credits: 2

Study of theory and/or implementation topics related to networking and computation such as mobility and social networking and expansion of topics covered in CS 306. Prerequisite: Admission to Major or Permission

Prerequisites: none

Credits: 2

Study of theory and/or implementation topics related to algorithms and computing such as advanced computational complexity, automata theory and computability, and advanced data structures algorithms and analysis. This includes 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: what is and is not computable by each of them.

Prerequisites: Admission to major or permission.

Credits: 2

Study of theory and/or implementation topics related to parallel and distributed computing such as parallel algorithms, architecture, and performance, distributed systems, cloud computing, and formal models and semantics. These have been called techniques for High Performance Computing. Topics also include 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.

Prerequisites: Admission to major or permission.

Credits: 2

Study of theory and/or implementation topics related to computer architecture and organization such as functional organization, multiprocessing and alternative architectures, and performance enhancements. This includes 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.

Prerequisites: Admission to major or permission.

Credits: 3

This course provides an overview of embedded and real-time systems including design principles, methodologies, design tools and problem solving techniques. Students design and build a real-time operation system with a microprocessor to host real-time service data processing using sensor/actuator devices.Variable

Prerequisites: CS 210 and CS 320

Credits: 3

Basic introductory concepts and a history of the field of Artificial Intelligence (AI) 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.Fall (ALT)

Prerequisites: CIS 223 or CS 230

Credits: 3

Computational linguistics topics covered include regular expressions, finite state automata, information theory, context free grammars, hidden Markov models and Viterbi algorithms. Students will work on problems within the field including parsing, machine translation, speech recognition, information extraction and parsing.Fall (Alt)

Prerequisites: CIS 223 or CS 230

Credits: 3

A blend 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.Spring-Alt

Prerequisites: CS 210 and STAT 354

Credits: 2

Study of theory and/or implementation topics related to intelligent systems such as Basic Search Strategies, Basic Knowledge Representation and Reasoning, Basic Machine Learning, Advanced Search, Advanced Representation and Reasoning, Reasoning Under Uncertainty, Agents, Natural Language Processing, Advanced Machine Learning, Robotics, and Perception and Computer Vision. Prerequisite: Admission to Major or Permission

Prerequisites: none

Credits: 2

Study of theory and/or implementation topics related to information management such as indexing, relational databases, query languages, transaction processing, distributed databases, physical database design, data mining, information storage and retrieval and multimedia systems. Prerequisite: Admission to Major or Permission

Prerequisites: none

Credits: 2

Study of theory and/or implementation topics related to information assurance and security, such as defensive programming, threats and attacks, network security, cryptography, web security, platform security, security policy and governance, digital forensics, and secure software engineering. Prerequisite: Admission to Major or Permission

Prerequisites: none

Credits: 2

Study of theory and/or implementation topics related to computational science such as modeling and simulation, processing, interactive visualization, data, information and knowledge, and numerical analysis. Prerequisite: Admission to Major or Permission

Prerequisites: none

Credits: 3

As an advanced coverage of data communication, this course explores principles, protocols, and performance evaluation techniques of advanced networking technologies. Topics include error detection and recovery, flow control, routing, data throughput, and performance analysis of existing and emerging Internet protocols. Variable

Prerequisites: CS 350 and STAT 354

Credits: 3

Emerging mobile and wireless data networks technologies covered include standard wireless protocols (e.g., Bluetooth, IEEE 802.11, RFID, and WAP), and development of mobile and wireless applications (e.g., J2ME, WML, Brew). Includes research, design and implementation of a wireless, mobile application.Variable

Prerequisites: CS 320 and CS 350

Credits: 4

This course studies the problems, methods, and algorithms of computational geometry. We will focus on the core problems and categories of the discipline: static problems, geometric query problems, and dynamic problems. Some additional attention will be given to numerical geometric problems (e.g., parametric surfaces). Prerequisite: CS 305 and Math 247 or permission of instructor.

Prerequisites: CS 305 and Math 247 or permission of instructor.

Credits: 3

This course studies 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.Spring

Prerequisites: CIS 223 or EE 395

Credits: 1

A laboratory in conjunction with CS 460.

Prerequisites: CS 305, EE 395. Permission of instructor

Credits: 2

Study of theory and/or implementation topics related to graphics and visualization such as basic and advanced rendering, geometric modeling, computer animation and visualization. Topics include game programming with concentration 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.

Prerequisites: Admission to major or permission.

Credits: 2

Study of theory and/or implementation topics related to human computer interaction such as designing interaction, programming interactive systems, user-centered design and testing, new interactive technologies, collaboration & communication, statistical methods for HCI, human factors and security, design-oriented HCI, and mixed, augmented and virtual reality. This course builds on the use of modern compilers. Related topics covered include lexical scanning, parsing, type checking, code generation and translation, optimization, and compile-time and run-time support for modern programming languages.

Prerequisites: Admission to major or permission.

Credits: 2

Study of theory and/or implementation topics related to software engineering such as software processes, project management, requirements engineering, software design, construction, verification and validation, reliability, and formal methods. These relate to advanced programming for general-purpose software development. Topics include tools and processes appropriate for employing object-oriented designs and programming within a significant software development environment and advanced data structures and algorithms, graphical user interfaces, and software development processes.

Prerequisites: Admission to major or permission.

Credits: 3

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

Prerequisites: CS 300, CS 380 and MATH 121

Credits: 3

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

Prerequisites: CS 300, CS 380 and MATH 354

Credits: 2

Study of topics theory and/or implementation related to the fundamental differences that Platform-Based Development has over traditional software development addressing topics such as Web Platforms, Mobile Platforms, Industrial Platforms, and Game Platforms. Prerequisite: Admission to Major or Permission

Prerequisites: none

Credits: 4

Students gain experience working with a team to solve a substantial problem in the field of computer science using concepts that span several topic areas in computer science. Class time focuses primarily on project design and implementation.SpringPrereq: Senior standing and successful completion of all core requirements

Prerequisites: Senior standing and successful completion of all core requirements.

Credits: 4

The first in a two-semester sequence of capstone design. Students build on the experience gained in CS 391W/392W to bring their research or project implementation and leadership to that expected of contributing computer scientists in industry or research. Course must be taken concurrently with CS 495.

Prerequisites: CS 301, CS 302, CS 303, CS 304, CS 392

Credits: 4

The first in a two-semester sequence of capstone design. Students build on the experience gained in CS 391W/392W to bring their research or project implementation and leadership to that expected of contributing computer scientists in industry or research. Course must be taken concurrently with CS 495.

Prerequisites: CS 301, CS 302, CS 303, CS 304, CS 392W

Credits: 4

The second in a two-semester sequence of capstone design and the fourth project class overall. Students build on the experience gained in CS 391W/392W to bring their research or project implementation and leadership to that expected of contributing computer scientists in industry or research. Expectations include public presentation of project work, patent applications, and/or plan for commercialization of project. Course must be taken concurrently with CS 495.

Prerequisites: CS 491 and (CS 306, CS 401, CS 403, CS 406, CS 410, CS 420, CS 435, CS 440, CS 445, CS 450, CS 465, CS 470, CS 480, or CS 485)

Credits: 4

The second in a two-semester sequence of capstone design and the fourth project class overall. Students build on the experience gained in CS 391W/392W to bring their research or project implementation and leadership to that expected of contributing computer scientists in industry or research. Expectations include public presentation of project work, patent applications, and/or plan for commercialization of project. Course must be taken concurrently with CS 495.

Prerequisites: CS 491W and (CS 306, CS 401, CS 403, CS 406, CS 410, CS 420, CS 435, CS 440, CS 445, CS 450, CS 465, CS 470, CS 480, or CS 485)

Credits: 1

This class is for MAX scholars and covers topics related to achieving success in academic, professional and personal realms. Speakers will include faculty, graduate students, visiting researchers and industry members. Students will mentor lower division scholars and do presentations.Fall, SpringPrereq: Recipient of a MAX scholarship or instructor consent

Prerequisites: Recipient of a MAX scholarship or instructor consent 

Credits: 1-3

Workshop topics will be announced. Workshops on different topics may be taken for credit.

Prerequisites: Consent of Instructor

Credits: 1

Students learn about computer science practice through seminars with faculty, graduate students, undergraduate students admitted to the CS major, visiting researchers, and industry members. CS students are assisted in their development as learners and professional citizens through workshops. This course is repeated by upper-division Computer Science students every semester.

Prerequisites: Admission to major.

Credits: 1-4

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

Prerequisites: Consent

Credits: 1-6

This course is designed to provide students with an opportunity to utilize their training in a real-world environment. Participants work under the guidance and direction of a full-time staff member. (At most 4 hours towards the CS major.)Prereq: Permanent admission to the CS major, CS 300, consent

Prerequisites: Permanent admission to the CS major, CS 300, consent.

Credits: 4

Advanced study and research required. Topic of the senior thesis determined jointly by the student and the faculty advisor.Fall, Spring Prereq: Senior standing and consent

Prerequisites: Senior standing and consent

Credits: 1-4

Problems in the field of computer science are studied on an individual basis under the guidance of a faculty mentor.Fall, Spring Prereq: Consent

Prerequisites: Consent