Upper Level Course Descriptions
(Effective Fall 2009)

(This list only has 4000-level courses. The 1000-, 2000- and 3000-level courses are listed as lower level undergraduate courses.) Up to 16 credits at the 4000 level may be taken for graduate credit.

   CS 4000: Senior Seminar
   CS 4090: Special Topics in Computer Science
   CS 4099: Directed Study in Computer Science
   CS 4121: Programming Languages
   CS 4131: Compiler Construction
   CS 4321: Intro to Algorithms
   CS 4331: Intro to Parallel Programming
   CS 4411: Intro to Operating Systems
   CS 4421: Database Systems
   CS 4431: Computer Architecture
   CS 4451: Network Administration
   CS 4461: Computer Networks
   CS 4471: Computer and Network Security
   CS 4481: Performance Analysis
   CS 4611: Computer Graphics: Foundations of Computer Graphics
   CS 4710: Model-Driven Software Development
   CS 4711: Software Processes and Management
   CS 4712: Software Quality Assurance
   CS 4750: Teaching Methods in Computer Science
   CS 4760: Human-Computer Interactions
   CS 4791: Senior Software Engineering Project I
   CS 4792: Senior Software Engineering Project II
   CS 4811: Artificial Intelligence

CS 4000 Senior Seminar (0-3-0) f,s 3

Topics include ethicalmodels, legal issues, privacy and security, social responsibility, professional responsibility and service, and the future of computing.
Prerequisite: CS3141 and Senior Standing

CS 4090 Special Topics in Computer Science (On Demand) 1-4

Special topics in computer science offered on occasion based on student and faculty demand and interest.

CS 4099 Directed Study in Computer Science f,s,su 1-4

Students study one or more special topics in computer science under the direction of one or more faculty members. May be repeated to a maximum of 6 credits.

CS 4121 Programming Languages (0-3-0) f,s 3

A discussion of the concepts underlying programing languages. Topics include programming paradigms: language properties (including syntax, semantics, run-time behavior, and implementation issues); data, procedure, functional, and control abstraction; functional programming; and logic programming.
Prerequisites: CS2141 and CS3311 and CS3421

CS 4131 Compiler Construction (0-3-1) s 4

Introduction to compilation techniques. Topics include parsing, syntax-directed translation, run-time storage management, error recovery, code generation and optimization. A significant project is required.
Prerequisite: CS 4121

CS 4311 Introduction to Computation Theory (0-3-0) f, 3

Provides deeper insight into the powerof computing using various models of computation. Topics reviewed include proof techniques, finist automata, regular languages, pushdown automata, and context-free languages. Topics covered include turing machines and their vaiants, the halting problem and decidability, Rice's theorem, computability, time complexity, reducibility, NP-completeness, space complexity, machine self reference, recursion and fixed point theorems, s-m-n theorem.
Prerequisite: CS 3311

CS 4321 Introduction to Algorithms (0-3-0) f,s 3

Fundamental topics in algorithm design, analysis, and implementation. Analysis fundamentals include asymptotic notation, analysis of control structures, solving recurrences, and amortized analysis. Design and implementation topics include sorting, searching, and graph algorithms. Design paradigms include greedy algorithms, divide-and-conquer algorithms, and dynamic programming.
Prerequisites: CS 1721 and CS 2311 and CS 2321

CS 4331 Introduction to Parallel Programming (0-3-0) (On Demand) 3

Introduction to developing parallel programs and solving problems using multiple concurrent processes. Shared memory and message passing paradigms are studied. Topics include conceptual models of parallel programming, basic analysis of parallel languages, parallel computing architecture, domain decomposition, and load balancing. Traditional computer science applications and numerical applications are also studied.
Prerequisites: CS 3421 and CS4321

CS 4411 Introduction to Operating Systems (0-3-1) f,s 4

This course presents topics on program representation and execution, operating systems, process and threads, process scheduling, memory management and file systems. Programming homework is required.
Prerequisites: CS 2141 and CS 3421

CS 4421 Database Systems (0-3-0) s 3

Topics include goals of database management; data definition; data models; data normalization; data retrieval and manipulation; security, integrity, and privacy measures; file, data, and storage organization; object-database systems; and, parallel and distributed databases. Surveys a number of general database systems, and examines in detail at least one database system.
Prerequisites: CS 4321 or CS 4411

