CISC 504 Principles of Programming Languages (3 semester hours)
Prerequisites: A Baccalaureate degree in computer science or a related technical field (e.g., electrical and computer engineering, information science, operations research) or permission of CISC grad committee

Description: This course explores a topic of collection of topics of special interest that is timely and in response to critical or emerging topics in the broad field of computer information sciences. The student with prior math or engineering education may have a foundation for the statistical concepts they encounter in a computer science graduate program, but not enough programming experience to keep up with the analysis, modeling and creating their own computational solutions. This course is intended to give the student the programming capability and experience required to succeed in their graduate study of master computer information sciences. The course is an application-driven and solution strategies with Python. Furthermore, integration between Python and other languages is also covered. Topics include programming paradigms, functional programming scripting languages, objects, algorithm design and analysis, trees, graphs, sorting and searching. The focus is on how these concepts relate to computational tasks in science and engineering.


CISC 520 Data Engineering and Mining (3 semester hours)
Prerequisites: Baccalaureate degree in Computer and Information Sciences with a concentration in Software Engineering and Systems Analysis or the equivalent.

Description: This course addresses the emerging issues in designing, building, managing, and evaluating advanced data-intensive systems and applications. Data engineering is concerned with the role of data in the design, development, management, and utilization of complex computing/information systems. Areas of interest include database design; meta knowledge of the data and its processing; languages to describe data, define access, and manipulate databases; and strategies and mechanisms for data access, security, and integrity control. Data mining is a rapidly growing field that is concerned with developing techniques to assist managers to make intelligent use of these data repositories. A number of successful applications have been reported in areas such as credit rating, fraud detection, database marketing, customer relationship management, and stock market investments. The field of data mining has evolved from the disciplines of statistics and artificial intelligence.


CISC 525 Big Data Architectures (3 semester hours)
Prerequisites: Baccalaureate degree in Computer Information Systems, Computer Sciences, or related field.

Description: Government, academia and industry have spent a great deal of time, effort, and money dealing with increases in the volume, variety, and velocity of collected data. Collection methods, storage facilities, search capabilities, and analytical tools have all needed to adapt to the masses of data now available. Google paved the way for a new paradigm in Big Data, with two seminal white papers describing the Google File System, a distributed file system for massive storage, and MapReduce, a distributed programing framework designed to work on data stored in the distributed file system. This course introduces the student to the concepts of Big Data and describes the usage of distributed file systems and MapReduce programming framework to provide skills applicable to developers and the data scientist in any facet of industry.


CISC 530 Computer Architecture for Software Engineers (3 semester hours)
Prerequisites: Baccalaureate degree in Computer and Information Sciences with a concentration in Software Engineering and Systems Analysis or the equivalent.

Description: Modern computer information systems are ever-increasing in complexity and sophistication. As a result, software engineers must be able to make effective decisions regarding the strategic selection, specification, design, and deployment of information systems. Therefore, this course addresses the topics of architectural design that can significantly improve the performance of computer information systems. The course introduces key architectural concepts, techniques, and guidance to software engineers to enable them to make more effective architectural decisions.


CISC 592 Software Architecture and Microservice (3 semester hours)
Prerequisites: A bachelor’s degree (BA / BS / BE) in Computer Science or a related technical field (e.g., Electrical and Computer Engineering, Information Science, Operations Research) typically suffices, or permission of CISC grad committee.

Description: This course explores a collection of topics in Software Architecture and Microservices and introduces concepts and best practices of software architecture. It deals with; high-level building blocks that represent the underlying software system, how a software system is structured, and how that system’s elements are meant to interact. Fundamentals of software architecture, its principles, elements, components, configurations and architectural structures and styles will also be discussed. Special focus will be given to the interaction between quality attributes and software architecture. Societal and ethical implications of software architecture and microservices will also be discussed.


CISC 593 Software Verification and Validation (3 semester hours)
Prerequisites: CISC 592

Description: This course will introduce various software testing techniques such as; unit testing, integration testing, system testing, acceptance testing, and regression testing, types of software errors, reporting and analyzing software errors, problem tracking systems, test planning, test case design, and verification & validation. The course also explores functional (black box) methods for testing software systems, reporting problems effectively and planning testing projects. Students will apply testing techniques that they have learned, throughout the course, to a sample application.


CISC 594 Software Testing Principles and Techniques (3 semester hours)
Prerequisites: CISC 593

