M.S. Courses

   CS 500: Graduate Research in Computer Science
   CS 510: Computation Theory
   CS 515: Design and Analysis of Algorithms
   CS 520: Operating Systems
   CS 525: Analysis of Computer Systems
   CS 531: Program Analysis and Transformation
   CS 535: Advanced Programming Language Concepts
   CS 540: Parallel Algoritms
   CS 550: Software Engineering
   CS 560: Parallel Comptuer Architectures
   CS 580: Artificial Intelligence
   CS 590: Computer Science Seminar
   CS 599: Reading and Research

CS 500 Graduate Research in Computer Science (var to 12) f,w,s,su

The study of an acceptable computer science problem and the preparation of a thesis.
Prerequisite: Permission of Department.

CS 510 Computation Theory (0-4-0) s 4

Properties of context-free, deterministic context-free and LR(K) languages; linear bounded automata and context-sensitive languages; decidability problems; other models of computation--multi-tape and RASP machines; primitive recursive and recursive functions; complexity measures; time and space hierarchies.
Prerequisite:
CS 411

CS 515 Design and Analysis of Algorithms (0-3-3) w 4

This course is a continuation of CS 425 and covers advanced techniqures for design and analysis of computer algorithms. Topics include amortized analysis, divide-and-conquer algorithms, dynamic programming, greedy algorithms, graph algorithms, NP-completeness, approximation algorithms.
Prerequisite:
CS 411 and CS 425; or permission of instructor.

CS 520 Operating Systems (0-3-3) f 4

Principles and design philosophies of operating systems. Topics include process and storage management, deadlocks, determinacy, mutual exclusion, synchronization, interrupts, paging segmentation, swapping schemes, file systems, resource allocation, protection and reliability, processor scheduling and performance anaylsis.
Prerequisites:
CS 440 and CS 450 or the consent of the instructor.

CS 525 Analysis of Computer Systems (0-3-3) w 4

Performance analysis and computer system modeling techniques, both stochastic and analytic. Important issues, including queueing systems, scheduling disciplines and multiprogramming models will be addressed. There will be a project.
Prerequisites:
CS 520, a course in probability and statistics, and a course in discrete simulation techniques or consent of instructor.

CS 531 Program Analysis and Transformation (0-3-3) s 4

Topics include control flow and data flow analysis, program transformations, code generation, run-time systems and considerations for special hardware. A major project is required.
Prerequisite:
CS 430

CS 535 Advanced Programming Language Concepts (0-3-3) w 4

Formal specification of the syntax and semantics of programming languages: VDL, Lambda calculus, and others; proofs of program correctness and termination; semantics of data structures, advanced data types; new high level languages.
Prerequisites:
CS 411 and CS 420

CS 540 Parallel Algorithms (3-0-3) f 4

This course emphasizes principles used in the development of algorithms for parallel computers, including the topics: programming paradigms, implementation, analysis and performance evaluation. Algorithms in the areas of scientific computation and nonnumeric processing are considered, as are software tools for automatic vectorization and parallelization, performance visualization, and debugging. Host machines include shared memory systems, distributed memory systems, and networks of workstations.
Prerequisites:
CS450 and CS 425, or permission of instructor.

CS 550 Software Engineering (0-3-3) f 4

Current issues related to the development of large-scale software. Some topics covered include formal approaches to requirements definition, software specifications and designs, language issues, testing criterion, and management and organizational issues.
Prerequisite:
CS 465

CS 560 Parallel Computer Architectures (0-4-0) w 4

An in depth study of various aspects of parallel processing, with an emphasis on parallel processing architectures. The course will have an analytical focus and will investigate models of various aspects of the design and analysis of parallel processing systems. Topics include: simple uniprocessor/multiprocessor performance models, pipelining, parallel processing and multiprocessor design issues (synchronization, communication, contention), processor array architectures, and algorithms for multiprocessors and processor arrays.
Prerequisites:
CS 450 and MA 321

CS 580 Artificial Intelligence (0-3-3) s

Concepts in artificial intelligence are presented including problem-solving methods: state-space representations, heuristics, production systems, problem reduction methods; knowledge representation: semantic networks, frames, scripts, predicate calculus, augmented transition networks; learning; and natural language understanding.
Prerequisites:
CS 420

CS 590 Computer Science Seminar (var to 5) (on demand)

From time to time, depending on student demand, a seminar will be offered on advanced topics in current Computer Science research.

CS 599 Reading and Research (var to 5) (on demand)

Individual reading and research on current topics in comptuer science.
Prerequisite: consent of instructor

Please send questions and comments about this CS Web Page to cswebmaster@mtu.edu
Department of Computer Science
Last Updated: Monday, August 27, 2001