Upper Level Course Descriptions
(Effective Fall 2008)

(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 4790: Senior Design Project
   CS 4791: Senior Design Project 1
   CS 4792: Senior Design Project 2
   CS 4811: Artificial Intelligence

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

Topics include ethical models: legal issues: privacy and security: social responsibility: professional responsibility and service: and the future of computing. Students will complete the ETS MFT assessment exam.
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 criteria (including syntax, semantics, run-time behavior, and implementation issues); data, procedure, functional, and control abstraction; functional programming; and logic programming.
Prerequisite: CS1721 and CS2321 and CS3311.

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.
Prerequisites: CS 3311 and CS 4411.

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.
Prerequisite: CS 1721 and CS 2311 and CS 2321.

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

A practical introduction to developing parallel programs and solving problems using multiple concurrent processes. The shared memory and the message passing paradigms are studied. Includes conceptual models of parallel programming, basic analysis of parallel algorithms, and practical experience programming with modern parallel languages. Additional topics include parallel computer architecture, domain decomposition, and load balancing. Traditional computer science applications, such as sorting, as well as numerical applications, such as matrix multiplication, are studied.
Prerequisite: CS 3421 and CS4321.

CS 4411 Introduction to Operating Systems (0-4-0) 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.
Prerequisites: CS 3421

CS 4451 Network Administration (0-3-3) f 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.
Prerequisite: CS 3451 and CS 4461.

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.
Prerequisites: MA 3203 and CS 4461.

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 of Computer Graphics (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.
Prerequisites: 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

CS 4711 Software Processes and Management (0-3-0) s 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.
Prerequisites: 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.
Prerequisites: CS 3141.

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

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.
Prerequisites: ED 4700

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

Principles of design and implementation of human-computer interfaces (UI). Topics inlcude: UI design principles, evaluation, tools and theory. Students receive direct experience with the designing, implementation, and evaluation UIs. Required completion of a group project. Prerequisites: CS 3141

CS 4790 Senior Design Project (0-1-4) On demand 3

A one semester course that requires students to apply the principles and techniques of software engineering covered in CS4711 and CS4712. Each student works as part of a team responsible for developing a quality software product.
Prerequisites: CS 4710 or CS 4711 or CS 4712.

CS 4791 Senior Design Project 1 (0-1-4) On demand 3

The first semester of a two semester capstone project experience for students in the Software Engineering Degree Program. Given a major software project, students establish a team structure, determine an appropriate project schedule and scope, and begin development.
Prerequisites: CS 4710 or CS 4711 or CS 4712

CS 4792 Senior Design Project 2 (0-1-4) f, s 3

Students complete the project started in CS 4791. The project is evaluated by the students, and a final presentation is made to the customer.
Prerequisites: CS 4791

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

Fundamental ideas and techniques that are used in the construction of AI problem solvers. Topics include knowledge representation, problem solving, heuristics, search heuristics, inference mechanisms, expert systems, and language understanding.
Prerequisite: CS 4121.





Please send questions and comments about this CS Web Page to cswebmaster@mtu.edu
Department of Computer Science
Last Updated: Tuesday, May 6, 2008