Description: This course explores a collection of topics in Software Testing Principles and Techniques. It introduces testing techniques, software quality fundamentals, and focuses on software quality assurance for the entire software development lifecycle. It covers topics such as; Quality factors, Software Quality Requirements, Reviews, Software Audits, Software Configuration Management, Policies, Processes, and Procedures, Measurement, Risk Management, Software Quality Assurance Plan, Software Quality Models, Test Automation, Testing Tools, Black Box and White Box testing techniques. The Pareto Principle Applied to Software Quality Assurance, and Software Testing Strategies will also be discussed.


CISC 600 Scientific Computing I (3 semester hours)
Prerequisites: A baccalaureate degree in computer science or a related technical field (e.g. electrical and computer engineering, information science or operations research).

Description: This course provides an overview of scientific computing and covers: Solution of Linear Algebraic Equations, Interpolation and Extrapolation, Integration and Evaluation of Functions, Random Numbers, and Sorting. The course uses C++ programming language as the base language to solve the problem sets. The student may choose to use another programming language as well. The course is conceived as an introduction to the thriving field of numerical simulation for computer scientists, mathematicians, engineers, or natural scientists without an already strong background in numerical methods.


CISC 601 Scientific Computing II (3 semester hours)
Prerequisites: CISC 600

Description: Scientific Computing II covers: root finding and nonlinear sets of equations, minimization or maximization of functions, eigensystems, fast Fourier transform, Fourier and spectral applications, statistical description of data, and modeling of data. The course uses C++ programming language as a base language to solve the problem sets, or a student can choose another programming language. The course is intensely practical with fully worked examples and graded exercises.


CISC 603 Theory of Computation (3 semester hours)
Prerequisites: CISC 530 and CISC 610

Description: This course contains abstract models of computation and computability theory including formal languages, finite automata, regular expressions, context-free grammars, pushdown automata, Turing machines, primitive recursive and recursive functions, and decidability and un-decidability of computational problems.


CISC 610 Data Structures and Algorithms (3 semester hours)
Prerequisites: CISC 504

Description: This course emphasizes fundamental algorithms and advanced methods of algorithmic design, analysis and implementation. This class overs techniques used to analyze problems and algorithms (including asymptotic, upper/lower bounds, best/average/worst case analysis, amortized analysis, complexity), basic techniques used to design algorithms (including divide and conquer/greedy/dynamic programming/heuristics, choosing appropriate data structures) and important classical algorithms (including sorting, string, matrix, and graph algorithms) and data structures.


CISC 611 Network Operating Systems (3 semester hours)
Prerequisites: CISC 530, CISC 600, and CISC 610

Description: This course introduces the principles and implementations of operating systems and networking. The operating system manages hardware resources and provides a simplified interface for programs to use these resources. Networking allows different computers to communicate and potentially act as a larger virtual system. These topics are closely related; networking is often managed by the operating system (and always requires use of the hardware it manages) and the operating system uses the network to provide services like the file system. C++ language is needed to facilitate out study to these topics which provides low-level access to the hardware and is often used in operating systems and networking.


CISC 612 Elements of Computing Systems (3 semester hours)
Prerequisites: CISC 611

Description: This course is an integration process of key notions from algorithms, computer architecture, operating systems, compilers, and software engineering into one unified framework. This is done constructively, by building a general-purpose computer system from the ground up. In the process, many ideas and techniques are used in the design of modern hardware and software systems, and discuss major trade-offs and future trends. This is a hands-on course, evolving around building the full set of HW and SW modules including the chip set of simple computers using a simulator, developing the assembler, building part of the virtual machine translator and a simple compiler all the way to a simple programming language and a simple game.


CISC 614 Computer Simulation (3 semester hours)
Prerequisites: CISC 601 and CISC 611

Description: This course is about the use of simulation to make better business decisions in application domains from healthcare to mining, heavy manufacturing to supply chains, and everything in between. It is written to help both technical and non-technical users better understand the concepts and usefulness of simulation. The student can use the programming languages of their choice or use an off-the-shelf software to implement their projects.


CISC 620 Principles of Machine Learning (3 semester hours)
Prerequisites: CISC 530, CISC 600, and CISC 610

Description: This course introduces the basic idea of machine learning and the application to data from real world problems. Topics include: Classification as a Problem-Solving Tool, Similarity Measures and Clustering. The Classification Process, Classification for Sentiment Analysis, Advanced Recommendations, FFT Classifiers, Computer Vision & Pattern Recognition, Dimensionality Reduction, and Big Data & Machine Learning.


CISC 621 Statistical Pattern Recognition (3 semester hours)
Prerequisites: CISC 610, equivalent, or permission of the instructor

