Computer Science (Master's)

Degrees and Certificates

Courses

INTC3000: Full-Time Internship in Computer Science

Credits 3
The Work Integrated Learning (WIL) based internship program is a significant experiential learning opportunity, typically with a company or community-based organization. The internship represents an integrated, practical, and applicable educational strategy that links classroom learning and student interest with the acquisition and direct application of knowledge in a workplace setting under the supervision of a faculty mentor. Through direct observation, reflection, and self-evaluation, students gain an understanding of the operational workplace environment and its myriad challenges and opportunities. Students will write critical reflections on their internship experience and will produce viable, innovative products that reflect on their learning in the degree program and in the workplace.

INTC3001: Part-Time Internship

Credits 1
Students undertake a significant experiential-learning opportunity, typically with a company or community based organization. The internship represents an educational strategy that links classroom learning and student interest with the acquisition of knowledge in an applied work setting. Through direct observation, reflection, and evaluation, students gain an understanding of the internship site's work, mission, and audience, how these potentially relate to their academic study, as well as the organization's position in the broader industry or field. Students will produce a critical reflection on their internship experience demonstrating how they have addressed specific learning goals.

MSCS1021: Technical Writing and Analysis for Computer Scientists Part I: Fundamentals

Credits 3
In this intensive-writing course, students will learn the proper development of white papers, technical papers, technical proposals, and presentations including how to research technical material using online databases and resources. Students will also learn proper citation methodologies including APA 7.0 and how to avoid plagiarism. The final project will include a technical proposal, a white paper resulting from proposal research, and a technical computer science-based presentation, all with proper citations in the APA 7.0 format. Throughout the course, students will be introduced to industry standard technical and computer science terminology as well as an extensive collection of seminal computer science papers.

MSCS1022: Technical Writing and Analysis for Computer Scientists: Capstone

Credits 3
The purpose of the capstone project is to demonstrate a solid foundation at the graduate level of the field of computer science both in research and in the application. The project allows the student to perform targeted research to develop an applied solution to a real-world situation or cutting-edge problem. The capstone also provides an assessment of the student’s ability to research, write, and communicate in the area of computer science as will be required in the computing and technology industry. The capstone focuses on a selected advanced computer science topic, then systematically engages students in that topic and its application across various science, technology, engineering, and management disciplines and industries. The capstone deliverable includes a detailed analysis of the topic and its current and future applications across the STEM areas.

MSCS2101: Software Engineering

Credits 3
This course covers basic software engineering elements and processes. It focuses on techniques used throughout the software engineering process; the software lifecycle and modeling techniques for requirements specification and software design are emphasized. Both traditional and object-oriented approaches are addressed. This class covers software engineering concepts and will tie them together strategically to help ensure that software is engineered with high quality in addition to being safe, secure, reliable, and resilient. Topics covered will include software safety, security, reliability, availability, and resilience; software risk management; software quality through verification, validation, and testing; fault tolerance; concurrency; and advanced software modeling. The class also covers basic systems engineering concepts to ensure foundational understanding of the full software development process within a project as well as the managerial aspect of the software-based project. The class demonstrates the vital relationship between software engineering and scientific, technical, and other engineering disciplines.

MSCS2103: Systems Programming

Credits 3
This course covers the discipline of computer science, as it is founded at the most basic levels, at the fusion of electrical engineering, mathematics, and linguistics. The course will cover the foundation of hardware and software logic, as manifested in both hardware and software constructs. It then maps software logic and structures to hardware logic and structures to form functional programs that are logically and structurally sound. Principles of number systems, Boolean and predicate logic, programming languages, language structure, logic gates, assembly principles, RAM, ROM, microprocessors, and computational mathematics will be covered in depth. This course will demonstrate how computer programs and hardware structures operate from the ground up.

MSCS2201: Artificial Intelligence

Credits 3
This course covers the foundations of artificial intelligence as a holistic computer science discipline. The course explores the many aspects of how human intelligence is encoded in computer programs and mechanisms such as robots, self-learning programs, and advanced data analytics. This course introduces the foundation of simulating or creating intelligence from a computational point of view. It covers the techniques of reduction, reasoning, problem solving, search, knowledge representation, and machine learning and applies them strategically to various problems in science, technology, engineering, and management domains and industries. It also explores computational complexity and issues arising at the junction between biological and artificial intelligence and infuses these issues into tangible and applicable solutions in the STEM domains to ensure sound and ethical application of AI models, processes, and techniques.

MSCS2202: Machine Learning

Credits 3
This course covers the primary areas of machine learning and applies them to real world computation scenarios. The goal of this class is to build computer models that can produce useful information whether they are predictions, associations, or classifications. This course covers the theoretical and practical algorithms, basic concepts and paradigms, key techniques, challenges, and tricks of machine learning. It also explores examples of how machine learning is used/applied today in the real world and demonstrates the construction and use of machine learning algorithms. This course discusses recent applications of machine learning, such as to robotic control, speech recognition, face recognition, data mining, autonomous navigation, bioinformatics, and text and web data processing. It also fuses machine learning with other areas of artificial intelligence and robotics and demonstrates the use and viability of machine learning models and techniques in myriad areas of science, technology, engineering, and management.

MSCS2219: Advanced Threat Analysis

Credits 3
This course covers advanced techniques of complex, blended threat analysis to ensure that the organization and its information assets are safe and secure through methods that facilitate the confidentiality, integrity, and availability of data and information at all organizational levels. The course focuses on advanced machine learning and artificial intelligence techniques and software that pre-emptively assess and mitigate threats from local, national, and international sources. Extensive threat data modeling and analysis techniques are studied and applied to myriad science, technology, engineering, and management domains and industries. Special emphasis is placed on mitigating zero-day and large scale coordinated attacks on an organization’s information infrastructure. The course explores and dissects case studies to demonstrate the best approaches and lessons learned from recent global cyber-attacks. The course concludes with the development of a software system that can sense and detect attack pre-emptions and protect the organization from those attacks, even if they are zero-day attacks based on sound threat analytics, visualizations, and models.

MSCS2301: User Interface Design and Implementation

Credits 3
This course will discuss how to create and refine interaction designs that ensure a quality user interface. It covers the theory behind good user interface design and develops the skills needed to design, implement, and evaluate your own user interface. The course emphasizes the agile and user-centered design process and covers the complete design process cycle. Requirement gathering: the course will discuss the importance of the user and task analysis and the techniques to perform the analysis. Design: Usability has several dimensions. Learnability, efficiency, and safety are the three dimensions that we highlight in this course. The course will discuss the design principles to make the user interface easy to learn, efficient to use, and less error-prone. Prototyping: The design ideas or different design alternatives need to be quickly presented in front of the target users for validation. The course will discuss the techniques for rapidly prototyping user interfaces, including paper prototyping, computer prototyping, and web-based framework with model-view-controller software architectural pattern. Evaluation: Evaluation is an integral part of the user-centered design process. The course will discuss the techniques for evaluating and measuring the interface usability, including heuristic evaluation and formative evaluation. The setting for this course is mobile and web applications.

MSCS2401: Data Science

Credits 3
This course covers the various elements of mathematics, statistics, data structures, databases, and computer science, and how they work together to provide the optimal analysis of data. The basic techniques of data science, algorithms for data mining, and basic statistical modeling are core competencies that will be studied in depth. Data science leverages all available and relevant data to effectively provide a predictive model that can be applied to real-world business, engineering, and technical and scientific problems; this course focuses on these areas extensively. The course concludes with an analysis of data science technologies and how data scientists access data, prepare data, and conduct viable substantive research across myriad domains, including the biological sciences, medical informatics, social sciences, engineering disciplines, and business organizations of all levels.

MSCS2702: Unmanned Aircraft Technology for Computer Scientists

Credits 3
This course introduces the aeronautical foundations of unmanned aircraft structure and design. It focuses on the primary airframes of unmanned systems: fixed wing, rotorcraft, tiltrotor, and lighter than air along with various hybrid technologies. The course also introduces avionics, propulsion, and payload systems and their interactions and control through computer busses and architecture. A central focus of the course is the interaction of computer structures with the aircraft to promote safety while managing the foundational stability and control properties of the aircraft: lift, thrust, drag, and weight. A survey of aeronautical principles is presented along with aerodynamics and aviation science. Technologies such as launch and recovery systems, GPS, communications, ground stations, data-link technologies, and wireless technologies are also presented. The course concludes with the development of a comprehensive proposal applying unmanned aircraft technology to solve a challenging technological problem in a selected industry. It is vital for computer scientists to understand aerodynamics and aircraft structures in order to safely and reliably program unmanned aircraft of all sizes to function in the national airspace. This course will help computer scientists understand how a drone works so that they can safely develop programs, algorithms, and security for them.

MSCS3008: Introduction to Robotics

Credits 3
This course explores the computational processes and artificial intelligence basis of robotics. The integration of software and hardware systems will be emphasized through proper computational paradigms such as algorithms, automata, search structures, and data manipulation in real-time reactive systems. Coverage of electronics and electronic interfaces will provide a solid foundation on which to base artificial intelligence structures. The use of sensors and motors, as controlled by software is covered, in addition to the use of embedded and mechanical software-driven systems. A special emphasis is placed on robot autonomy and learning through the precise use of computer algorithms and data structures. Robot sensing, analyzing, vision, and locomotion through computational structures will also be covered. The course integrates robotics theory and application into problem solving in myriad STEM domains and industries with the goal of sound, ethical solutions that are cost-effective and highly adaptive to the organization and its human elements.

MSCS3019: Data Visualization

Credits 3
This course introduces data visualization, which provides various means to communicate information and tell stories of quantitative data through graphic patterns. It exemplifies the concept that data visualization makes big data more approachable and valuable and greatly impacts the decision-making process in fields such as science, technology, engineering, and management. This course introduces students to the core concepts and various techniques and tools for data visualization. The course reviews various analytical tools of statistics followed by the basic elements of visual business, engineering, and scientific intelligence. The techniques of good design consideration and data preparation for the best visuals are systematically discussed. The course also presents the elements of cognitive science theory and the principles of graphic/interaction design and then applies them to the visualization of information. The course includes myriad case studies in the science, technology, engineering, and management disciplines and industries.

MSCS3020: Mining Massive Data Sets

Credits 3

Along with the rise of Internet commerce and social networks comes the opportunities and challenges of extremely large data sets where vital information is extracted by data mining. This course introduces the background, algorithms, and techniques for data mining specially targeting very large data sets. It begins with an introduction to data mining critical concepts. It then expands to the discussion of the map-reduce frameworks for parallelizing algorithms, which is the key for massive data set mining. The algorithms for locality sensitive hashing and streaming data mining will be followed. The course will then cover the techniques to find frequent item sets and clustering. Upon completion of the course, the student will have a solid foundation on how to efficiently and effectively extract information from massive data sets from myriad sources.

MSCS3204: Web Development

Credits 3
Web Development covers the fundamentals of web development from basic web structures to more advanced webpage and website development. This course views web development as both a science and an art. HTML 5 (Structure), CSS 3 (Presentation), and JavaScript (Behavior) will be introduced as the three foundation languages that form the basic structure of a webpage. Communication protocols will also be discussed. The course material will cover security and how security can be built into webpages at conception. The course has multiple projects which culminate with a fully developed website that is both aesthetic and functional.

MSCS3301: User-Centered Research and Evaluation

Credits 3
Human-Computer Interaction (HCI) is an interdisciplinary field drawing on psychology and the social sciences, computer science, engineering, and design. Professionals in this field use diverse methods and tools to understand, improve, and create technology that harmonizes with and improves human capabilities, goals, and social environments. This course is an introduction to user-centered practice in HCI. The first half of this course covers the pre-design part of the UX lifecycle. It covers key methods to understand the target user classes and identify the user’s goals and main tasks. It also introduces contextual inquiry, contextual analysis, needs and requirements extraction, and design-informing modeling. The second half of this course covers usability evaluation, covering techniques to evaluate and measure the interface usability in both qualitative and quantitative ways. It will also cover the complete evaluation process, starting from preparation, to running the user study session, to analyzing the data, to writing the evaluation reports on the findings that speak to the user’s needs. The course will cover standard or popular evaluation methods/techniques in the industry, including web analysis using A/B testing, controlled experiments, Common Industry Format (CIF) usability testing, and Software Usability Measurement Inventory (SUMI).

MSCS3302: HCI in Ubiquitous Computing

Credits 3
With touch-screen smartphones, smart watches, tablets, and other computing devices moving from labs to consumer use, ubiquitous computing represents the forefront of HCI innovation. The advent of affordable sensors and interaction devices and wireless mobile computing devices has created boundless opportunities for ubiquitous computing applications that can transform our lives. The course begins with a detailed review of current HCI advances in ubiquitous computing. It then concentrates on the HCI issues around the design and development of ubiquitous computing devices and systems and will develop ubiquitous computing concepts and interactions in real-world applications and devices.

MSCS3801: Discrete Mathematics for Computer Science

Credits 3
This course covers applied discrete mathematics and forms a logical introduction to the critical mathematical side of computer science and software engineering. Discrete structures and discrete mathematics are the foundation of computer science. Areas such as set theory, number theory, combinatorics, logic, functions, and discrete constructs and structures are discussed in depth and applied to principles of computer science. Case studies such as the mathematics of the RSA algorithm are studied and applied to real world computer science applications in areas of science, technology, engineering, and management.

MSCS3802: Automata, Computation, and Complexity

Credits 3
This course covers the theory of computation and application to complex and hard problems. Areas such as finite and push down automata, regular languages, regular expressions, context-free languages, Turing machines, computability, and complexity are studied in detail and applied to computational structures with real-world applications. The science of language such as phrase and context-free languages will also be covered in depth. The course will round out with a study in complexity theory and how it applies to hard computational problems.

MSCS3803: Algorithms in Python and R

Credits 3
This course provides a complete overview of the use and design of common algorithmic structures and their performance as implemented in many different programming languages. The course will include an in-depth presentation of basic and advanced algorithms and areas such as Big O notation. Formal algorithms are developed by students in both Python and R and then compared analytically to determine effectiveness and efficiency. The course will also discuss the computability and speed of algorithms and the trade-off analysis required to select the best algorithm for the complex computational problem at hand. The course concludes with the application and management of algorithms and algorithmic thinking in real world science, technology, and engineering scenarios and products.

MSCS3804: Cyber Security and Information Assurance

Credits 3
This course covers vital information assurance and computer security principles as applied to computer systems and organizational information systems. Information assurance principles such as availability, integrity, and confidentiality are applied strategically to ensure the integrity of data and information. The complex concepts of data privacy, data security, and the relationship of security to organizational computer systems are integral to this course. Many facets of computer security such as integrated circuit security, physical security, personnel security, systems security, and operations security are discussed and related directly to information assurance principles. The concepts of risks, threats, and vulnerabilities as applied to computational systems are covered as well as the mitigation them through various forms of software and computer technologies in a defense in depth structure. The course also includes detailed analysis of cyber security as a management as well as a technological function. It also applies cyber security to myriad scientific, technological, and engineering disciplines as an integrated component of their information and intellectual property systems.

MSCS3805: Statistical Analysis for Computer Science

Credits 3
This course covers the basics of statistical analysis and probability structures that are mandatory for the study of data science, as data science at its core is based on mathematics. Topics include exploratory data analysis, descriptive statistics, data and sampling distributions, statistical experiments and significance testing, regression and data prediction, Bayesian analysis, data classification, statistical machine learning, unsupervised learning, and probability structures. The course also applies mathematical concepts to real-world data science problems and applications relevant to STEM domains and industries.

MSCS3806: Advanced Topics in AI and Machine Learning

Credits 3
This course will provide an advanced study of the latest research and applications in artificial intelligence, machine learning, robotics, and the data science used in their applications. It surveys complex and relevant issues and provides students with a holistic look into the advanced concepts of AI and machine learning, which fuse together many areas of science, technology, engineering, and management. The course concludes with a comprehensive research paper that covers new and emerging areas of Al and machine learning and applies them to relevant STEM domains and industries.

MSCS3807: Data Modeling in Python and R

Credits 3

This course expands the coverage of data science into strategic modeling for the effective and efficient study, analysis, and presentation of data. Models and data programming is accomplished in the Python and R languages. The course covers areas such as conceptual, enterprise, logical and physical data modeling as well as generic and semantic data modeling. Various modeling processes and methodologies will be covered as well as many of the tools used by data scientists to construct viable data models. The course will conclude with the development of an enterprise level scientific or engineering data modeling project. 

MSCS3808: Advanced Robotics Computing

Credits 3
This course covers advanced robotics computing areas such as robotics programming and robot operating systems. It applies the concepts of artificial intelligence and machine learning with electrical and mechanical structures to produce functioning robots that are logically and structurally sound in both hardware and software. The course is hands-on, and robots will be constructed and programmed to perform various computationally complex tasks including navigation, sensing, effecting, and actuating. The course concludes with the construction of a robot that is thoroughly analyzed and tested.

MSCS3809: Advanced Data Science

Credits 3

This course covers emerging advanced topics in the field of data science. It surveys cutting edge research as well as tools and techniques that are expanding the domain of data science including areas of science, medicine, quantum computing, and business. The course includes extensive readings in data science and its cutting edge application and requires the student to perform their own research into the domain and to produce relevant research papers.

MSCS3917: Automata and Algorithms

Credits 3
This course covers the theory of computation and application to complex and hard problems. Areas such as finite and push down automata, regular languages, regular expressions, context free languages, Turing machines, computability and complexity are studied in detail and applied to computational structures with real world applications. The science of language such as phrase and context free languages is covered in depth. The course includes a study in complexity theory and how it applies to hard computational problems This course also provides a complete overview of the use and design of common algorithmic structures and their performance as implemented in many different programming languages. The course includes an in-depth presentation of basic and advanced algorithms and areas such as Big O notation. Formal algorithms are developed by students in both Python and R and then compared analytically to determine effectiveness and efficiency. The course discusses the computability and speed of algorithms and the trade-off analysis required to select the best algorithm for the complex computational problem at hand. The course concludes with the application and transpersonal management of automata, computation, algorithms, and complexity in real world science, technology, and engineering scenarios and products.

MSCS3920: Cyber Security: Defense

Credits 3
This course covers the proactive and pre-emptive cyber defense of information system assets at the data level through the organizational level. The goal of proactive defense is to mitigate the cyber risk of the organization. As such, risk management and sound cyber based organizational management is comprehensively integrated into the course. The defense of critical infrastructure is studied and plans for preventing, protecting, and providing time sensitive responses to attacks or threats are covered in detail to insure the confidentiality, integrity, and availability of data and information throughout the organization. The complexity of attacks and blended threats is covered from a holistic security point of view to ensure that threats from advanced or multiple sources are effectively mitigated to protect sensitive information and to safeguard organizational assets. The course covers myriad complex case studies and applies lessons learned to various STEM disciplines and industries to ensure that these industries can pre-emptively disrupt complex and blended cyber-attacks for sound organizational information assurance.

MSCS3921: Cyber Security: Forensics and Attack Analysis

Credits 3
This course covers the art and science of cybersecurity forensics, which is the application of investigation and analytical techniques to cyber systems to extract and preserve information that can inform cyber professionals on risk mitigation and that can legally be presented as evidence in a court of law. The course covers attack analysis in detail and provides sound investigative methods for collecting, analyzing, preserving, and interpreting cyber information and evidence. In addition to the technological aspects of cyber forensics, the course will cover the legal aspects of cyber forensics including classifications of evidence, evidence preservation, evidence tampering, discovery procedures and protocols, and case presentation in court. The course concludes with a comprehensive case study and the techniques and processes used to construct cyber forensic reports and evidence repositories for pending cyber-criminal cases. A major focus of the course is the application of forensics and attack analysis within various STEM based disciplines and organizations.

MSCS3922: Applied Cryptography

Credits 3
This course covers the basic and advanced concepts of cryptography and applies them to real-world applications with a special emphasis on cybersecurity applications. It covers the mathematical and logical aspects of cryptographic systems and how these constructs apply to real-world applications. The course also covers basic and advanced cryptographic protocols. Ciphers, encryption, and message integrity will be studied extensively. A comprehensive study of key systems will be a major part of the class. The course will conclude with the construction of original cryptographic constructs that are applied to real-world applications and tested for effectiveness and efficiency. A special emphasis on the use of cryptography in STEM disciplines and industries is a significant part of the application portion of the class.

WILC5000 : Full-Time Internship in Computer Science

Credits 0

This class is a guide through a professional internship to ensure that the internship provides professional learning experiences that will be applied to the professional arena. Students undertake a significant experiential learning opportunity, typically with a company or community-based organization. The internship represents an educational strategy that links classroom learning and student interest with the acquisition of knowledge in an applied work setting. Through direct observation, reflection and evaluation, students gain an understanding of the internship site's work, mission, and audience, how these potentially relate to their academic study, as well as the organization's position in the broader industry or field. Students will produce a critical reflection on their internship experience demonstrating how they have addressed specific learning goals.