Departmental Courses
CS 1000 - Explorations in Computing
An introduction to the study of computing: fundamental concepts and skills; opportunities at Michigan Tech; career opportunities; social and ethical issues.
- Credits: 1.0
- Lec-Rec-Lab: (0-1-0)
- Semesters Offered: Fall
- Restrictions: Must be enrolled in one of the following Major(s): Computer Engineering, Software Engineering, Computer Science, Computer Systems Science, General Computing, Electrical Engineering; Must be enrolled in one of the following Class(es): Freshman
Linda Ott
- Professor Emerita, Computer Science
- linda@mtu.edu
- 906-487-2315
- Rekhi Hall 211
CS 1090 - Special Topics in Computer Science
Special topics in computer science offered on occasion based on student and faculty demand and interest.
- Credits: variable to 3.0; May be repeated
- Semesters Offered: On Demand
- Restrictions: Permission of instructor required
CS 1121 - Introduction to Programming I
Starting point of the computer science programs. A high-level, object-oriented programming language is introduced as a problem-solving tool. Topics include design, coding, documentation, debugging, and testing of programs. Programming assignments are given in both a closed lab setting and as homework.
- Credits: 3.0
- Lec-Rec-Lab: (0-2-2)
- Semesters Offered: Fall, Spring, Summer
- Pre-Requisite(s): MA 1031(C) or MA 1032(C) or MA 1120(C)
Tagore Kosireddy
- ICC Student Worker - Technical Development
Daniel Masker
- Ph.D. Student, Department of Computer Science
- dtmasker@mtu.edu
- Rekhi 321
Niloufar Mohammadi
- Ph.D. Student, Department of Computer Science
- nmohamm4@mtu.edu
- Rekhi 324
Stella Otoo
- Assistant Teaching Professor, Computer Science
- sotoo@mtu.edu
- 906-487-3602
- Rekhi 102
CS 1122 - Introduction to Programming II
Continuation of CS 1121. Topics include data abstraction, class hierarchies and polymorphism, list, stack, queue and tree data structures, complexity-based algorithm and data structure choices, and recursion. Homework programming assignments are given.
- Credits: 3.0
- Lec-Rec-Lab: (0-2-2)
- Semesters Offered: Fall, Spring, Summer
- Pre-Requisite(s): CS 1121
Gorkem Asilioglu
- Associate Teaching Professor, Computer Science
- galolu@mtu.edu
- 906-487-1643
- Rekhi Hall 308
Kieran Young
- Ph.D. Student, Department of Computer Science
- kdyoung@mtu.edu
- Rekhi 316
CS 1131 - Accelerated Introduction to Programming
An alternative starting point of the computer science programs for students with some programming experience, combining material from CS1121 and CS1122, offered at an accelerated pace. Homework programming assignments are given.
- Credits: 5.0
- Lec-Rec-Lab: (0-4-2)
- Semesters Offered: Fall
- Restrictions: Permission of department required
- Pre-Requisite(s): MA 1031(C) or MA 1032(C) or MA 1120(C) or MA 1160(C) or MA 1161(C) or MA 1121(C)
Brendan Cobb
- Ph.D. Student, Department of Computer Science
Leo Ureel II
- Associate Professor, Computer Science
- Associate Professor, Psychology and Human Factors
- Coordinator, College of Computing Learning Center
- ureel@mtu.edu
- 906-487-1816
- Rekhi Hall 209
CS 1142 - Programming at the Hardware Software Interface
Programming in assembly language and C for students with prior experience in Java. Topics include binary number encodings, instruction set architecture, assembly language programming, and instruction encodings. C programming topics include program structure, preprocessor, arrays, structures, pointers, input/output, dynamic memory management, and linked data structures.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring, Summer
- Pre-Requisite(s): CS 1122 or CS 1131
Keith Vertanen
- Dave House Professor, Computer Science
- vertanen@mtu.edu
- 906-487-2331
- Rekhi Hall 208
CS 2090 - Special Topics in Computer Science
Special topics in computer science offered on occasion based on student and faculty demand and interest.
- Credits: variable to 3.0; May be repeated
- Semesters Offered: On Demand
- Restrictions: Permission of instructor required
Koloud Al Khamaiseh
- Assistant Teaching Professor, Computer Science
- kalkhama@mtu.edu
- 906-487-3619
- Rekhi Hall 310
CS 2311 - Discrete Structures
Presents fundamental concepts in discrete structures that are used in computer science. Topics include sets, trees, graphs, functions, relations, recurrences, proof techniques, logic, combinatorics, and probability.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Pre-Requisite(s): (CS 1121 or CS 1131) and (MA 1135 or MA 1160 or MA 1161 or MA 1121 or MA 2160 or MA 3160)
Stella Otoo
- Assistant Teaching Professor, Computer Science
- sotoo@mtu.edu
- 906-487-3602
- Rekhi 102
CS 2321 - Data Structures
Presents fundamental concepts in data structures. Topics include abstract data types (priority queues, dictionaries and graphs) and their implementations, algorithm analysis, sorting, text processing, and object-oriented design. A significant programming project is assigned.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Pre-Requisite(s): CS 1122 or CS 1131
Ruihong Zhang
- Teaching Professor, Computer Science
- ruihong@mtu.edu
- 906-487-1638
- Rekhi Hall 302
CS 3000 - Ethical and Social Aspects of Computing
An examination of social and ethical issues associated with computing. Topics include: ethical theories and decision making, intellectual property, freedom of expression, privacy, security, and professional responsibility.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Restrictions: Must be enrolled in one of the following Class(es): Junior, Senior
- Pre-Requisite(s): CS 3141
Briana Bettin
- Associate Professor, Computer Science
- Associate Professor, Psychology and Human Factors
- bcbettin@mtu.edu
- Rekhi Hall 211
Charles Wallace
- Professor, Computer Science
- Affiliated Professor, Psychology and Human Factors
- wallace@mtu.edu
- 906-487-3431
- Rekhi Hall 205
CS 3090 - Special Topics in Computer Science
Special topics in computer science offered on occasion based on student and faculty demand and interest.
- Credits: variable to 3.0; May be repeated
- Semesters Offered: On Demand
- Restrictions: Permission of instructor required
Bo Zhang
- Assistant Professor, Computer Science
- bo.zhang@mtu.edu
- 906-487-2364
- Rekhi Hall 307
CS 3141 - Team Software Project
This course focuses on software development as a team. It covers software design models emphasizing process activities including Agile methodologies and Secure Software Development Life Cycle practices. Key topics include version control, automated testing, and documentation. Students will develop skills in communication, teamwork.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Pre-Requisite(s): (CS 2311 or MA 3210) and CS 2321
Serein Al-Ratrout
- Associate Teaching Professor, Computer Science
- salratro@mtu.edu
- 906-487-2518
- Rekhi Hall 104
CS 3311 - Formal Models of Computation
Introduction to the theory of formal languages and computation. Topics include regular languages and finite automata, context-free languages and push-down automata, Turing-acceptable languages, Turing machines and the halting problem. Proof techniques and applications, such as parsing, are also treated.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Pre-Requisite(s): CS 2311 or MA 3210
Nilufer Onder
- Associate Professor, Computer Science
- Undergraduate Program Director, Computer Science
- nilufer@mtu.edu
- 906-487-1641
- Rekhi Hall 309
CS 3331 - Concurrent Computing
Concepts and techniques in concurrent computing. Topics include: processes and threads, mutual exclusion, semaphores, monitors and condition synchronization, deadlock, safety and liveness, message passing, and concurrent architectures.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Pre-Requisite(s): CS 2311 and CS 2321 and CS 3411
Jean Mayo
- Professor, Computer Science
- Graduate Program Director
- jmayo@mtu.edu
- 906-487-3157
- Rekhi Hall 304
Ronald Stempien
- Ph.D. Student, Department of Computer Science
- rrstempi@mtu.edu
- Rekhi 324
CS 3411 - Systems Programming
Development of robust programs that provide efficient services to system software developers. Topics include: file I/O, process creation and management, linking and libraries, interprocess communication, performance measurement, and socket programming.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Pre-Requisite(s): CS 3421 or EE 3172
Gorkem Asilioglu
- Associate Teaching Professor, Computer Science
- galolu@mtu.edu
- 906-487-1643
- Rekhi Hall 308
Soner Onder
- Professor, Computer Science
- Affiliated Professor, Electrical and Computer Engineering
- soner@mtu.edu
- 906-487-2123
- Rekhi Hall 303
CS 3421 - Computer Organization
Introduction to the logical structure of computers, including the fundamentals of logic design, information storage and manipulation, control, and input/output. Topics include a review of current hardware technology, combinational and sequential logic, arithmetic, datapaths, hard-wired control, interrupts, caches, virtual memory, and an introduction to pipelining.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Pre-Requisite(s): (CS 1141 and CS 1040) or CS 1142
Koloud Al Khamaiseh
- Assistant Teaching Professor, Computer Science
- kalkhama@mtu.edu
- 906-487-3619
- Rekhi Hall 310
CS 3425 - Introduction to Database Systems
This course provides an introduction to database systems including database design, query, and programming. Topics include goals of database management; data definition; data models; data normalization; data retrieval and manipulation with relational algebra and SQL; data security and integrity; database and Web programming; and languages for representing semi-structured data.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Pre-Requisite(s): (CS 2311 or MA 3210) and CS 2321
Ruihong Zhang
- Teaching Professor, Computer Science
- ruihong@mtu.edu
- 906-487-1638
- Rekhi Hall 302
CS 3461 - Introduction to Robotics
Hands-on exploration of robot design and programming using real mobile robotic platforms. Robots feature onboard sensing such as cameras and other advanced perception tools. Students learn kinematics, actuation, sensing, configuration spaces, control, and motion planning while developing and testing on physical robots in collaborative teams.
- Credits: 3.0
- Lec-Rec-Lab: (3-0-0)
- Semesters Offered: Spring
- Restrictions: May not be enrolled in one of the following Class(es): Freshman
- Pre-Requisite(s): CS 3421 or EE 3172
Michael Walker
- Assistant Professor, Computer Science
- miwalker@mtu.edu
- 906-487-3392
- Rekhi Hall 212
CS 3712 - Software Quality Assurance
This course concentrates on ensuring quality through the software process including definition, analysis, and measurement of quality attributes. Topics are software testing, static analysis, code review, process improvement and security engineering emphasizing derivation of test cases from requirements specifications and writing test plans.
- Credits: 3.0
- Lec-Rec-Lab: (3-0-0)
- Semesters Offered: Spring
- Pre-Requisite(s): CS 3141
Leo Ureel II
- Associate Professor, Computer Science
- Associate Professor, Psychology and Human Factors
- Coordinator, College of Computing Learning Center
- ureel@mtu.edu
- 906-487-1816
- Rekhi Hall 209
CS 3760 - Front End Development and Accessibility
Students will apply foundational skills to create navigable and accessible user interfaces. HTML and CSS will be explored. Students will learn about structure versus style, semantic markup, accessibility standards, assistive technologies, testing tools, approaches to front end development, design patterns, and adaptive layout techniques.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall
- Pre-Requisite(s): CS 2321
Briana Bettin
- Associate Professor, Computer Science
- Associate Professor, Psychology and Human Factors
- bcbettin@mtu.edu
- Rekhi Hall 211
CS 4001 - National Cybersecurity Policy and Law
This course introduces the role of government in securing cyberspace. Students examine national cybersecurity policy and law. Topics include federal, state, and local entities involved in cybersecurity, relevant laws and regulations, concepts of civil liberties, intellectual property, privacy, development/diffusion of standards, and national security.
- Credits: 3.0
- Lec-Rec-Lab: (3-0-0)
- Semesters Offered: Fall
- Restrictions: Must be enrolled in one of the following Class(es): Senior
Victoria Walters
- Professor of Practice, Applied Computing
- PhD Student, Computational Science and Engineering
- vbwalter@mtu.edu
- EERC 222
CS 4090 - Special Topics in Computer Science
Special topics in computer science offered on occasion based on student and faculty demand and interest.
- Credits: variable to 4.0; May be repeated
- Semesters Offered: On Demand
- Restrictions: Permission of instructor required
Leo Ureel II
- Associate Professor, Computer Science
- Associate Professor, Psychology and Human Factors
- Coordinator, College of Computing Learning Center
- ureel@mtu.edu
- 906-487-1816
- Rekhi Hall 209
CS 4099 - Directed Study in Computer Science
Students study one or more special topics in computer science under the direction of one or more faculty members.
- Credits: variable to 4.0; Repeatable to a Max of 6
- Semesters Offered: Fall, Spring, Summer
- Restrictions: Permission of instructor required
Gorkem Asilioglu
- Associate Teaching Professor, Computer Science
- galolu@mtu.edu
- 906-487-1643
- Rekhi Hall 308
Briana Bettin
- Associate Professor, Computer Science
- Associate Professor, Psychology and Human Factors
- bcbettin@mtu.edu
- Rekhi Hall 211
Laura Brown
- Professor and Chair, Data Science
- lebrown@mtu.edu
- 906-487-3472
- Rekhi Hall 227
Bo Chen
- Associate Professor, Computer Science
- Director, ICC Center for Cybersecurity
- bchen@mtu.edu
- 906-487-3149
- Rekhi 301
Ali Ebnenasir
- Associate Professor, Computer Science
- aebnenas@mtu.edu
- 906-487-4372
- Rekhi Hall 206
Timothy Havens
- Executive Director, Great Lakes Research Center
- William and Gloria Jackson Professor, Data Science and Computer Science
- thavens@mtu.edu
- 906-487-3115
- GLRC 307
Scott Kuhl
- Associate Professor, Computer Science
- Affiliated Associate Professor, Psychology and Human Factors
- Faculty Advisor, Husky Game Development Enterprise
- kuhl@mtu.edu
- 906-487-2798
- Rekhi Hall 210
Xinyu Lei
- Assistant Professor, Computer Science
- xinyulei@mtu.edu
- Rekhi Hall 306
Evan Lucas
- Assistant Professor, Data Science and Computer Science
- eglucas@mtu.edu
- 906-487-2094
- GLRC 211
Jean Mayo
- Professor, Computer Science
- Graduate Program Director
- jmayo@mtu.edu
- 906-487-3157
- Rekhi Hall 304
Yakov Nekrich
- Associate Professor, Computer Science
- yakov@mtu.edu
- 906-487-2271
- Rekhi Hall 311
Nilufer Onder
- Associate Professor, Computer Science
- Undergraduate Program Director, Computer Science
- nilufer@mtu.edu
- 906-487-1641
- Rekhi Hall 309
Soner Onder
- Professor, Computer Science
- Affiliated Professor, Electrical and Computer Engineering
- soner@mtu.edu
- 906-487-2123
- Rekhi Hall 303
Robert Pastel
- Associate Professor, Computer Science
- Affiliated Associate Professor, Psychology and Human Factors
- Faculty Advisor, Humane Interface Design Enterprise
- pastel@mtu.edu
- 906-487-1639
- Rekhi Hall 204
Leo Ureel II
- Associate Professor, Computer Science
- Associate Professor, Psychology and Human Factors
- Coordinator, College of Computing Learning Center
- ureel@mtu.edu
- 906-487-1816
- Rekhi Hall 209
Keith Vertanen
- Dave House Professor, Computer Science
- vertanen@mtu.edu
- 906-487-2331
- Rekhi Hall 208
Michael Walker
- Assistant Professor, Computer Science
- miwalker@mtu.edu
- 906-487-3392
- Rekhi Hall 212
Charles Wallace
- Professor, Computer Science
- Affiliated Professor, Psychology and Human Factors
- wallace@mtu.edu
- 906-487-3431
- Rekhi Hall 205
Zhenlin Wang
- Professor and Chair, Computer Science
- zlwang@mtu.edu
- 906-487-2187
- Rekhi Hall 322
Jianhui Yue
- Associate Professor, Computer Science
- jyue@mtu.edu
- 906-487-1726
- Rekhi Hall 203
Bo Zhang
- Assistant Professor, Computer Science
- bo.zhang@mtu.edu
- 906-487-2364
- Rekhi Hall 307
Ruihong Zhang
- Teaching Professor, Computer Science
- ruihong@mtu.edu
- 906-487-1638
- Rekhi Hall 302
CS 4121 - Programming Languages
A discussion of the concepts underlying programming languages. Topics include programming paradigms; language theory and properties (including syntax, semantics, run-time behavior, and implementation issues); data, procedure, functional and control abstraction; functional programming, logic programming, and language security.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Pre-Requisite(s): CS 2321 and CS 3311 and (CS 3421 or EE 3172)
Gorkem Asilioglu
- Associate Teaching Professor, Computer Science
- galolu@mtu.edu
- 906-487-1643
- Rekhi Hall 308
Jianhui Yue
- Associate Professor, Computer Science
- jyue@mtu.edu
- 906-487-1726
- Rekhi Hall 203
CS 4130 - Compiler Design and Optimization
Design, theory, and programming language translators and the theory and implementation of optimizers. Topics include: intermediate representations, advanced code generation, control-and data-flow analysis, advanced compiler optimization, dynamic compilation, global register allocation and instruction scheduling.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Restrictions: May not be enrolled in one of the following Level(s): Graduate
- Pre-Requisite(s): CS 4121
Zhenlin Wang
- Professor and Chair, Computer Science
- zlwang@mtu.edu
- 906-487-2187
- Rekhi Hall 322
CS 4321 - Introduction to Algorithms
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.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Restrictions: May not be enrolled in one of the following Class(es): Freshman, Sophomore
- Pre-Requisite(s): (CS 2311 or MA 3210) and CS 2321
Gorkem Asilioglu
- Associate Teaching Professor, Computer Science
- galolu@mtu.edu
- 906-487-1643
- Rekhi Hall 308
Ali Ebnenasir
- Associate Professor, Computer Science
- aebnenas@mtu.edu
- 906-487-4372
- Rekhi Hall 206
Yakov Nekrich
- Associate Professor, Computer Science
- yakov@mtu.edu
- 906-487-2271
- Rekhi Hall 311
CS 4411 - Operating Systems
Principles of the design and implementation of operating systems. Topics include: process management, process scheduling, memory management, I/O, file systems. Includes a significant implementation component.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Spring
- Pre-Requisite(s): CS 3331 and (CS 3421 or EE 3172)
Jean Mayo
- Professor, Computer Science
- Graduate Program Director
- jmayo@mtu.edu
- 906-487-3157
- Rekhi Hall 304
CS 4431 - Computer Architecture
Advanced course in architecture of high-performance computer systems. Topics include instruction-set design, simulation of processor architectures, multiple functional units, pipelining, dynamically scheduled pipelines, speculative execution, multi-core and multi-processor systems, advanced I/O subsystems and analytic models of architectural features of processors.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Pre-Requisite(s): CS 3421 or EE 3172
Soner Onder
- Professor, Computer Science
- Affiliated Professor, Electrical and Computer Engineering
- soner@mtu.edu
- 906-487-2123
- Rekhi Hall 303
CS 4461 - Computer Networks
Computer network architectures and protocols; design and implementation of datalink, network, and transport layer functions. Introduction to the Internet protocol suite (TCP, UDP, IP), domain name service and protocols, file sharing protocols, wireless networks, and network security.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Spring
- Pre-Requisite(s): CS 3411
Bo Chen
- Associate Professor, Computer Science
- Director, ICC Center for Cybersecurity
- bchen@mtu.edu
- 906-487-3149
- Rekhi 301
Christopher Cischke
- Associate Chair and Teaching Professor, Electrical and Computer Engineering
- Adjunct Instructor, Engineering Fundamentals
- Faculty Advisor, Wireless Communication Enterprise
- cmcischk@mtu.edu
- 906-487-2011
- EERC 520
CS 4471 - Computer Security
This covers fundamentals of computer security. Topics include practical cryptography, access control, security design principles, physical protections, malicious logic, program security, intrusion detection, administration, legal and ethical issues.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall
- Restrictions: May not be enrolled in one of the following Level(s): Graduate
- Pre-Requisite(s): CS 3411 or CS 4411
Xinyu Lei
- Assistant Professor, Computer Science
- xinyulei@mtu.edu
- Rekhi Hall 306
CS 4611 - Computer Graphics
Introduction to interactive computer graphics. Topics include 3D viewing, 3D transformation, interactive techniques, animation, modeling, lighting, texturing, vertex programs, fragment programs, and graphics algorithms. Requires substantial programming homework.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall
- Restrictions: May not be enrolled in one of the following Class(es): Freshman, Sophomore
- Pre-Requisite(s): (CS 1141 or CS 1142) and CS 2321 and MA 2330
Scott Kuhl
- Associate Professor, Computer Science
- Affiliated Associate Professor, Psychology and Human Factors
- Faculty Advisor, Husky Game Development Enterprise
- kuhl@mtu.edu
- 906-487-2798
- Rekhi Hall 210
CS 4710 - Model-Driven Software Development
This course focuses on modeling of software systems, automated analysis, verification, and design. Topics include declarative and imperative modeling languages, software tools for automated analysis and verification of models, specification languages for implementation, and formal specification languages for inductive verification of systems.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall, Summer
- Pre-Requisite(s): CS 3311 and CS 3141(C)
Charles Wallace
- Professor, Computer Science
- Affiliated Professor, Psychology and Human Factors
- wallace@mtu.edu
- 906-487-3431
- Rekhi Hall 205
CS 4711 - Software Processes and Management
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.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall
- Pre-Requisite(s): CS 3141
Serein Al-Ratrout
- Associate Teaching Professor, Computer Science
- salratro@mtu.edu
- 906-487-2518
- Rekhi Hall 104
CS 4713 - Foundations of Embedded Software
Provides an introduction to the architecture of microcontrollers, the embedded software stack (starting from firmware, hardware abstraction layer, real-time operating systems, device drivers and APIs), and tool chains for programming and debugging of embedded software.
- Credits: 3.0
- Lec-Rec-Lab: (3-0-0)
- Semesters Offered: Fall
- Restrictions: Permission of instructor required; Must be enrolled in one of the following College(s): College of Engineering, College of Computing; May not be enrolled in one of the following Class(es): Freshman, Sophomore
- Pre-Requisite(s): CS 3411
CS 4723 - Network Security
Learn fundamental of cryptography and its application to network security. Understand network security threats, security services, and countermeasures. Acquire background knowledge on well known network security protocols. Address open research issues in network security.
- Credits: 3.0
- Lec-Rec-Lab: (3-0-0)
- Semesters Offered: Spring, Summer
- Pre-Requisite(s): EE 4272 or CS 4461 or SAT 4812
Xinyu Lei
- Assistant Professor, Computer Science
- xinyulei@mtu.edu
- Rekhi Hall 306
CS 4740 - Development of Trusted Software
This course exposes students to the concepts of secure software development. Students will learn how to develop high-quality software that is resistant against cyber-attacks, by minimizing the number of vulnerabilities that can be exploited by an attacker. Topics include access control, race conditions, buffer overflows, and code injection.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Spring
- Pre-Requisite(s): CS 4471
Bo Chen
- Associate Professor, Computer Science
- Director, ICC Center for Cybersecurity
- bchen@mtu.edu
- 906-487-3149
- Rekhi 301
CS 4760 - User Interface Design and Implementation
Principles of user interfaces (UI) design and implementation. Topics include: UI theory, design principles, evaluation, and tools. Requires completion of a group project implementing and evaluating a UI.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Spring
- Restrictions: Must be enrolled in one of the following Major(s): Software Engineering
- Pre-Requisite(s): CS 3141
Michael Walker
- Assistant Professor, Computer Science
- miwalker@mtu.edu
- 906-487-3392
- Rekhi Hall 212
CS 4770 - Software Architecture
Software architecture and concerns; quality attributes, metrics, critical components of architectures, the use of packages, build tools and techniques, and cloud architectures.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Spring
- Pre-Requisite(s): CS 3425
Serein Al-Ratrout
- Associate Teaching Professor, Computer Science
- salratro@mtu.edu
- 906-487-2518
- Rekhi Hall 104
CS 4791 - Senior Software Engineering Project I
A capstone project course. Using software engineering principles and techniques, students work as part of a team responsible for developing a quality software project.
- Credits: 3.0
- Lec-Rec-Lab: (0-1-4)
- Semesters Offered: Fall, Spring
- Restrictions: Permission of instructor required
- Pre-Requisite(s): CS 3712 and CS 4760
Serein Al-Ratrout
- Associate Teaching Professor, Computer Science
- salratro@mtu.edu
- 906-487-2518
- Rekhi Hall 104
CS 4792 - Senior Software Engineering Project II
A continuation of the capstone project experience, intended for Software Engineering majors.
- Credits: 3.0
- Lec-Rec-Lab: (0-1-4)
- Semesters Offered: Fall, Spring
- Pre-Requisite(s): CS 4791
Serein Al-Ratrout
- Associate Teaching Professor, Computer Science
- salratro@mtu.edu
- 906-487-2518
- Rekhi Hall 104
CS 4801 - Foundations of Machine Learning
The course covers classical statistical machine learning. Topics include classification (k-nearest neighbors, decision trees, random forests, logistic regression, naive bayes, neural networks), regression, clustering (partitional and hierarchical clustering), and evaluation.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Fall
- Pre-Requisite(s): DATA 2201 and (MA 2710 or MA 2720 or MA 3710 or MA 3720)
Laura Brown
- Professor and Chair, Data Science
- lebrown@mtu.edu
- 906-487-3472
- Rekhi Hall 227
CS 4821 - Data Mining
Data mining focuses on extracting knowledge from large data sources. The course covers data mining concepts and methodology.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Spring
- Restrictions: May not be enrolled in one of the following Level(s): Graduate
- Pre-Requisite(s): DATA 2201 and (MA 2710 or MA 2720 or MA 3710)
Sujan Kumar Roy
- Assistant Teaching Professor, Data Science
- sroy5@mtu.edu
- 906-487-1657
- Rekhi Hall 305
CS 4861 - Artificial Intelligence Theory and Applications
Fundamental ideas and techniques used in the construction of problem solvers that use Artificial Intelligence technology. Topics include knowledge representation and reasoning, problem solving, heuristics, search heuristics, inference mechanisms, and machine learning.
- Credits: 3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered: Spring
- Restrictions: May not be enrolled in one of the following Class(es): Freshman, Sophomore
- Pre-Requisite(s): CS 2311 and CS 2321
Koloud Al Khamaiseh
- Assistant Teaching Professor, Computer Science
- kalkhama@mtu.edu
- 906-487-3619
- Rekhi Hall 310