Description: Statistical pattern recognition techniques are used to design automated systems that improve their own performance through experience. This course covers the methodologies, technologies, and algorithms of statistical pattern recognition from a variety of perspectives. The objective is to provide a reasonable answer for all possible data and to classify input data in to objects or classes based on certain features. After taking the course, the student should have: a clear understanding of the design and construction and a pattern recognition system; major approaches in statistical and syntactic pattern recognition; some exposure to the theoretical issues involved in pattern recognition system design such as the curse of dimensionality and clear working knowledge of implementing pattern recognition techniques.


CISC 625 Digital Image Processing (3 semester hours)
Prerequisites: CISC 621, equivalent, or permission of the instructor

Description: This course focuses on explaining and demonstrating the limitations and tradeoffs of various digital image representations, such as computed 3-D images, grayscale versus color, and tools such as wavelet transforms and image compression techniques. Additionally, displaying the ability to manipulate both binary and grayscale digital images using morphological filters and operators to achieve a desired result; showing how higher-level image concepts such as edge detection, segmentation, representation, and object recognition can be implemented and used.


CISC 661 Principles of Cybersecurity & Cyber Warfare (3 semester hours)
Prerequisites: Bachelor of Science degree in Computer and Information Sciences

Description: The course introduces the student to the interdisciplinary field of cybersecurity. Topics include the evolution of information security into cybersecurity and exploring the relationship of cybersecurity to organizations and society. The analyses of the threats and risks to/in these environments are examined. The ultimate goal of this course is for the student to acquire the advanced knowledge required to develop the skills needed to integrate knowledge from this course into a workplace environment.


CISC 662 Ethical Hacking Development Lab (3 semester hours)
Prerequisites: CISC 661

Description: This course integrates cyber risk management into day-to-day operations. Additionally, it enables an enterprise to be prepared to respond to the inevitable cyber incident, restore normal operations and ensure that the enterprise assets and the enterprise’s reputation are protected. This course focuses the student on a broad range of topics relative to risk-based planning for enterprise cybersecurity. The intent is to focus on creating risk assessment and modeling approaches to solve cybersecurity issues, so organizations can build security framework and sustain a healthy security posture. This course analyzes external and internal security threats, failed systems development and system processes and explores their respective risk mitigation solutions through policies, best practices, operational procedures, and government regulations.


CISC 663 Cyber Risk Assessment and Management (3 semester hours)
Prerequisites: CISC 661

Description: This course integrates knowledge accumulated from the prerequisites and serves as a capstone for the concentration in Computer Security. Attention is focused on the techniques for protecting critical information infrastructures and the process of identifying the risk to data and information using case studies, application development, and systems assessment.


CISC 664 Advanced Digital Forensics (3 semester hours)
Prerequisites: CISC 662

Description: Digital Forensics is “the application of computer science and investigative procedures for a legal purpose involving the analysis of digital evidence.” Digital forensics encompasses much more than just laptop and desktop computers. Mobile devices, networks, and “cloud” systems are very much within the scope of the discipline. It also includes the analysis of images, videos, and audio (in both analog and digital format). The goal is to provide digital evidence that are obtained (both in direct and indirect ways) from digital media. The course focuses on the analysis of authenticity, comparison, and enhancement as the main vehicle to obtain digital evidences (both in direct and indirect ways) from digital media.


CISC 665 Biometric Security Systems (3 semester hours)
Prerequisites: CISC 662

Description: Biometric security systems is a rapidly evolving field with applications ranging from accessing one’s computer to gaining entry into a country. Biometric systems rely on the use of physical or behavioral traits, such as fingerprints, face, voice, and hand geometry, to establish the identity of an individual. The deployment of large-scale biometric security systems in both commercial and government applications increases the public’s awareness of this technology. This rapid growth also highlights the challenges associated with designing and deploying such systems. The core computational component of biometric systems is biometric identification (or recognition), and it is indeed a grand challenge in its own right. The purpose of this course is to expose the student to current biometric identification techniques and systems, teach them to coin their own biometric security applications through capturing human biometric traits, creating unique identifications for them, build classification systems that can identify individuals, and make decisions to maintain security parameters.


CISC 680 Special Topics in CISC (3 semester hours)
Prerequisites: None

Description: This course explores a topic or collection of topics of special interest that is timely and in response to critical or emerging topics in the broad field of computer information sciences.


CISC 690 Current Topics in CISC (3 semester hours)
Prerequisites: None

Description: This course explores a topic or collection of current topics that are timely and in response to critical or emerging topics in the broad field of computer information sciences.


CISC 699 Applied Project in CISC (3 semester hours)
Prerequisites: GRAD 695 and permission of instructor

Description: This course allows the student to pursue an area of interest that is within the broad scope of CISC. A faculty member will supervise this study.