|
|
|
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 4000 Senior Seminar (0-3-0) f,s 3Topics include ethicalmodels, legal issues, privacy and security, social responsibility,
professional responsibility and service, and the future of computing.
CS 4090 Special Topics in Computer Science (On Demand) 1-4Special 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-4Students 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 3A 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.
CS 4131 Compiler Construction (0-3-1) s 4Introduction to compilation techniques. Topics include parsing,
syntax-directed translation, run-time storage management, error recovery, code
generation and optimization. A significant project is required.
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.
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.
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.
CS 4411 Introduction to Operating Systems (0-3-1) f,s 4This course presents topics on program representation and execution,
operating systems, process and threads, process scheduling, memory management and
file systems. Programming homework is required.
CS 4421 Database Systems (0-3-0) s 3Topics 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.
CS 4431 Computer Architecture (0-3-3) f, s 4Architecture 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.
CS 4451 Network Administration (0-3-3) s 4Administration 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.
CS 4461 Computer Networks (0-3-0) s 3Computer 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.
CS 4471 Computer and Network Security (0-3-0) f 3Development 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.
CS 4481 Performance Analysis (0-3-3) s 4Analysis 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.
CS 4611 Computer Graphics: Foundations (0-3-0) f 3Introduction 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.
CS 4710 Model-Driven Software Development (0-3-0) (On Demand) 3The 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.
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.
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.
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.
CS 4760 Human-Computer Interactions (0-3-0) s 3Principles 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) 3A capstone project course. Using software engineering principles and techniques, each student works as part of a team responsible for developing a quality software project.
CS 4792 Senior Software Engineering Project II (0-1-4) f, s 3A continuation of the capstone project experience intended for Software Engineering majors.
CS 4811 Artificial Intelligence (0-3-0) s 3Fundamental 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.
|
|
|
|
|
|
Please send questions and comments about this CS Web Page
to cswebmaster@mtu.edu
Department of Computer Science Last Updated: Wednesday, July 22,2009 |
|