CS 4431 Computer Architecture (0-3-3) f, s 4

Architecture of high-performance parallel computer systems. Introduces various forms of parallelism, such as multiple functional units, pipelining, multiprocessors, and processor arrays. Interleaved memory, caching, and interconnection networks are also covered. Includes analytic and simulation models of architectural features that implement or support parallel processing.
Prerequisite: CS 3421

CS 4451 Network Administration (0-3-3) s 4

Administration of computer networks. Topics include: TCP/IP networking, mail, printing, configuring and building kernels, remote file systems, license management, manging web systems, common network administration services.
Prerequisites: CS 3451 and CS 4461(C)

CS 4461 Computer Networks (0-3-0) s 3

Computer network architectures and protocols: design and implementation of datalink, network, and transport layer functions. Introduction to the Internet protocol suite and to network tools and programming.
Prerequisites: CS 4321 and CS 4411

CS 4471 Computer and Network Security (0-3-0) f 3

Development of administration of secure software systems. Topics include: principles of software development, practical cryptography, program security, operating system security, network security, database security, administration, legal and ethical issues.
Prerequisite:CS 3411 or CS 4411

CS 4481 Performance Analysis (0-3-3) s 4

Analysis of the performance of computer systems. Topics include measurement techniques and tools, probability theory and statistics, experiment design and analysis, simulation, queuing models. Course includes a significant experimental component.
Prerequisites: CS 4411 and MA 2720

CS 4611 Computer Graphics: Foundations (0-3-0) f 3

Introduction to interactive computer graphics. Topics include graphics terminology, 3D viewing, 3D transformation, interactive techniques, use of graphics input devices, projections, modeling, lighting, texturing, evaluators, and graphics algorithms. Requires substantial programming homework.
Prerequisite: CS 2141

CS 4710 Model-Driven Software Development (0-3-0) (On Demand) 3

The focus of this course is on the use of formal models throughout the software development life cycle. Topics include formal specification of requirements, behavioral modeling, automated analysis, architectural styles and design specification.
Prerequisites: CS 3141 and CS3311(C)

CS 4711 Software Processes and Management (0-3-0) (On Demand) 3

This course focuses on the software development process and related management issues. Topics include software process models, the Capability Maturity Model, process tools, use of standards, software maintenance, configuration management, project planning and tracking, team management, and measurement and estimation.
Prerequisite: CS 3141

CS 4712 Software Quality Assurance(0-3-0) (On Demand) 3

This course covers the notion of software quality and how to ensure quality through the software process. Topics include requirements elicitation, analysis and documentation, usability and accessibility, testing, and quality assurance management.
Prerequisite: CS 3141

CS 4750 Teaching Methods in Computer Science (0-3-0) (On Demand) 3

This course provides teaching methods, models, and experiences for the teaching of computer science in secondary schools. Topics discussed include teaching methods, learning, security and maintenance of equipment, professional journals, ethics, legal issues, diversity, and problem solving. Requires admission to the Teacher Education Program.
Prerequisite: ED 4700

CS 4760 Human-Computer Interactions (0-3-0) s 3

Principles of design and implementation of human-computer interfaces (UI). Topics inlcude: design principles, evaluation, tools and theory. Students experience designing, implementation, and evaluation UIs. Requires completion of a group project implementing a UI. Prerequisite: CS 3141

CS 4791 Senior Software Engineering Project I (0-1-4) (On Demand) 3

A capstone project course. Using software engineering principles and techniques, each student works as part of a team responsible for developing a quality software project.
Prerequisite: CS 4710 or CS 4711 or CS 4712

CS 4792 Senior Software Engineering Project II (0-1-4) f, s 3

A continuation of the capstone project experience intended for Software Engineering majors.
Prerequisite: CS 4791

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

Fundamental ideas and techniques that are used in the construction of problem solvers that use AI technology. Topics include knowledge representation and reasoning, problem solving, heuristics, search heuristics, inference mechanisms, and machine learning.
Prerequisites: CS 1721 and CS 2321 and CS 3311





Please send questions and comments about this CS Web Page to cswebmaster@mtu.edu
Department of Computer Science
Last Updated: Wednesday, July 22,2009