BS in Software Engineering Degree Requirements (SSEN)
Total credits required for the degree: 124. Find complete details on the Software Engineering degree audit. Download the Software Engineering flowchart.
Core Requirements: 54-55 Credits
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
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)
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)
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
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
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)
MA 3210 - Introduction to Combinatorics
Topics include set theory, mathematical induction, integers, functions and relations, counting methods, recurrence relations, generating functions, permutations, combinations, principle of inclusion and exclusion, graphs (including planar graphs). Further possible topics are graph coloring, trees and cut-sets, combinatorial designs, Boolean algebra.
- Credits:
3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered:
Fall, Summer
- Pre-Requisite(s): MA 2320 or MA 2321 or MA 2330
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
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
CS 3141 - Team Software Project
This course introduces software design techniques (e.g., Design-By-Contracts), uses the UML for requirements and design specification, and requires implementation, unit testing and documentation in the context of a significant team project. Focus includes security, teamwork, user interfaces, social and professional responsibility.
- Credits:
3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered:
Fall, Spring
- Pre-Requisite(s): (CS 2311 or MA 3210) and CS 2321
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
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 1142 or (CS 1141 and CS 1040) and (CS 2311 or MA 3210) and CS 2321
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
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
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
CS 3712 - Software Quality Assurance
Practices for ensuring quality through the software process. Topics include: requirements elicitation, analysis and documentation, testing, and quality assurance management.
- Credits:
3.0
- Lec-Rec-Lab: (3-0-0)
- Semesters Offered:
Spring
- Pre-Requisite(s): CS 3141
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
CS 4710 - Model-Driven Software Development
Focuses 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.
- Credits:
3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered:
Fall, Summer
- Pre-Requisite(s): CS 3311 and CS 3141(C)
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
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
- Pre-Requisite(s): CS 3141
HU 3120 - Technical and Professional Communication
A study of written and oral communication in technical and scientific environments; emphasizes audience, writing processes, genres of scientific and technical discourse, visual communication, collaboration, professional responsibility, clear and correct expression. Students write and revise several documents and give oral report(s).
- Credits:
3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered:
Fall, Spring, Summer
- Restrictions:
May not be enrolled in one of the following Class(es): Freshman, Sophomore
- Pre-Requisite(s): UN 1015 and (UN 1025 or Modern Language - 3000 level or higher)
Choose One of the Following Options: 6 Credits
Option 1
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
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
Option 2
ENT 3950 - Enterprise Project Work III
Interdisciplinary teams work as part of an enterprise to address real-world design projects or problems. Third-year students will practice designing approaches to solve problems and develop procedures to achieve specified project objectives.
- Credits:
1.0
- Lec-Rec-Lab: (0-0-3)
- Semesters Offered:
Fall, Spring, Summer
- Restrictions:
Must be enrolled in one of the following Class(es): Junior, Senior
ENT 3960 - Enterprise Project Work IV
Interdisciplinary teams work as part of an enterprise to address real-world design projects or problems. Third-year students practice designing approaches to solve problems and develop procedures to achieve specified project objectives.
- Credits:
1.0
- Lec-Rec-Lab: (0-0-3)
- Semesters Offered:
Fall, Spring, Summer
- Restrictions:
Must be enrolled in one of the following Class(es): Junior, Senior
ENT 4950 - Enterprise Project Work V Capstone
Interdisciplinary teams work as part of an enterprise to address real-world design projects or problems, taking constraints into account and applying relevant standards. Fourth-year students gain experience in defining project objectives, planning strategies to achieve these objectives, and leading technical teams to accomplish project goals. Must be project ready as defined by major.
- Credits:
2.0
- Lec-Rec-Lab: (0-0-6)
- Semesters Offered:
Fall, Spring, Summer
- Restrictions:
Permission of department required;
Must be enrolled in one of the following Major(s): Biomedical Engineering, Engineering, Civil Engineering, Geospatial Engineering, Chemical Engineering, Computer Engineering, Electrical Engineering, Environmental Engineering, Geological Engineering, Mechanical Engineering, Materials Science and Engrg, Robotics Engineering, Software Engineering, Construction Management, Computer Network & System Admn, Electrical Eng Tech, Mechanical Engineering Tech, Surveying Engineering, Information Technology;
Must be enrolled in one of the following Class(es): Senior
- Pre-Requisite(s): (BE 3350 or BE 3700 or BE 4900) or (CEE 3620 or CEE 3810) or CM 4855(C) or (CS 3712 or CS 4711 or CS 4760) or (ENT 3960 and (EE 3131 or (EE 3280 and EE 3261(C))) and EE 3901 and EE 3171(C) or EE 3173(C)) or (GE 3890 and GE 3880) or (ENT 3950 and ENT 3960 and (MA 3710(C) or MA 2710(C) or MA 2720 or MA 3715) and MEEM 3750 and MEEM 3201 and MEEM 3901 and MEEM 3911) and EE 3010(C) and MEEM 3400 and MEEM 3600(C) or MSE 3190 or (CMG 3250 and CMG 4120(C) and CMG 4210 and CMG 3200) or (EET 3281 and EET 4253(C)) or SAT 3812(C) or SU 4100(C) or ENG 3505(C) or (ENT 3950 and ENT 3960) or (MET 4200 and MET 3500(C) and MET 3451(C))
ENT 4960 - Enterprise Project Work VI Capstone
Interdisciplinary teams work as part of an enterprise to address real-world design projects or problems, taking constraints into account and applying relevant standards. Fourth-year students gain experience defining project objectives, planning strategies to achieve these objectives, and leading technical teams to accomplish project goals.
- Credits:
2.0
- Lec-Rec-Lab: (0-0-6)
- Semesters Offered:
Fall, Spring, Summer
- Restrictions:
Must be enrolled in one of the following Class(es): Senior
- Pre-Requisite(s): ENT 4950 and (BE 4900 or CEE 3620 or CEE 3810 or CM 4855 or CS 3712 or CS 4711 or CS 4760 or EE 3171 or EE 3173 or GE 3890 or GE 3880 or MSE 4141(C) or CMG 4210 or EET 4253 or MET 4460 or SAT 4541 or SU 4100 or ENG 3830(C) or (ENG 3505 and ENG 4505) or (MEEM 3750 and MEEM 3201) or (EE 3280 and EE 3261))
Math Requirements: 10-12 Credits*
MA 1160 - Calculus with Technology I
An introduction to single-variable calculus, which includes a computer laboratory. Topics include trigonometric, exponential, and logarithmic functions, differentiation and its uses, and basic integration. Integrates symbolic tools, graphical concepts, data and numerical calculations.
- Credits:
4.0
- Lec-Rec-Lab: (0-3-1)
- Semesters Offered:
Fall
- Pre-Requisite(s): ALEKS Math Placement >= 86 or CEEB Calculus AB >= 3 or CEEB Calculus BC >= 3 or CEEB Calculus AB Subscore >= 3 or ACT Mathematics >= 29 or SAT MATH SECTION SCORE-M16 >= 680
MA 1161 - Calculus Plus w/ Technology I
An introduction to single-variable calculus, which includes a computer laboratory. Topics include trigonometric, exponential, logarithmic functions, differentiation and its uses, and basic integration. Integrates symbolic tools, data and numerics, and graphical concepts and is similar to MA1160, going at a different pace.
- Credits:
5.0
- Lec-Rec-Lab: (0-4-1)
- Semesters Offered:
Fall, Spring, Summer
- Pre-Requisite(s): MA 1032 or MA 1031 or MA 1120 or ALEKS Math Placement >= 76 or CEEB Calculus AB >= 2 or CEEB Calculus BC >= 2 or CEEB Calculus AB Subscore >= 2 or ACT Mathematics >= 26 or SAT MATH SECTION SCORE-M16 >= 610
MA 2330 - Introduction to Linear Algebra
An introduction to linear algebra and how it can be used, including basic mathematical proofs. Topics include systems of equations, vectors, matrices, orthogonality, subspaces, and the eigenvalue problem.
- Credits:
3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered:
Fall, Spring
- Pre-Requisite(s): MA 1160 or MA 1161 or MA 1135 or MA 1121
MA 2720 - Statistical Methods
Introduction to the design and analysis of statistical studies. Topics include methods of data collection, descriptive and graphical methods, probability, statistical inference on means, regression and correlation, and ANOVA.
- Credits:
4.0
- Lec-Rec-Lab: (0-4-0)
- Semesters Offered:
Fall, Spring, Summer
- Restrictions:
May not be enrolled in one of the following Major(s): Mathematics
- Pre-Requisite(s): MA 1020 or MA 1030 or MA 1120 or MA 1032 or MA 1031 or ALEKS Math Placement >= 61 or CEEB Calculus BC >= 2 or CEEB Calculus AB Subscore >= 2 or ACT Mathematics >= 22 or SAT MATH SECTION SCORE-M16 >= 540
MA 3710 - Engineering Statistics
Introduction to the design, conduct, and analysis of statistical studies aimed at solving engineering problems. Topics include methods of data collection, descriptive and graphical methods, probability and probability models, statistical inference, control charts, linear regression, design of experiments.
- Credits:
3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered:
Fall, Spring, Summer
- Pre-Requisite(s): MA 2160 or MA 3160(C)
Introduction to probabilistic methods. Topics include probability laws, counting rules, discrete and continuous random variables, expectation, joint distributions, and limit theorems.
- Credits:
3.0
- Lec-Rec-Lab: (0-3-0)
- Semesters Offered:
Fall, Summer
- Pre-Requisite(s): MA 1160 or MA 1161 or MA 1121 or MA 1135
Lab Science Requirements: 7 Credits Minimum*
Students must complete two science courses in two different disciplines (BL, CH, KIP,
FW, GE, PH, SS) from the general education science course list; at least one of these
must include or be taken with the accompanying laboratory. Find eligible courses on
the General Education webpage.
Science Elective or MA3XXX: 6-7 Credits*
Take a MA course (3000-level or higher) or a course from the approved STEM Science
list.
*Science and math should total 24 credits overall.
Technical Electives: 9 Credits
See academic advisor for approved technical electives
Free Electives: 4-8 Credits
Any coursework is allowable, excluding co-curricular and coursework below the 1000-
level.
General Education Core Requirements: 24 Credits
Humanities, Fine Arts, and Social Science (HASS) Requirements
Courses used to complete Core and HASS requirements may not be used to complete other
degree requirements. Students must complete 12 credits of Core coursework and 12 credits
of Humanities, Fine Arts, and Social Science (HASS) coursework. Repeatable courses
may not be repeated for general education credit. Core and HASS courses can be found
on the General Education page.
Core: 12 Credits
- UN 1015 (3)
- UN 1025 or an upper level modern language (3)
- Critical and Creative Thinking (3)
- Social Responsibility and Ethical Reasoning (3)
HASS: 12 credits
Six of the 12 credits must be at the 3000- or 4000- level.
- Communication/Composition (minimum 3 credits)
- Humanities and Fine Arts (minimum 3 credits)
- Social and Behavioral Sciences (minimum 3 credits)
- Any course from the General Education Core, HASS, or Restricted HASS course list (0
to 3 credits)
Co-curricular Activities: 3 Credits
Required for graduation, but not included in the GPA calculation or in the overall
credits required for the degree. Only courses on the co-curricular course list are
eligible. Half (0.5) credit courses may be repeated to a maximum of one time for co-curricular
credit. Find eligible courses on the General Education page.