Department of Computer Science and Engineering
Department Head: Dr. Shahram Rahimi
Associate Department Head and Undergraduate Coordinator: Dr. Andy Perkins
Graduate Coordinator: Dr. T. J. Jankun-Kelly
Office: 300 Butler Hall
The Department of Computer Science and Engineering is dedicated to maintaining quality programs in undergraduate teaching, graduate teaching, and research, and to the fruitful interaction between teaching and research. In research, we wish to maintain our present emphasis on applications (often pursued with colleagues from other disciplines), and upon the synergistic relationships between theory and applications in which the most meaningful advances often result. The department has identified six core competency areas in which we shall seek national prominence: artificial intelligence, computational science, human centered computing, graphics, systems, and software engineering. These core competencies support research applications in areas such as bio-informatics, high performance computing, computer security, computer forensics, computer science education, human-robotic interaction, and visualization. The Department of Computer Science and Engineering offers degree programs leading to the Bachelor of Science degree in Computer Science, Software Engineering, and (jointly with the Department of Electrical and Computer Engineering) Computer Engineering and the Master of Science in Cybersecurity. The department also offers study leading to the Master of Science and the Doctor of Philosophy degrees in Computer Science. An accelerated BS/MS program is also available.
Computer Science Major (CS)
Computer Science is the study of the principles, applications, and technologies of computing and computers. It involves the study of data and data structures and the algorithms to process these structures; principles of computer architecture-both hardware and software; problem solving and design methodologies; and language design, structure and translation techniques. Computer Science provides a foundation of knowledge for students with career objectives in a wide range of computing and computer-related professions.
The objectives for the department with respect to the Bachelor of Science Degree in Computer Science are as follows:
- The graduate will demonstrate an understanding of computer science principles and an ability to solve unstructured computer science problems through the successful entrance into and advancement in the computer science profession.
- The graduate will demonstrate an appreciation for lifelong learning and for the value of continuing professional development through participation in graduate education, professional education or continuing education opportunities, attainment of professional licensure, or membership in professional societies.
- The graduate will demonstrate an understanding of professional and ethical responsibilities to the profession, society and the environment incumbent on a computer science professional.
- The graduate will successfully interact with others of different backgrounds, educations, and cultures.
- The graduate will demonstrate effective communication skills in their profession.
Computer Science graduates begin careers as computer programmers, system analysts, programmer/analysts, software engineers, systems programmers, computer system engineers and in a number of other computer-related jobs. A minor in computer science is available to students with major programs of study in other fields at the University.
The Bachelor of Science degree requires the completion of a total of 128 credit hours of general studies, computer science, mathematics and science, and supporting technical courses. To graduate, a student must have a “C” average in all MSU computer science and engineering courses attempted.
The computer science program is accredited by the Computing Accreditation Commission of ABET, http://www.abet.org.
Software Engineering Major (SE)
Software Engineering is the application of engineering practices to the design and maintenance of software. The Software Engineering degree program prepares students for careers in the engineering of large complex software systems and products. These systems often involve millions of lines of code and frequently operate in safety-critical environments. The Software Engineering major contains courses related to the study of software engineering in practice necessary to manage these development processes. The faculty for the Software Engineering program is drawn from the Department of Computer Science and Engineering and the Department of Industrial Engineering.
The objectives for the department with respect to the Bachelor of Science Degree in Software Engineering are as follows:
- The graduate will demonstrate an understanding of engineering principles and an ability to solve unstructured engineering problems through the successful entrance into and advancement in the engineering profession.
- The graduate will demonstrate an appreciation for lifelong learning and for the value of continuing professional development through participation in graduate education, professional education or continuing education opportunities, attainment of professional licensure, or membership in professional societies.
- The graduate will demonstrate an understanding of professional and ethical responsibilities to the profession, society and the environment incumbent on an engineering professional.
- The graduate will successfully interact with others of different backgrounds, educations, and cultures.
- The graduate will demonstrate effective communication skills in their profession.
A minor in software engineering is available to students with major programs of study in other fields at the University.
The Bachelor of Science degree in Software Engineering requires the completion of a total of 128 credit hours of general studies, computer science, industrial engineering, mathematics and science, supporting technical courses, and free electives. To graduate, a student must have a “C” average in all MSU computer science and engineering courses attempted.
The software engineering program is accredited by the Engineering Accreditation Commission of ABET, http://www.abet.org.
Cybersecurity Major
The Bachelor of Science in Cybersecurity is designed for students who wish to help meet the challenges posed by increasing cyber-threats. Using a multidisciplinary approach, the program is designed to provide students with a focused education for evaluating, understanding, and solving cyber security problems.
The Bachelor of Science degree requires the completion of a total of 128 credit hours of general studies, computer science, mathematics and science, and supporting technical courses. To graduate, a student must have a "C" average in all MSU computer science and engineering courses attempted.
Computer Science Major (CS)
English Composition | ||
EN 1103 | English Composition I | 3 |
EN 1113 | English Composition II | 3 |
Fine Arts | ||
See General Education courses | 3 | |
Humanities | ||
See General Education courses | 6 | |
Social/Behavioral Sciences | ||
See General Education courses | 6 | |
Writing Requirement | ||
GE 3513 | Technical Writing | 3 |
Departmental Requirements | ||
MA 1713 | Calculus I | 3 |
MA 1723 | Calculus II | 3 |
MA 3113 | Introduction to Linear Algebra | 3 |
Math elective | 3 | |
Calculus III | ||
or MA 3053 | Foundations of Mathematics | |
or MA 4143 | Graph Theory | |
or MA 4173 | Number Theory | |
Statistics Requirement | 3 | |
Engineering Statistics I | ||
or MA 4523 | Introduction to Probability | |
or MA 4543 | Introduction to Mathematical Statistics I | |
or BQA 2113 | Business Statistical Methods I | |
CH 1213 | Chemistry I | 3 |
CH 1211 | Investigations in Chemistry I | 1 |
Science electives | 6 | |
Lab Science - Choose from: | 3-4 | |
Biology I | ||
Biology II | ||
Chemistry II and Investigations in Chemistry II | ||
Physics II | ||
Natural Science - Choose from: | 3-4 | |
Biology I | ||
Biology II | ||
Physics I | ||
Physics II | ||
Chemistry II | ||
CSE 1011 | Introduction to CSE | 1 |
CSE 1284 | Introduction to Computer Programming | 4 |
CSE 1384 | Intermediate Computer Programming | 4 |
CSE 2213 | Methods and Tools in Software Development | 3 |
CSE 2383 | Data Structures and Analysis of Algorithms | 3 |
CSE 2813 | Discrete Structures | 3 |
CSE 3183 | Systems Programming | 3 |
CSE 3724 | Computer Organization | 4 |
CSE 3763 | Ethical and Legal Issues in Computing | 3 |
CSE 4714 | Theory & Implementation of Programming Languages | 4 |
CSE 4733 | Operating Systems I | 3 |
CSE 4833 | Introduction to Analysis of Algorithms | 3 |
General Concentration
The general concentration in computer science allows students the flexibility to take a broad range of courses. Students are not required to focus on a specific topic area and may take a variety of courses in areas that fit their individual interests.
Technical Electives | 27 | |
Choose from the following: | ||
Engineering Economy I | ||
Human Factors Engineering | ||
Psychology of Human-Computer Interaction | ||
Production Control Systems I | ||
Engineering Administration | ||
Project Management | ||
Process Improvement Engineering | ||
Engineering Statistics II | ||
Industrial Quality Control | ||
Operations Research I | ||
Linear Programming | ||
Systems Simulation I | ||
Decision Support Systems | ||
Business Programming with COBOL | ||
Any upper-level CSE, ECE, or MA course | ||
Free Electives | 14 | |
Total Hours | 128 |
Systems Concentration
Computer systems are the hardware and software that provide computing capability for digital devices. Computer systems can be for embedded applications, multi-core, or distributed platforms. These help to support high performance, real-time, secure systems, and analysis of digital media for forensic purposes. Computer systems research at MSU includes investigating the use of alternate hardware architectures to improve computational speed, secure networking, develop model-driven software architectures, improve energy efficiency, and improve system robustness and resiliency.
Concentration Courses | 9 | |
Choose from: | ||
Data Communications and Computer Networks | ||
Designing Parallel Algorithms | ||
Database Management Systems | ||
Compiler Construction | ||
Operating Systems II | ||
Technical Electives | 18 | |
Free Electives | 15 | |
Total Hours | 128 |
Artificial Intelligence Concentration
Artificial intelligence is a branch of computer science that is concerned with developing algorithms and techniques that will allow computers to behave more like humans in the future. artificial intelligence is a broad term that incorporates a wide range of disciplines, including expert systems, natural language processing, computer vision, and robotics. Artificial intelligence is having a profound impact on a wide range of businesses. The Artificial intelligence concentration at MSU prepares students to take the next step into the field of artificial intelligence by supporting them in acquiring the information and abilities essential to improve their professional careers in the field. Instructors and students use these strategies to solve challenges in fields such as reasoning under uncertainty, bioinformatics, cyber security, geometric learning, and human-machine interfaces.
Concentration Courses | 9 | |
Choose from: | ||
Artificial Intelligence | ||
AI Robotics | ||
Cognitive Science | ||
Machine Learning and Soft Computing | ||
Technical Electives | 18 | |
Free Electives | 15 | |
Total Hours | 128 |
Computational Science Concentration
Computational science is concerned with constructing mathematical models, quantitative analysis techniques, numerical simulations, and optimization to solve scientific problems using computers. It is now widely regarded as a third mode of scientific discovery, after theory and experiment. Faculty members in this area are participating in projects that involve algorithm development for performance optimization in scientific computing, software synthesis for computational field simulations on high-end computing platforms, distributed interactive simulation frameworks, resource allocation on high-end computing platforms, autonomic computing, uncertainty analysis in simulations, medical imaging analysis, and biological modeling.
Concentration Courses | 9 | |
Choose from: | ||
Designing Parallel Algorithms | ||
Computational Biology | ||
Data Analysis I | ||
Numerical Analysis I | ||
Differential Equations I | ||
Technical Electives | 18 | |
Free Electives | 15 | |
Total Hours | 128 |
Human and Visual Computing Concentration
Humans, individually or in groups, are involved in all stages of computing. From interacting with robots, using novel virtual and extended reality methods, or analyzing data with visualization, humans are central to computing. A student in the Human and Visualization Computing concentration studies the social, cognitive, and perceptual aspects of computing through the lens of design, graphical display, and advanced interaction modalities.
Concentration Cources | 9 | |
Choose from the following: | ||
Principles of Computer Graphics | ||
Game Design | ||
Cognitive Science | ||
Human-Computer Interaction | ||
Human Factors Engineering | ||
Technical Electives | 18 | |
Free Electives | 15 | |
Total Hours | 128 |
Software Engineering Major (SE)
English Composition | ||
EN 1103 | English Composition I | 3 |
EN 1113 | English Composition II | 3 |
Fine Arts | ||
See General Education courses | 3 | |
Humanities | ||
See General Education courses | 6 | |
Social/Behavioral Sciences | ||
See General Education courses | 6 | |
Writing Requirement | ||
GE 3513 | Technical Writing | 3 |
Departmental Requirements | ||
MA 1713 | Calculus I | 3 |
MA 1723 | Calculus II | 3 |
MA 3113 | Introduction to Linear Algebra | 3 |
Math elective | 3 | |
Calculus III | ||
or MA 3053 | Foundations of Mathematics | |
or MA 4143 | Graph Theory | |
or MA 4173 | Number Theory | |
Statistics Requirement | 3 | |
Engineering Statistics I | ||
CH 1213 | Chemistry I | 3 |
CH 1211 | Investigations in Chemistry I | 1 |
Science electives | 8 | |
Choose from: | ||
Biology I | ||
Biology II | ||
Chemistry II and Investigations in Chemistry II | ||
Physics I | ||
Physics II | ||
CSE 1011 | Introduction to CSE | 1 |
CSE 1284 | Introduction to Computer Programming | 4 |
CSE 1384 | Intermediate Computer Programming | 4 |
CSE 2213 | Methods and Tools in Software Development | 3 |
CSE 2383 | Data Structures and Analysis of Algorithms | 3 |
CSE 2813 | Discrete Structures | 3 |
CSE 3183 | Systems Programming | 3 |
CSE 3213 | Software Engineering Senior Project I | 3 |
CSE 3223 | Software Engineering Senior Project II | 3 |
CSE 3724 | Computer Organization | 4 |
CSE 3763 | Ethical and Legal Issues in Computing | 3 |
CSE 4214 | Introduction to Software Engineering | 4 |
CSE 4223 | Managing Software Projects | 3 |
or IE 4533 | Project Management | |
CSE 4233 | Software Architecture and Design Paradigms | 3 |
CSE 4283 | Software Testing and Quality Assurance | 3 |
CSE 4733 | Operating Systems I | 3 |
CSE 4833 | Introduction to Analysis of Algorithms | 3 |
Technical Electives - Choose from: | 15 | |
Engineering Economy I | ||
Human Factors Engineering | ||
Psychology of Human-Computer Interaction | ||
Production Control Systems I | ||
Engineering Administration | ||
Project Management | ||
Process Improvement Engineering | ||
Engineering Statistics II | ||
Industrial Quality Control | ||
Operations Research I | ||
Linear Programming | ||
Systems Simulation I | ||
Business Programming with COBOL | ||
Decision Support Systems | ||
Any upper-level CSE, ECE, or MA course | ||
Free elective | 9 | |
Total Hours | 128 |
Cybersecurity Major
English Composition | ||
EN 1103 | English Composition I | 3 |
EN 1113 | English Composition II | 3 |
Fine Arts | ||
See General Education courses | 3 | |
Natural Sciences | ||
CH 1213 | Chemistry I | 3 |
CH 1211 | Investigations in Chemistry I | 1 |
Science Electives | ||
Choose from the following (6 hours minimum): | 6 | |
Biology I | ||
Physics I | ||
Physics II | ||
Chemistry II and Investigations in Chemistry II | ||
Biology II | ||
Math | ||
MA 1713 | Calculus I | 3 |
MA 1723 | Calculus II | 3 |
MA 3113 | Introduction to Linear Algebra | 3 |
Math Elective | ||
Choose from the following: | 3 | |
Calculus III | ||
Foundations of Mathematics | ||
Graph Theory | ||
Number Theory | ||
Humanities | ||
See General Education courses | 6 | |
Social/Behavioral Sciences | ||
See General Education courses | 6 | |
Major Core Courses | ||
CSE 1011 | Introduction to CSE | 1 |
CSE 1284 | Introduction to Computer Programming | 4 |
CSE 1384 | Intermediate Computer Programming | 4 |
CSE 2213 | Methods and Tools in Software Development | 3 |
CSE 2383 | Data Structures and Analysis of Algorithms | 3 |
CSE 2813 | Discrete Structures | 3 |
CSE 3183 | Systems Programming | 3 |
CSE 3724 | Computer Organization | 4 |
CSE 3763 | Ethical and Legal Issues in Computing | 3 |
CSE 4153 | Data Communications and Computer Networks | 3 |
CSE 4173 | Cryptography | 3 |
CSE 4243 | Information and Computer Security | 3 |
CSE 4733 | Operating Systems I | 3 |
IE 4613 | Engineering Statistics I | 3 |
or MA 4523 | Introduction to Probability | |
or MA 4543 | Introduction to Mathematical Statistics I | |
or BQA 2113 | Business Statistical Methods I | |
Communication Requirement | ||
GE 3513 | Technical Writing | 3 |
Cybersecurity Electives | ||
Choose five of the following: | ||
Business Information Systems Security Management | ||
Secure Software Engineering | ||
Introduction to Computer Forensics | ||
Software Reverse Engineering | ||
Network Security | ||
Operating Systems II | ||
Introduction to Cyber Operations | ||
Technical Electives | ||
Any upper-level course in the following areas that is not already required in the Cybersecurity curriculum: CS, ECE, MA | ||
Free electives | 6 | |
Total Hours | 128 |
Computer Science Minor
Computer science has application in a broad range of disciplines, and students with majors in other fields of study may wish to complement their studies with a minor in computer science. Completion of the minor requirements should prepare the student to pursue a career as a computer applications specialist within his/her field of study or as an entry-level computer programmer in the general computing environment. The minor in computer science is not available to students majoring in computer engineering or software engineering since significant parts of these majors consist of computer science courses.
A minor in computer science consists of:
CSE 1284 | Introduction to Computer Programming | 4 |
CSE 1384 | Intermediate Computer Programming | 4 |
CSE 2383 | Data Structures and Analysis of Algorithms | 3 |
CSE 2813 | Discrete Structures | 3 |
Nine hours of approved upper-division courses | 9 |
A list of approved courses is available from the Department of Computer Science and Engineering.
Software Engineering Minor
Software Engineering practices and skills are valuable in a wide range of disciplines, and students with majors in other fields of study may wish to complement their studies with a minor in software engineering. Completion of the minor requirements should prepare the student to pursue careers that involve the application and development of software systems in their field of study.
A minor in software engineering consists of
CSE 1284 | Introduction to Computer Programming | 4 |
CSE 1384 | Intermediate Computer Programming | 4 |
CSE 2383 | Data Structures and Analysis of Algorithms | 3 |
CSE 4214 | Introduction to Software Engineering | 4 |
Approved upper-division software engineering courses | 9 |
A list of approved courses is available from the Department of Computer Science and Engineering.
Courses
CSE 1001 First Year Seminar: 1 hour.
One hour lecture. First-year seminars explore a diverse array of topics that provide students with an opportunity to learn about a specific discipline from skilled faculty members
CSE 1011 Introduction to CSE: 1 hour.
(Prerequisites: Freshman standing, Major in CS or SE). One hour lecture. Introduction to the computer science and software engineering curricula, profession, and career opportunities. Historical perspective; support role of the department. Ethics, team building, problem solving
CSE 1013 CSE AP Credit: 3 hours.
Credit for Advanced Placement Computer Science Principles. Requires a score of 3 or higher on the AP Computer Science Principles exam
CSE 1233 Computer Programming with C: 3 hours.
(Prerequisite: MA 1313 or equivalent). Three hours lecture. Problem-solving methods, algorithm development, debugging and documentation in the C Programming language; applications. ( Not recommended to students with credit in CSE 1213 or CSE 1233 or equivalent)
CSE 1273 Computer Programming with Java: 3 hours.
(Prerequisite:MA 1313 or equivalent). Three hours lecture Problem-solving methods, algorithm development, debugging and documentation in the Java programming language; applications.(Not recommended to students with credit in CSE 1213 or CSE 1233 or equivalent)
CSE 1284 Introduction to Computer Programming: 4 hours.
(Prerequisiste:MA 1313 or equivalent).Three hours lecture Three hours laboratory. Introductory problem solving and computer programming using object-oriented techniques. Theoretical and practical aspects of programming and problem solving. Designed for CSE,CPE and SE majors
CSE 1384 Intermediate Computer Programming: 4 hours.
(Prerequisite: CSE 1284 with grade of C or better). Three hours lecture.Three hour laboratory. Object-oriented problem solving, design,and programming. Introduction to data structures, algorithm design and complexity. Second course in sequence designed for CSE,CPE and SE majors
CSE 2213 Methods and Tools in Software Development: 3 hours.
(Prerequisite: CSE 1384 with a grade of C or better). Three hours lecture. Intro to key concepts, methods, and tools in software development not introduced in the introductory programming courses. Includes techniques for team-based SW development, agile design, implementation, testing patterns and strategies, and data retrieval using SQL
CSE 2383 Data Structures and Analysis of Algorithms: 3 hours.
(Prerequisite :Grade C or better in CSE 1384 and MA 1713). Three hours lecture. Non-linear data structures and their associated algorithms. Trees, graphs, hash tables, relational data model, file organization. Advanced software design and development
CSE 2813 Discrete Structures: 3 hours.
(Prerequisites:Grade of C or better in CSE 1284 and MA 1313 or equivalent). Three hours lecture. Concepts of algorithms, induction, recursion,proofs, topics from logic,set theory, combinatorics, graph theory fundamental to study of computer science
CSE 2990 Special Topics in Computer Science and Engineering: 1-9 hours.
Credit and title to be arranged. This course is to be used on a limited basis to offer developing subject matter areas not covered in exisiting courses.(Courses limited to two offerings under one title with two academic years)
CSE 3183 Systems Programming: 3 hours.
(Prerequisite: Grade of C or better in CSE 2383). Three hours lecture. Overview of contemporary systems programming concepts, tools, and techniques. Shell programming, systems administration tools, distributed systems, and internet concepts
CSE 3213 Software Engineering Senior Project I: 3 hours.
(Prerequisite: CSE 4214 with grade of C or better). Six hour laboratory. Software requirements elicitation and specification, cost estimation, scheduling, development of project management and quality assurance plans, reviews
CSE 3223 Software Engineering Senior Project II: 3 hours.
(Prerequisite: CSE 4214 with grade of C or better). Six hour laboratory. Teamwork, software design, construction, implementation of project management and quality assurance plans, and configuration management
CSE 3324 Distributed Client/Server Programming: 4 hours.
(Prerequisite: All majors: Grade of C or better in CSE 2383. CS/SE majors: CSE 4503 with a grade of C or better). Three hours lecture. Three hours laboratory. Design of software systems for distributed environments. Multithreaded and server-side programming, client/server
CSE 3713 Introduction to Cybersecurity: 3 hours.
(Prerequisites: CSE 1284, CSE 1233, or equivalent). Three hours lecture. A student who received credit in CSE 4253, CSE 4243, CSE 4363, CSE 4173, or CSE 4383 may not receive credit for this class. Basic security concepts and analysis. Cryptography basics. Computer and network attacks and defense techniques
CSE 3724 Computer Organization: 4 hours.
(Prerequisites: C in CSE 1384). Three hours lecture, two hours laboratory. How computer programs are executed by stored program computers. Topics include Boolean logic, design of combinational and sequential logic circuits, number systems and computer arithmetic, HW design and organization of a CPU, machine and assembly language programming
CSE 3763 Ethical and Legal Issues in Computing: 3 hours.
(Prerequisite: Junior Standing). Three hours lecture. Exploration of how and why information security laws and policies are developed and managed. Students learn about existing state and federal laws and explore social and ethical issues related to information technology and computing in society
CSE 3813 Introduction to Formal Languages and Automata: 3 hours.
(Prerequisites:Grade of C or better in CSE 2383 and CSE 2813). Three hour lecture. Theoretical foundations of computer science; formal languages and automata, parsing of context-free languages; Turing machines; introduction to computability and complexity
CSE 3981 Social and Ethical Issues in Computing: 1 hour.
(Prerequisite: Senior standing) One hour lecture. Study of major social and ethical issues in computing, impact of computers on society, and the computer professional's code of ethics
CSE 4000 Directed Individual Study in Computer Science and Engineering: 1-6 hours.
Hours and credits to be arranged
CSE 4153 Data Communications and Computer Networks: 3 hours.
(Prerequisites: Grade of C or better in CSE 3723 or ECE 3724). Three hours lecture. The concepts and practices of data communications and networking to provide the student with an understanding of the hardware
CSE 4163 Designing Parallel Algorithms: 3 hours.
(Prerequisites: Grade of C or better in CSE 3183). Three hours lecture. Techniques for designing algorithms to take advantage efficiently of different parallel architectures. Includes techniques for parallelizing sequential algorithms and techniques for matching algorithms to architectures
CSE 4173 Cryptography: 3 hours.
(Prerequisite: CSE 2383 Data Structures and Algorithms). Three hours lecture. Discrete probability, Information theory, Symmetric Cryptography, Introductory Number Theory, Asymmetric Cryptography, Standard Cryptographic Primitives, Cryptographic Protocols
CSE 4214 Introduction to Software Engineering: 4 hours.
(Prerequisite: CSE 2383 with a grade of C or better). Three hours lecture. Two hours laboratory. Introduction to software engineering; planning, requirements, analysis and specification, design; testing; debugging; maintenance; documentation. Alternative design methods, software metrics, software projecet management, reuse, and reengineering
CSE 4223 Managing Software Projects: 3 hours.
(Prerequisite:CSE 4214/6214 with grade of C or better). Three hours lecture. Concepts in software project management functions such as planning, organizing, staffing, directing and control, estimating, scheduling, monitoring, risk management, and use of tools
CSE 4233 Software Architecture and Design Paradigms: 3 hours.
(Prerequisite: Grade of C or better in CSE 4214/6214). Three hours lecture. Topics include software architectures, methodologies, model representations, component-based design ,patterns,frameworks, CASE-based designs, and case studies
CSE 4243 Information and Computer Security: 3 hours.
(Prerequisite: Credit in CSE 3183). Three hours lecture. Topics include encryption systems, network security, electronic commerce, systems threats, and risk avoidance procedures
CSE 4253 Secure Software Engineering: 3 hours.
(Prerequisite: CSE 2213 and CSE 2383 both with a grade of C or better). Three hours lecture Principles, techniques, and practices involved in building security into software systems including security requirements analysis, secure design, secure coding and security testing, verification and risk
CSE 4263 Web Application Security: 3 hours.
(Prerequisites: CSE 2213 and CSE 3183 with a grade of C or better). Three hours lecture. Introduction to web application security and penetration testing, including the basics of software security, common vulnerabilities and attacks, and hands-on practice in both exploitation techniques and strategies for protecting and hardening applications
CSE 4273 Introduction to Computer Forensics: 3 hours.
(Prerequisite:Senior standing in CSE/SE/CPE/MIS/CJ) Three hours lecture. Introduction to computer crime and the study of evidence for solving computer-based crimes. Topics: computer crime, computer forensics and methods for handling evidence
CSE 4283 Software Testing and Quality Assurance: 3 hours.
(Prerequisite:Grade of C or better in CSE 4214/6214). Three hour lecture. Topics include methods of testing, verification and validation, quality assurance processes and techniques, methods and types of testing, and ISO 9000/SEI CMM process evaluation
CSE 4293 AI for Cybersecurity: 3 hours.
Three hours lecture. Prerequisite: CSE 4633 with a grade of C or better. The use of artificial intelligence and machine learning to solve cybersecurity problems, including advanced topics in applying these techniques to real-world datasets to learn about Cyber Threat Intelligence (CTI), malware analysis, and classification
CSE 4353 Applications of Literate Programming in Software Development: 3 hours.
(Prerequisites: Grade of C or better in ECE 3724 or CSE 3724 and junior or graduate standing or consent of instructor). Two hours lecture and two hours laboratory. Techniques for software development and embedded systems, with an emphasis on interleaved documentation for code longevity. (Same as ECE 4793/6793)
CSE 4363 Software Reverse Engineering: 3 hours.
(Prerequisite: Grade of C or better in CSE 3183). Three hours lecture. Software specification recovery and malicious software analysis. Tools and techniques for analyzing compiled programs and communications in the absence of documentation
CSE 4383 Network Security: 3 hours.
(Prerequisites: CSE 4173/6173 Cryptography; and credit or registration in CSE 4153/6153). Three hours lecture. Basic and advanced concepts in cryptography and network security: symmetric and asymmetric cryptography, key management, wired and wireless network security protocols, network systems security
CSE 4413 Principles of Computer Graphics: 3 hours.
(Prerequisities:MA 3113 and grade of C or better in CSE 2383). Three hours lecture. Graphics hardware; algorithms,graphics primitives, windowing and clipping , transformations,3D graphics, shading,hidden surfaces; standards
CSE 4423 Data Visualization: 3 hours.
Three hours lecture. Course providing theoretical foundation for data visualization. Deals with external representation and interactive manipulation of information, data, or artifacts using digital tools to enhance communication, analytical reasoning, and decision-making. (Same as DSCI 4013)
CSE 4453 Game Design: 3 hours.
(Prerequisites: All majors: junior standing, Design-oriented majors: courses in digital art and/or sound design, CSE/SE/CPE majors: CSE 2213 and CSE 2383 with a grade of C or better). Three hours lecture. Principles of computer game design: Game mechanics, structure, narrative, character/environment/level design
CSE 4503 Database Management Systems: 3 hours.
(Prerequisites: CSE 2383 and CSE 2813, both with a grade of C or better). Three hours lecture. Modern database models; basic database management concepts; query languages; database design through normalization; advanced database models; extensive development experience in a team environment
CSE 4613 Bio-computing: 3 hours.
Three hours lecture. Essential programming skills for computational biology. Problem-solving and use of specialized bio-computing libraries. (Credit will not be given to students matriculating in Computer Science, Computer Engineering , or Software Engineering degree programs)
CSE 4623 Computational Biology: 3 hours.
(Prerequisite:BCH 4113/6113 or equivalent and CSE 1384 or CSE 4613/6613 ). Three hours lecture. Computational analysis of gene sequences and protein structures on a large scale. Algorithms for sequence alignment, structural and functional genomics, comparative genomics, and current topics
CSE 4633 Artificial Intelligence: 3 hours.
(Prerequisite:Grade of C or better in CSE 2383 and CSE 2813) Three hours lecture. Study of the computer in context with human thought processes. Heuristic programming;search programming; search strategies; knowledge representation; natural language understanding; perception; learning
CSE 4643 AI Robotics: 3 hours.
(Prerequisites: Grade of C or better in CSE 2383 or CSE 1233 or with consent of instructor). Three hours lecture. Introduction to artificial intelligence methods for mobile robots. Focus on the theory and practice of robot sensing, localization, navigation, and intelligent task execution
CSE 4653 Cognitive Science: 3 hours.
(Prerequisite: PSY 3713 or CSE 4633 or PHI 4143/6143 or AN 4623/6623). Three hours lecture. The nature of human cognition from an interdisciplinary perspective, primarily utilizing a computational model, including insights from philosophy, psychology, linguistics, artificial intelligence, anthropology, and neuroscience. (Same as PSY 4653/6653)
CSE 4663 Human-Computer Interaction: 3 hours.
(Prerequisite: Junior class standing or consent of instructor). Three hours lecture. Conceptual models formed by users, aspects of computer systems which affect users, interface design and evaluation, and examples and critiques of specific interfaces
CSE 4683 Machine Learning and Soft Computing: 3 hours.
(Prerequisite: IE 4613 Engineering Statistics I or MA 4543 Intro Math Stat I or MA 4523 Intro to Probability or equivalent). An introduction to the field of machine learning and soft computing. Covers rule based expert systems, fuzzy expert systems, artificial neural networks, evolutionary computation, and hybrid systems
CSE 4693 Introduction to Machine Learning: 3 hours.
(Prerequisites: CSE 1284 with a C or better, and IE 4613 Eng Statistics I, MA 4543 Intro to Math Stat I, or MA 4523 Intro to Probability). Provides an overview of the most important machine learning and data mining methods, and how to apply to large data sets
CSE 4714 Theory & Implementation of Programming Languages: 4 hours.
(Prerequisites: CSE 2383 and CSE 3723 with a grade of C or better). Three hours lecture. Two hours laboratory. An introduction to programming language specification and analysis. Additional topics include control structures, data types, and structures, run-time environments, binding strategies, compilers, and interpreters
CSE 4723 Compiler Construction: 3 hours.
(Prerequisite:Credit or registration in CSE 4713/6713). Formal treatment of context-free programming language translation and compiler design concepts, including: lexical, syntactic and semantic analysis, machine-dependent code generation and improvement, and error processing
CSE 4733 Operating Systems I: 3 hours.
(Prerequisites: C or better in CSE 3723 and CSE 3183, or C or better in CSE 2383 and ECE 3724). Three hours lecture. Historical development of operating systems to control complex computing systems; process management, communication, scheduling techniques; file systems concepts and operation; data communication, distributed process management
CSE 4743 Operating Systems II: 3 hours.
(Prerequisites: CSE 4733/6733 with grade of C or better). Three hours lecture. Integrated treatment of hardware and software concepts in operating systems design; procedure implementation; creation and control of processes;name and space management
CSE 4763 Ethical and Legal Issues in Computing: 3 hours.
Three hours lecture. This course will provide students with an advanced understanding of how and why information security laws and policies are developed and managed. Students will learn about existing state and federal laws and explore social and ethical issues related to information technology and computing
CSE 4773 Introduction to Cyber Operations: 3 hours.
Three hours lecture. This course is designed to develop the students’ knowledge of basic cyberspace operations concepts and methodologies. Graduates should be able to assist in the analysis, synthesys, and evaluation of management, engineering, and operational approaches to solve complex problems within cyberspace, defensive and offensive
CSE 4800 Undergraduate Research: 13 hours.
The purpose of this course is to provide a student with the opportunity to participate in research and/or creative project beyond the traditional undergraduate experience, while allowing the university to track undergraduate participation in these activities. Hours, credits and deliverables to be arranged
CSE 4833 Introduction to Analysis of Algorithms: 3 hours.
(Prerequisites: CSE 2383 and CSE 2813 with a grade of C or better). Three hours lecture. Study of complexity of algorithms and algorithm design. Tools for analyzing efficiency; design of algorithms, including recurrence, divide-and-conquer, dynamic programming and greedy algorithms
CSE 4990 Special Topics in Computer Science and Engineering: 1-9 hours.
Credit and title to be arranged. This course is to be used on a limited basis to offer developing subject matter areas not covered in existing courses. (Courses limited to two offerings under one title within two academic years)
CSE 6153 Data Communications and Computer Networks: 3 hours.
(Prerequisites: Grade of C or better in CSE 3723 or ECE 3724). Three hours lecture. The concepts and practices of data communications and networking to provide the student with an understanding of the hardware
CSE 6163 Designing Parallel Algorithms: 3 hours.
(Prerequisites: Grade of C or better in CSE 3183). Three hours lecture. Techniques for designing algorithms to take advantage efficiently of different parallel architectures. Includes techniques for parallelizing sequential algorithms and techniques for matching algorithms to architectures
CSE 6173 Cryptography: 3 hours.
(Prerequisite: CSE 2383 Data Structures and Algorithms). Three hours lecture. Discrete probability, Information theory, Symmetric Cryptography, Introductory Number Theory, Asymmetric Cryptography, Standard Cryptographic Primitives, Cryptographic Protocols
CSE 6214 Introduction to Software Engineering: 4 hours.
(Prerequisite: CSE 2383 with a grade of C or better). Three hours lecture. Two hours laboratory. Introduction to software engineering; planning, requirements, analysis and specification, design; testing; debugging; maintenance; documentation. Alternative design methods, software metrics, software projecet management, reuse, and reengineering
CSE 6223 Managing Software Projects: 3 hours.
(Prerequisite:CSE 4214/6214 with grade of C or better). Three hours lecture. Concepts in software project management functions such as planning, organizing, staffing, directing and control, estimating, scheduling, monitoring, risk management, and use of tools
CSE 6233 Software Architecture and Design Paradigms: 3 hours.
(Prerequisite: Grade of C or better in CSE 4214/6214). Three hours lecture. Topics include software architectures, methodologies, model representations, component-based design ,patterns,frameworks, CASE-based designs, and case studies
CSE 6243 Information and Computer Security: 3 hours.
(Prerequisite: Credit in CSE 3183). Three hours lecture. Topics include encryption systems, network security, electronic commerce, systems threats, and risk avoidance procedures
CSE 6253 Secure Software Engineering: 3 hours.
(Prerequisite: CSE 2213 and CSE 2383 both with a grade of C or better). Three hours lecture Principles, techniques, and practices involved in building security into software systems including security requirements analysis, secure design, secure coding and security testing, verification and risk
CSE 6263 Web Application Security: 3 hours.
(Prerequisites: CSE 2213 and CSE 3183 with a grade of C or better). Three hours lecture. Introduction to web application security and penetration testing, including the basics of software security, common vulnerabilities and attacks, and hands-on practice in both exploitation techniques and strategies for protecting and hardening applications
CSE 6273 Introduction to Computer Forensics: 3 hours.
(Prerequisite:Senior standing in CSE/SE/CPE/MIS/CJ) Three hours lecture. Introduction to computer crime and the study of evidence for solving computer-based crimes. Topics: computer crime, computer forensics and methods for handling evidence
CSE 6283 Software Testing and Quality Assurance: 3 hours.
(Prerequisite:Grade of C or better in CSE 4214/6214). Three hour lecture. Topics include methods of testing, verification and validation, quality assurance processes and techniques, methods and types of testing, and ISO 9000/SEI CMM process evaluation
CSE 6293 AI for Cybersecurity: 3 hours.
Three hours lecture. Prerequisite: CSE 4633 with a grade of C or better. The use of artificial intelligence and machine learning to solve cybersecurity problems, including advanced topics in applying these techniques to real-world datasets to learn about Cyber Threat Intelligence (CTI), malware analysis, and classification
CSE 6353 Applications of Literate Programming in Software Development: 3 hours.
(Prerequisites: Grade of C or better in ECE 3724 or CSE 3724 and junior or graduate standing or consent of instructor). Two hours lecture and two hours laboratory. Techniques for software development and embedded systems, with an emphasis on interleaved documentation for code longevity. (Same as ECE 4793/6793)
CSE 6363 Software Reverse Engineering: 3 hours.
(Prerequisite: Grade of C or better in CSE 3183). Three hours lecture. Software specification recovery and malicious software analysis. Tools and techniques for analyzing compiled programs and communications in the absence of documentation
CSE 6383 Network Security: 3 hours.
(Prerequisites: CSE 4173/6173 Cryptography; and credit or registration in CSE 4153/6153). Three hours lecture. Basic and advanced concepts in cryptography and network security: symmetric and asymmetric cryptography, key management, wired and wireless network security protocols, network systems security
CSE 6413 Principles of Computer Graphics: 3 hours.
(Prerequisities:MA 3113 and grade of C or better in CSE 2383). Three hours lecture. Graphics hardware; algorithms,graphics primitives, windowing and clipping , transformations,3D graphics, shading,hidden surfaces; standards
CSE 6453 Game Design: 3 hours.
(Prerequisites: All majors: junior standing, Design-oriented majors: courses in digital art and/or sound design, CSE/SE/CPE majors: CSE 2213 and CSE 2383 with a grade of C or better). Three hours lecture. Principles of computer game design: Game mechanics, structure, narrative, character/environment/level design
CSE 6503 Database Management Systems: 3 hours.
(Prerequisites: CSE 2383 and CSE 2813, both with a grade of C or better). Three hours lecture. Modern database models; basic database management concepts; query languages; database design through normalization; advanced database models; extensive development experience in a team environment
CSE 6613 Bio-computing: 3 hours.
Three hours lecture. Essential programming skills for computational biology. Problem-solving and use of specialized bio-computing libraries. (Credit will not be given to students matriculating in Computer Science, Computer Engineering , or Software Engineering degree programs)
CSE 6623 Computational Biology: 3 hours.
(Prerequisite:BCH 4113/6113 or equivalent and CSE 1384 or CSE 4613/6613 ). Three hours lecture. Computational analysis of gene sequences and protein structures on a large scale. Algorithms for sequence alignment, structural and functional genomics, comparative genomics, and current topics
CSE 6633 Artificial Intelligence: 3 hours.
(Prerequisite:Grade of C or better in CSE 2383 and CSE 2813) Three hours lecture. Study of the computer in context with human thought processes. Heuristic programming;search programming; search strategies; knowledge representation; natural language understanding; perception; learning
CSE 6643 AI Robotics: 3 hours.
(Prerequisites: Grade of C or better in CSE 2383 or CSE 1233 or with consent of instructor). Three hours lecture. Introduction to artificial intelligence methods for mobile robots. Focus on the theory and practice of robot sensing, localization, navigation, and intelligent task execution
CSE 6653 Cognitive Science: 3 hours.
(Prerequisite: PSY 3713 or CSE 4633 or PHI 4143/6143 or AN 4623/6623). Three hours lecture. The nature of human cognition from an interdisciplinary perspective, primarily utilizing a computational model, including insights from philosophy, psychology, linguistics, artificial intelligence, anthropology, and neuroscience. (Same as PSY 4653/6653)
CSE 6663 Human-Computer Interaction: 3 hours.
(Prerequisite: Junior class standing or consent of instructor). Three hours lecture. Conceptual models formed by users, aspects of computer systems which affect users, interface design and evaluation, and examples and critiques of specific interfaces
CSE 6683 Machine Learning and Soft Computing: 3 hours.
(Prerequisite: IE 4613 Engineering Statistics I or MA 4543 Intro Math Stat I or MA 4523 Intro to Probability or equivalent). An introduction to the field of machine learning and soft computing. Covers rule based expert systems, fuzzy expert systems, artificial neural networks, evolutionary computation, and hybrid systems
CSE 6693 Introduction to Machine Learning: 3 hours.
(Prerequisites: CSE 1284 with a C or better, and IE 4613 Eng Statistics I, MA 4543 Intro to Math Stat I, or MA 4523 Intro to Probability). Provides an overview of the most important machine learning and data mining methods, and how to apply to large data sets
CSE 6714 Theory & Implementation of Programming Languages: 4 hours.
(Prerequisites: CSE 2383 and CSE 3723 with a grade of C or better). Three hours lecture. Two hours laboratory. An introduction to programming language specification and analysis. Additional topics include control structures, data types, and structures, run-time environments, binding strategies, compilers, and interpreters
CSE 6723 Compiler Construction: 3 hours.
(Prerequisite:Credit or registration in CSE 4713/6713). Formal treatment of context-free programming language translation and compiler design concepts, including: lexical, syntactic and semantic analysis, machine-dependent code generation and improvement, and error processing
CSE 6733 Operating Systems I: 3 hours.
(Prerequisites: C or better in CSE 3723 and CSE 3183, or C or better in CSE 2383 and ECE 3724). Three hours lecture. Historical development of operating systems to control complex computing systems; process management, communication, scheduling techniques; file systems concepts and operation; data communication, distributed process management
CSE 6743 Operating Systems II: 3 hours.
(Prerequisites: CSE 4733/6733 with grade of C or better). Three hours lecture. Integrated treatment of hardware and software concepts in operating systems design; procedure implementation; creation and control of processes;name and space management
CSE 6753 Foundations in Computation: 3 hours.
(Prerequisite: CSE 1213 or CSE 1233 or CSE 1273 or CSE 1284 with a grade of C or better, or permission of instructor). Three hours lecture. Foundational concepts of computational algorithm design and analysis. (No credit for student in Computer Science, Computer Engineering, or Software Engineering degree programs)
CSE 6763 Ethical and Legal Issues in Computing: 3 hours.
Three hours lecture. This course will provide students with an advanced understanding of how and why information security laws and policies are developed and managed. Students will learn about existing state and federal laws and explore social and ethical issues related to information technology and computing
CSE 6773 Introduction to Cyber Operations: 3 hours.
Three hours lecture. This course is designed to develop the students’ knowledge of basic cyberspace operations concepts and methodologies. Graduates should be able to assist in the analysis, synthesys, and evaluation of management, engineering, and operational approaches to solve complex problems within cyberspace, defensive and offensive
CSE 6833 Introduction to Analysis of Algorithms: 3 hours.
(Prerequisites: CSE 2383 and CSE 2813 with a grade of C or better). Three hours lecture. Study of complexity of algorithms and algorithm design. Tools for analyzing efficiency; design of algorithms, including recurrence, divide-and-conquer, dynamic programming and greedy algorithms
CSE 6990 Special Topics in Computer Science and Engineering: 1-9 hours.
Credit and title to be arranged. This course is to be used on a limited basis to offer developing subject matter areas not covered in existing courses. (Courses limited to two offerings under one title within two academic years)
CSE 7000 Directed Individual Study in Computer Science and Engineering: 1-6 hours.
Hours and credits to be arranged
CSE 8000 Thesis Research/ Thesis in Computer Science and Engineering: 1-13 hours.
Hours and credits to be arranged
CSE 8011 Graduate Seminar: 1 hour.
One hour seminar. Reports on recent advances and problems in computer science by guest speakers,faculty, and students; student participation, general discussion
CSE 8080 Directed Project in Computer Science: 1-3 hours.
Hours and credits to be arranged. An individual professional project open only to candidates for the Master of Science degree (project option). Formal written and oral project reports are required
CSE 8153 Advanced Data Communications: 3 hours.
(Prerequisite:CSE 4153/6153 or equivalent). Three hours lecture. A study of advanced concepts and practices of data communications with particular emphasis on Local Area Networks and Transmission Control Protocol/Internet Protocol (TCP/IP)
CSE 8163 Parallel and Distributed Scientific Computing: 3 hours.
(Prerequisite:CSE 4163/6163). Three hours lecture. Algorithms for distributed scientific computing; performance evaluation; scheduling and load balancing issues for scientific applications; architectural issues affecting performance
CSE 8233 Software Engineering Project Management: 3 hours.
(Prerequisites:CSE 4214/6214). Three hours lecture. Management of the engineering of software products including estimating, planning, process management, and special topics
CSE 8243 Software Specification: 3 hours.
(Prerequisites:CSE 4214/6214). Three hours lecture. Writing software specifications, transforming specifications into code , and verifying transformations using formal methods
CSE 8253 Software Design: 3 hours.
(Prerequisite:CSE 4214/6214). Three hours lecture. Software design principles, attributes, models, and methodologies; object-oriented designs; real-time system design; user interface design;design verification; reusability issues; tools;current issues
CSE 8273 Software Requirements Engineering: 3 hours.
(Prerequisites:CSE 4214/6214 with grade of C or better). Three hours lecture. An in-depth study of current research and practice in requirements elicitation, requirements analysis, requirements specification, requirements verification and validation, and requirements management
CSE 8283 Empirical Software Engineering: 3 hours.
(Prerequisite:CSE 4214/6214). Three hours lecture. Basics of empirical software engineering, metrics, and modeling of the software development process, validation and comparing software engineering methods, and methods for data analysis
CSE 8413 Visualization: 3 hours.
(Prerequisites:CSE 4413/6413).Three hours lecture. Essential algorithms for three-dimensional rendering and modeling techniques;viewing transformations, illumination, surface modeling; methodologies for visualization of scalar and vector fields in three dimensions
CSE 8423 Data Science Concepts and Practice: 3 hours.
Three hours lecture. This course introduces the fundamental concepts of data science, covering data representation and transformation, visual data analysis, statistical modeling, tidy and relational data, functional data-flow programming, and communicating results. The course introduces the practice of data science, using standard data science tools and languages
CSE 8433 Advanced Computer Graphics: 3 hours.
(Prerequisites:CSE 4413/6413 ). Three hours lecture. Realistic, three-dimensional image generation; modeling techniques for complex three-dimensional scenes; advanced illumination techniques; fractal surface modeling; modeling and rendering of natural phenomena
CSE 8613 Cognitive Models of Skill: 3 hours.
(Prerequisite: Graduate standing). Three hours lecture. Introduction to cognitive modeling, with a focus on computational models of skill acquisition and expert skill. (Same as PSY 8723 )
CSE 8673 Machine Learning: 3 hours.
(Prerequisite: CSE 4633/6633 ). Three hours lecture. Introduction to machine learning, including computational learning theory, major approaches to machine learning, evaluation of models, and current research
CSE 8713 Advanced Cyber Operations: 3 hours.
Three hours lecture. This course is designed to develop the students’ knowledge of cyberspace operations concepts and methodologies. Graduates should be able to analyze, synthesize, and evaluate management, engineering, and operational approaches to solve complex problems within cyberspace, defensive and offensive
CSE 8723 Cyber Law and Policy: 3 hours.
Three Hours Lecture. This course will provide students with an advanced understanding of how and why information security laws and policies are developed and managed. Students will be exposed to existing laws at the state and federal level, as well as security policies of successful organizations
CSE 8743 Advanced Network Security: 3 hours.
Three Hours Lecture: This course explores advanced topics in Network Security, to include: Internet of Things, Wireless Networks, Low Complexity Cryptographic Models, Network System Models, Tamper Resistant Network Components
CSE 8753 Wireless Networks: 3 hours.
Three hours lecture. Wireless network protocol design, theoretical analysis, and security and privacy. (Same as ECE 8823)
CSE 8813 Theory of Computation: 3 hours.
(Prerequisite: CSE 3813).Three hours lecture.Study of abstract models of computation,unsolvability,complexity theory, formal grammars and parsing, and other advanced topics in theoretical computer science
CSE 8833 Algorithms: 3 hours.
(Prerequisites: CSE 4833/6833).Three hours lecture. Advanced techniques for designing and analyzing algorithms, advanced data structures, case studies, NP-completeness including reductions, approximation algorithms
CSE 8843 Complexity of Sequential and Parallel Algorithms: 3 hours.
(Prerequisite:CSE 4833/6833 ).Three hours lecture. Complexity of sequential algorithms, theory of complexity, parallel algorithms
CSE 8990 Special Topics in Computer Science and Engineering: 1-9 hours.
Credit and title to be arranged. This course is to be used on a limited basis to offer developing subject matter areas not covered in existing courses. (Courses limited to two offerings under one title within two academic years)
CSE 9000 Dissertation Research/ Dissertation in Computer Science and Engineering: 1-13 hours.
Hours and credits to be arranged
CSE 9133 Topics in High Performance Computing: 3 hours.
(Prerequisite:Consent of Instructor). Three hours lecture. Reading and study of current work related to the area of high performance computing. Intended for doctoral students. ( May be taken for credit more than once)
CSE 9633 Topics in Artificial Intelligence: 3 hours.
(Prerequisite: Consent of instructor). Three hours lecture. Reading and study of current work related to the area of artificial intelligence. Intended for doctoral students. (May be taken for credit more than once)