At least 12 credits from the following courses:
MATH 601 - Introduction to Analytics (4)
This course provides an introductory overview of methods, concepts, and current practices in the growing field of statistics and data analytics. Topics to be covered include data collection, data analysis and visualization as well as probability, statistical inference and regression methods for informed decision-making. Students will explore these topics with current statistical software. Some emphasis will also be given to ethical principles of data analytics.
DATA 605 - Data Visualization & Reporting (4)
This course focuses on collecting, preparing, and analyzing data to create visualizations, dashboards, and stories that can be used to communicate critical business insights. Students will learn how to structure and streamline data analysis projects and highlight their implications efficiently using the most popular visualization tools used by businesses today.
DATA 611 - Applied Machine Learning (4)
This course explores two main areas of machine learning: supervised and unsupervised. Topics include the fundamental concepts, roadmap of a machine learning project, classification algorithms, regression algorithms, dimensionality reduction, model evaluation, natural language processing, neural networks and deep learning, typical issues in real-world machine learning problems, and Python programming in data science.
ISEC 610 - Information Assurance (4)
This course covers the fundamentals of security in the enterprise environment. Included are coverage of risks and vulnerabilities, threat modeling, policy formation, controls and protection methods, encryption and authentication technologies, network security, cryptography, personnel and physical security issues, as well as ethical and legal issues. This foundational course serves as an introduction to many of the subsequent topics discussed in depth in later security courses.
ISEC 620 - Software and App Security (4)
Today, software is at the heart of nearly every business from finance to manufacturing. Software pervades everyday life in expected places like phones and computers but also in places that you may not consider such as toasters, thermostats, automobiles, and even light bulbs. Security flaws in software can have impacts ranging from inconvenient to damaging and even catastrophic when it involves life-critical systems. How can software be designed and built to minimize the presence of flaws or mitigate their impacts' This course focuses on software development processes that identify, model, and mitigate threats to all kinds of software. Topics include threat modeling frameworks, attack trees, attack libraries, defensive tactics, secure software development lifecycle, web, cloud, and human factors.
ISEC 640 - Cryptography (4)
The cryptographic primitives of enciphering/deciphering and hashing are the two main methods of preserving confidentiality and data integrity at rest and in transit. As such, the study of cryptographic techniques is of primary interest to security practitioners. This course will cover the essential principles in historical and modern cryptography, including the underlying information theory, mathematics, and randomness. Critical technologies such as stream and block ciphers, symmetric and asymmetric cryptography, public key infrastructure, and key exchange will be explored. Finally, hashing and message authentication codes will be examined as a way of preserving data integrity.
COMP 645 - Object-Oriented Design & Practice (4)
This course surveys current practices in software development and software design, especially in the area of object-oriented design. The course will examine and contrast current and leading edge methodologies and practices, including agile, extreme programming, test-driven design, patterns, aspect-oriented programming, model-driven architecture, Unified Modeling Language, and integrated development environments.
COMP 650 - System Architecture & Engineering (4)
This course covers topics in software systems engineering. Its scope is the design of the overall architecture for software systems with emphasis on distributed architectures. The issues in an architecture centered software development cycle and project management are addressed.
COMP 670 - Application of Artificial Intelligence (4)
This course is an introduction to Artificial Intelligence (AI) from an applied perspective. After an introduction of some basic concepts and techniques (such as searching and knowledge representation), the course illustrates both the theoretical foundation and application of these techniques with examples from a variety of problems.
The course surveys a wide range of active areas in AI such as machine learning, artificial neural networks, evolutionary computing, robotics, intelligent agents and bio-inspired AI approaches. It strikes a balance between engineering approaches and theory.
Exercises include hands-on application of basic AI techniques as well as selection of appropriate technologies for a given problem. The principal topics in the selected areas are also coupled with projects where groups of students will participate in the creation of AI-based applications.
COMP 610 - Internship in Computer Science (1-4)
This course provides MSCS students the opportunity to further their education with relevant work experience in the field of Computer Science. This internship is an ongoing seminar between the student, faculty and the employment supervisor. It involves a Learning Contract (Curricular Practical Training [CPT] Information, or other), periodic meetings with the faculty representative, and professional experience at a level equivalent to other electives of the MSCS program. Specification of the materials to be submitted is established in the learning contract. Participation cannot be guaranteed for all applicants.
COMP 699 - Independent Studies in Graduate Computer Science (1-4)
Independent studies courses allow students in good academic standing to pursue learning in areas not covered by the regular curriculum or to extend study in areas presently taught. Study is under faculty supervision and graded on Pass/No Credit basis. For international students, curricular practiced training may be used as an independent study with approval of program chair. (See the "Independent Studies" section of the Academic Bulletin for more details.)