Skip global navigation
St. Cloud State University

St. Cloud State University

Computer Science (CSCI) Graduate Course Descriptions

CSCI 502. Introduction to the Theory of Computation.
Regular languages, finite-state automata, context-free languages, grammars, push-down automata, Turing machines, Church's thesis, the halting problem and computability. Prereq.: 320, and MATH 253 or 373. 3 credits DEMAND.

CSCI 503. Theory, Design and Construction of Compilers.
Formal grammars, lexical analysis, symbol tables, syntax analysis and parsing, type checking, code generation, code optimization. Prereq.: 320, 330, and MATH 373. 4 credits DEMAND.

CSCI 504. Design and Analysis of Algorithms.
Computing time functions; maximum, minimum and average computing time of various algorithms. Prereq.: 331, MATH 253 or 373. 3 credits DEMAND.

CSCI 511. Database Theory and Design.
Principles of database systems, theory of relational databases, design techniques, concurrency control and recovery, object-oriented systems. Prereq.: 331. 3 credits DEMAND.

CSCI 512. Distributed Systems Principles.
Distributed systems architecture. Process synchronization. Distributed operating systems, file systems and database systems. Projects. Prereq.: 311. 3 credits DEMAND.

CSCI 513. Computer Networks.
Computer network architecture. The OSI seven-layer reference model and communication protocols. Network services. Projects for current applications. Prereq.: 311. 3 credits DEMAND.

CSCI 530. Object-Oriented Software Development.
Techniques for identifying and specifying objects, object classes and operations in designing software. Development of a major project using object-oriented analysis, design and programming techniques. Prereq.: 301 or permission of instructor. 3 credits DEMAND.

CSCI 531. Software Engineering I.
Introduction to the history and goals of software development, software specification and specification languages, requirements and requirements languages. FSA specification techniques. Software engineering design tools and testing. Lab. Prereq.: 311, 330. 5 credits DEMAND.

CSCI 532. Software Engineering II.
Continuation of Software Engineering I. Verification and validation in the design of software and throughout the life cycle. Quality assurance and control, software evolution. Performance emphasis on metrics and models. Lab. Prereq.: 431. 5 credits DEMAND.

CSCI 540. Introduction to Artificial Intelligence.
Heuristic versus deterministic methods, game playing programs, theorem proving programs, decision making programs. Prereq.: 330, MATH 253 or 373. 3 credits DEMAND.

CSCI 541. Neural Networks.
Natural and artificial neural networks. Back propagation, conjugate gradients, cascade-correlation training methods, associative memory. Self-organizing nets, adaptive resonance nets, Hopfield nets, constraint satisfaction networks. Design and applications. Prereq.: 320 or permission of instructor. 3 credits DEMAND.

CSCI 542. Expert Systems.
Theory and applications of expert systems. Knowledge acquisition and representation. Inference techniques. An expert system language. Design and evolution of expert systems. Prereq.: 301. 3 credits DEMAND.

CSCI 543. Evolutionary Computation.
Population-based search heuristics inspired by biological evolution. Representations and operators. Specifying parameter values. Hybridization with local search and other search strategies. Constraint handling. Theory. Prereq.: 591 or equivalent, MATH 373 or equivalent. 3 credits DEMAND.

CSCI 550. Computer Graphics.
Algorithms, data structures and techniques for generating graphics. Graphics hardware, display primitives, geometric transformations, perspective projection, clipping and user interaction. Prereq.: 320. 3 credits DEMAND.

CSCI 575. Advanced Topics in Computer Science.
An in-depth study of one or more issues in contemporary computer science not covered in other computer science courses. May be repeated to a maximum of six credits. Prereq.: consent of instructor. 1-6 credits DEMAND.

CSCI 591. Preparatory Data Structures and Algorithms.
Review of programming constructs, abstraction, data structures and algorithms for graphs, trees, strings, sorting and searching. 3 credits DEMAND.

CSCI 592. Preparatory Computer Architecture.
Computer architecture fundamentals. 3 credits DEMAND.

CSCI 593. Preparatory Systems Software.
Concepts of processes, process synchronization and scheduling. Management of primary and secondary storage. File and file systems structure. 3 credits DEMAND.

Computer Science (CSCI) Courses for Graduate Students Only

CSCI 601. Recursive Function Theory.
Computable and primitive recursive functions. Pairing functions and Godel numbers. A universal program and the halting problem. Recursively enumerable sets. Diagonalization. Prereq.: 402 or equivalent. 3 credits DEMAND.

CSCI 602. Models of Computation.
Computation on strings. Turing machines and the halting problem. Processes, grammars and unsolvable problems. Classifying unsolvable problems. Prereq.: 601. 3 credits DEMAND.

CSCI 604. Advanced Data Structures.
Advanced techniques for data representation and manipulation and their analysis. Implementation of algorithms that use these techniques. Prereq.: permission of instructor. 3 credits DEMAND.

CSCI 606. Introduction to Parallel Computing.
Parallel programming, parallel algorithms, an applications. Architectures, principles of parallel algorithm design, the MPI and open MP programming models. 3 credits DEMAND.

CSCI 610. Advanced Concepts in Operating Systems.
Security process synchronization. Distributed operating systems. Fault tolerance. Performance analysis. Prereq.: 311. 3 credits DEMAND.

CSCI 615. Computer Security.
Issues and techniques in computer security. Fundamentals of computer security and current problems. Prereq.: 311. 3 credits DEMAND.

CSCI 620. Advanced Computer Architecture.
Advanced computer architectures; quantitative principles of design and performance evaluation; parallel processing, multiprocessing. Prereq.: 320 or equivalent. 3 credits DEMAND.

CSCI 621. VLSI Design and Testing.
Principles of CMOS VLSI design and algorithms for IC layout. Digital faults, how to test for them and how to design digital circuits that facilitate testability. Prereq.: 504. 4 credits DEMAND.

CSCI 641. Machine Vision and Manipulators.
Human and machine vision. Image processing algorithms. Mathematical description and analysis of robot manipulators. Prereq.: 440 or equivalent. 3 credits DEMAND.

CSCI 642. Natural Language Processing.
Formal and natural languages. Grammars and parsing. Ambiguity resolution. Semantics. Scoping of noun phrases. Knowledge representation and reasoning. Prereq.: 440 or equivalent. 3 credits DEMAND.

CSCI 644. Graduate Internship.
An internship of not less than 10 weeks, with any organization performing duties that are relevant to the student’s course of study. May be repeated for a maximum of 6 credits. S/U only. Prereq.: completion of one year in the computer science graduate program. 1-6 credits DEMAND.

CSCI 680. Seminar in Computer Science.
Seminar in current topics in computer science. May be repeated to maximum of six credits. Prereq.: graduate standing and consent of instructor. 1-2 credits DEMAND.

CSCI 681. Technical Presentation in Computer Science.
Oral presentation with appropriate visual aids on current topics in computer science for a select audience. Prereq.: one semester of graduate coursework and permission of instructor. 1 credit

CSCI 696. Research in Computer Science.
Supervised graduate research on advanced computer science topics. Research analysis and reporting. 1-3 credits DEMAND.

CSCI 697. Master’s Project/Starred Paper.
Master’s project for students following Plan B. 3 credits DEMAND.

CSCI 699. Thesis in Computer Science.
Prereq.: graduate standing in computer science and consent of student's committee. 1-6 credits F, S, SUM.