Computer and Information Sciences

The Computer and Information Sciences department offers three master's degrees, one doctoral degree, and two advanced certificates through GSAS. These programs are registered STEM-designated programs, and all master's and doctoral programs allow for 36 months of OPT (12 months + 24 months STEM Extension).

Masters Degrees and Advanced Certificates

Students with a bachelor's degree in computer science and an undergraduate GPA of at least 3.0 are eligible to apply. Students without adequate previous coursework in computer science may be admitted but required to take additional credits for the degree. Completed applications will include each of the following items:

Official Transcripts

Official degree transcripts confirming prior degree conferral should be ordered at least one month prior to the application deadline. Please ensure that they are sent directly to the Office of Admissions via secure electronic delivery. If electronic delivery is not available, please request that your transcripts be submitted directly via post, in a sealed envelope, to: Graduate School of Arts and Sciences, Office of Admissions, Fordham University, 441 E. Fordham Rd., Bronx, NY 10458. Please note: you may upload unofficial copies of your transcripts to your application while the Office of Admissions awaits receipt of your official transcripts. Please ensure that all official transcripts from previously attended post-secondary institutions are submitted in English, or are accompanied by a certified English translation. Transcripts and credentials conversion information is available on the GSAS International Students page.


Submited via the online application

Statement of Intent

Up to 500 words, submitted electronically, via the online application.


Two letters of recommendation submitted directly by referees via the online application

English Proficiency

International applicants whose native language is not English are required to complete and submit to GSAS prior to matriculation their official scores from the Test of English as a Foreign Language (TOEFL). GSAS will also consider a student’s International English Language Testing System (IELTS)—Cambridge English Proficiency Level language testing results.

Official TOEFL or IELTS scores should be sent directly by the testing service to the Office of Graduate Admissions, Fordham University, Graduate School of Arts and Sciences – Code # 2259. TOEFL minimum 85, IELTS equivalent 6.5. Applicants with TOEFL scores below 85 may still apply

GRE Requirements

The GREs are not required, unless you are interested in applying for financial aid.

Doctoral Program

Consult the program page for the Ph.D. in Computer Science.


For more information about admissions to the Graduate School of Arts and Sciences, please visit their page on the Fordham website.

CISC 5002. Discrete Structures. (3 Credits)

An introduction to Discrete Mathematics; propositional and predicate logic, first and second principle of mathematical induction, sets, counting, inclusion/exclusion principle, binomial theorem, relations and functions, introduction to matrix algebra, introductory graph theory.

CISC 5004. Computer Programming C++. (3 Credits)

C and C++ programming: The course will focus on object-oriented programming using C++. Topics include objects, methods, Abstraction, Encapsulation, Inheritance and Polymorphism. Particular emphasis will be given to real-life programming problems.

Attribute: ASDM.

CISC 5006. Data Structures. (3 Credits)

This course provides a survey and analysis of the major types of structures in programs that handle data; arrays, stacks, queues, linked lists, trees and graphs. Recursive, iterative, search and sorting techniques are also studied. This "bridge" course is intended for graduate students lacking an undergraduate CS degree and will not be counted toward the requirements for the MSCS degree.

CISC 5008. Computer Organization. (3 Credits)

Study of the design of a computer system, including instruction decoding and execution, memory organization, caching, I/O channels and interrupt systems. RISC and CISC paradigms. Microcoding, pipelining, multiple instruction issue and multiprocessing.

CISC 5009. Network Essentials. (3 Credits)

This graduate course covers the essentials of designing, building and maintaining a local area network, incorporating all elements of the seven layers of the ISOOSI Model. Students will learn various aspects of networking fundamentals including TCP/IP, network topology, network design, hardware configuration, software configuration, installation, and maintenance. Students will gain handson experience by performing the tasks necessary to engineer a working network from the ground up.

Attributes: CSCY, DATA.

CISC 5020. Computer Graphics. (3 Credits)

This course provides a rigorous introduction to computer-based graphical techniques. Core programming and mathematical concepts related to computer graphics are covered as needed. The emphasis will be on the hands-on implementation and synthesis of software applications that employ graphics. After completing this course, students will be proficient in developing and implementing graphics modules; have an understanding of software and hardware interfaces relating to continuous accessing of visual screen objects; be able to understand GUI interfaces; and have a working knowledge of the major mechanisms related to 2D and 3D computer graphics development, including animation, projection, and color migrations.

CISC 5030. Internet and Web Programming. (3 Credits)

This course covers web programming in the internet and interactive environment. Students will gain understanding of operating system usage on a server and interactive web design. Languages used will include PERL, HTML, CGI, and JavaScript.

Attributes: CSNS, CSSO.

CISC 5040. JavaScript. (3 Credits)

This course is an in-depth introduction to the JavaScript language. JavaScript is one of the most popular languages, and is the only language that is in use when developing client side interactivity on the web. The class will include controlling browser objects DOM, creating dynamic web content, using cookies, sessions, local storage, using Ajax, making Web Services, and writing Object oriented JavaScript.

Attributes: CSSO, DATA.

CISC 5100. Foundations of Comp Sci. (3 Credits)

This course is designed to give a solid foundation for the study of computer science at the graduate level. It covers a wide variety of subjects including recursion and induction, analysis of algorithms, graph theory, pattern searching and processing, logic, complexity and optimization.

CISC 5109. Big Data Analytics. (3 Credits)

This course focuses on solving big data analytics problem in real world such as finance, healthcare, and social media, by applying state-of-the-art big data analytics techniques and tools. It also aims to fostering and enhancing students’ data analytics and software development capabilities in handling big data. After taking this class, students should be able to employ big data management and analytics tools to conduct problem solving and investigation in big data fields. The following topics will be covered in this class: Principle of big data analytics, Apache Spark, Spark machine learning, high-frequency trading, EHR and TGGA data mining, social network data analytics, and big data visualization techniques, etc. This course assumes students grasp at least one programming language (e.g. Python/R)

Attributes: CSAI, CSDA.

Mutually Exclusive: HINF 6119.

CISC 5120. Optimization Methods. (3 Credits)

This course deals with numerical methods for convex optimization problems that arise in information sciences. The study begins with properties of convex sets and analyzes a number of unconstrained and constrained extremal problems. There will be a review of linear systems and introduction to practical implementation aspects for large-scale, nonlinear problems. The course will also consider optimality criteria, duality theory, and applications in machine learning and modeling.

CISC 5200. Computer Language Theory. (3 Credits)

An introduction to computer language theory; finite state automata and regular expressions, pushdown automata and context-free languages, Turing machines, undecidability problems and Chomsky hierarchy; and an introduction to computer complexity and the study of NP-complete problems.

Attributes: CSFQ, CSFT.

CISC 5325. Database. (3 Credits)

With the proliferation of abundant data, knowledge of database systems has become a key requirement of employers across many industries and sectors. Topics covered in this course include the basic concepts and architecture of database systems, the Relational Data Model concepts, integrity constraints, schemas, views, SQL, and the several sets of skills needed to automate database queries. This class includes hands-on experience in the classroom, exercising key skills in SQL such as aggregation, organizing, filtering, and table joining. It includes the use of popular systems such as Pandas/Python/Jupyter Notebook and others to interface to popular databases. Automation of query operations is addressed, including automating data preparation; cleaning; SQL statements for data insertion; updating, aggregating, filtering, merging, organizing, and funneling results seamlessly into forms ready for visualization and analysis; and SQL parameter tuning based on data. Some skills in Excel for database-related work are also covered.

CISC 5350. Financial Programming. (3 Credits)

This is an introductory programming course using C++ that features the object-oriented language, in addition to data structures. The basics of programming, including data types, pointers, arrays, control structures, and functions are covered. The course then continues to more advanced topics such as dynamic memory managements, data structures, the Standard Template Library, and object-oriented programming: classes (encapsulation), inheritance, and virtual functions (polymorphism). Programming examples and exercises will be drawn from the field of finance. Additional topics inclulde: an introduction to design patterns, as well as relational database programming with SQL.

Attributes: ASDM, CSSO.

CISC 5352. Machine Learning in Finance. (3 Credits)

This course introduces machine learning applications in finance. The primary focus is on developing computational models to identify/forecast economic regimes, factor-based smart beta, strategic risk budgeting, and trading decisions. The course offers both theory and hands-on experience in quantitative finance and risk management, including financial market microstructure, types of arbitrage, and principles of modeling the price dynamics of financial assets and market risk. The topics covered in this course will help students gain theoretical knowledge and practical skills to work with global financial firms across different asset classes. Students are required to be proficient in Python programming and have knowledge of basic data mining algorithms and techniques.

Attributes: CSDA, CSID, DATA.

Prerequisites: (CISC 5380 or Data Sci Python Waiver Exam with a score of 1) and CISC 5790.

CISC 5380. Programming with Python. (3 Credits)

This course is an introduction to the Python programming language for students without prior programming experience. Students will learn how to use Python both interactively and through a script. The topics covered include variables, strings, numbers, control statements (conditional statements and loops), lists and sequences, functions, dictionaries, recursive functions, classes, and iterators and generators. Python is a programming language with a relatively simple syntax and a powerful set of libraries. After completion of this course, students will be competent in using Python libraries to process numerical and textual data. Working with Python packages for statistical and numerical data analysis, as well as the natural language processing problems, is explored. Matplotlib, a Python 2D plotting library which produces publication-quality figures in a variety of hard-copy formats, is used throughout the course.

CISC 5410. Mobile Device Programming. (3 Credits)

This course provides a hands-on introduction to mobile device (smartphone, tablet) programming. Students will learn about mobile operating systems and API frameworks and will develop mobile programs with an emphasis on user interface design, multimedia, web application, sensors, and networking. Design criteria such as energy awareness, security, and privacy will be emphasized.

Attributes: CSNS, CSSO.

CISC 5420. Applied Statistics and Probability. (3 Credits)

This course provides an introduction to applied statistics and probability theory. It is intended for students who may have some basic background in probability, at the level of CISC 5002 Discrete Structures, but not a full semester course in statistics. This course will cover discrete random variables, probability distributions, sampling schemes, the central limit theorem, confidence intervals, hypothesis testing, correlation analysis, and Analysis of Variance (ANOVA). Students will also gain experience using a statistical package.

CISC 5450. Mathematics for Data Science. (3 Credits)

This course is an introduction to the mathematical concepts that are essential to data science. Course content covers three fundamental areas of mathematics: probability, statistics, and linear algebra. Topics include probability spaces, conditional probability, independence, discrete and continuous random variables, multivariate random variables, expectation, descriptive statistics, Bayesian statistics, hypothesis testing and inference, set theory, binomial theory, vector spaces, inner product and norms, matrix operations, Eigenvalues, graph connectivity, and combinatorial space.

Attributes: CSDA, DATI, DCDF.

CISC 5500. Data Analytics Tools and Scripting. (3 Credits)

This course teaches the basic tools used in data science, particularly the scripting skill in a few widely used languages: Bash, SQL, and R. Starting with their syntax features, we will proceed from how to use these tools' automating data-wrangling tasks to making use of data analysis and visualization libraries. For Bash, the focus is common system administration tasks, including job controlling. For SQL, we introduce the fundamental concepts of relational databases, as well as common tasks of data querying, data manipulation, and data definition. For R, we emphasize its data-centered features and how to utilize a large variety of packages.The class includes many hands-on practices in projects of various scales. With this training, students will be well prepared for more advanced and specialized topics in data science.

Attributes: DATI, DCDF, EDDS, PMTM.

CISC 5520. Programming Languages. (3 Credits)

This course introduces the basic concepts behind programming languages, illustrating those concepts with concrete examples, and exploring the reason why languages were designed in certain ways. Languages using static and dynamic typing and functional and object-oriented languages are compared. Students completing this course will be able to learn new programming languages quickly and choose the most appropriate language for a given task. Students will be exposed to several diverse programming languages.

Attribute: CSSO.

CISC 5550. Cloud Computing. (3 Credits)

This course provides the needed knowledge to understand the technologies and services that enable cloud computing, discusses different types of cloud computing models and investigates security and legal issues associated with cloud computing. Topics include Cloud infrastructure components and interfaces, essential characteristics of Cloud platforms, common deployment modes, techniques for deploying and scaling cloud resources and security implication of cloud resources.


CISC 5595. Operating Systems. (3 Credits)

This course studies how operating systems manage computer hardware, thereby supporting application programs. Topics covered include multiprogramming, synchronization, inter-process communication, memory management, file systems and I/O device management. The concepts and theories presented in this class are reinforced by actual system programming projects.

CISC 5597. Distributed Systems. (3 Credits)

A distributed computing system consists of many computing nodes that are located on different networked computers, which communicate and coordinate their actions by passing messages to one another. The distributed computing techniques have been adopted in various industrial systems, e.g., Amazon Web Services, Google Cloud Platform, and Blockchain. This course covers basic concepts of distributed computing systems (e.g., manager-worker architecture), distributed algorithms (e.g., consensus), cluster management (e.g., load balancing algorithm, kubernetes), internal system design (e.g., communication models), transaction management (e.g., synchronization, concurrency), and implementation, as well as distributed applications (e.g., Kafka, Flume). The course addresses the challenges of the distributed computing paradigm, including heterogeneity, interoperability, concurrency, transparency, scalability, and security. This course involves intensive programming labs on cloud platforms, and students are expected to have a solid foundation in programming.

Attributes: CSNS, DATA.

CISC 5640. Nosql Database Systems. (3 Credits)

This course will introduce the students to the core concepts of NoSQL, a new class of non-relational database management systems. NoSQL databases are used to perform CRUD operations over massively distributed big data systems. This course will explore the limits of RDBMS and the technical scenarios where NoSQL databases triumph over RDBMS. We will study the core concepts of four different NoSQL databases: key-value, column family, document, and graph. For each of these databases, we will take a closer look at their technical aspects including their business needs for different big data systems. This course has several hands-on labs accompanied by relevant projects designed for learning DynamoDB for key-value, MongoDB for document, Cassandra for column family, and Neo4j for graph NoSQL databases. Finally, we will discuss the techniques for choosing one of the four NoSQL databases to meet the requirements of a specific use case.


CISC 5650. Cybersecurity Essentials. (3 Credits)

This course provides a holistic perspective on the structure of the cyber space ecosystem, the interoperability of the physical and social networks, and methods and techniques in building a functional cyber space which is secure and sustainable. Topics include global networking and communication, data mining and information fusion, secure cyber network and intrusion detection, forensic computing and investigation, incident response and risk management, security and privacy, security and privacy, and policy and assurance. The course also features expert lectures and case-based projects on cyber security in several areas including health care, finance, media, government, defense, and critical infrastructures.

Attributes: CSCY, DATA.

CISC 5660. Data Science for Cybersecurity. (3 Credits)

Cybersecurity attacks have typically involved enormous amounts of data, and the need for more sophisticated methods and tools for analyzing that data has only increased with the advent of more sophisticated and varied attacks. This course will introduce data science (machine learning and data mining) methods for manipulating, visualizing, and analyzing large amounts of data, with specific applications to cybersecurity. The methods will cover classification (decision trees, naïve Bayes, neural networks, etc.), clustering (K-means), and anomaly detection, and applications will be drawn from the following cybersecurity areas: malware and spam detection; phishing attacks; intrusion detection; web security; authorization attacks; and behavioral biometrics. Students will become familiar with data science toolkits and will apply the methods they learn to real world data sets. No prior machine learning or data mining experience is required, although students should have familiarity with computer programming.

Attributes: CSCY, CYSC, CYSM.

CISC 5700. Cognitive Computing. (3 Credits)

This course covers method, practices and apprections of cognitive computing. Topics include: structured vs. unstructured information management, data correlation vs. information diversity, concepts vs. keyword search, description vs. predictive analysis, NLP and semantic integration, deep Q&A, and computing data rest vs. in motion.


CISC 5710. Introduction to Behavioral and Physical Biometrics. (3 Credits)

The need to ensure the security of computer systems and information is of paramount importance in our increasingly digital world. However, traditional passwords and keys often do not provide an adequate level of security, and consequently, biometric authentication and identification methods are becoming increasingly popular. This course will survey a wide variety of physiological and behavioral biometric methods and technologies. The physiological biometrics that will be covered include fingerprints, face, iris, retina, and ear shape, while the behavioral biometrics covered are based on gait, keystroke dynamics, voice, signature analysis, and general usage/activity patterns. The relative strengths and weaknesses of the various forms of biometrics will be evaluated. Other topics that will be covered include implementation issues, the use of machine learning for building biometric models, metrics for biometric evaluation, spoofing, privacy and ethical issues, the relation to forensic science, and the use of biometrics in the judicial system. Students will also gain hands-on experience through laboratory and homework exercises and a course project.

Attributes: CYSM, DCCF.

CISC 5725. Network Administration. (3 Credits)

Provides and introduction to system administration tools and principles. Students will learn how to set up a Local Area Network through hubs, switches, and routers (wired or wireless), and will learn how to configure a network server to provide common services such as HTTP, DNS, and secure remote access. There will be a strong emphasis on laboratory work and students will work in groups to complete a series of network administration projects.

Attributes: CSCY, CSNS.

CISC 5728. Security of e-Systems and Networks. (3 Credits)

This course deals with the fundamental concepts and tools of security of e-based systems and networks and its range of applications. Among the topics to be covered in this course include: security of e-commerce, e-business, e-service, e-government, authentication of users, system integrity, confidentiality and digital signature, e-security tools such as public key infrastructure (PKI) systems, bio-metric-based security systems, trust management systems in communications networks, intrusion detection systems, protecting against malware and computer network security risk management.

Attributes: CSCY, CSNS, CYSM.

CISC 5750. Information Security and Ethics. (3 Credits)

The goal of this course is to give students a comprehensive introduction to information security and its applications in relations to ethics. It covers topics in cryptography, access control, network and operating system securities, software security, database security, cyberlaw and ethics. The students are assumed to have basic knowledge in programming and discrete structures.

Attributes: CSCY, DATA.

CISC 5770. Intelligence in Cybersecurity. (3 Credits)

This course will focus on the role of intelligence in cybersecurity. Students will become familiar with the application of cyber-threat intelligence in an enterprise environment, and how organizations employ this discipline to formulate cybersecurity strategies and strengthen defenses. The course will examine the intelligence cycle and its role in enterprise cybersecurity, with an emphasis on the analysis phase. The class will consider sources of threat intelligence, including open and paid feeds, open source intelligence (OSINT), and vendor services, and will develop an understanding of the uses of each. Through a series of practical exercises, students will learn about structured analysis methods, and will be introduced to analytic tools that include the Cyber Kill Chain, Diamond Model of Intrusion Analysis, and MITRE ATT&CK framework. Students will learn to use these tools to analyze cyber intrusions and threat-actor tactics, techniques, and procedures (TTPs), and to apply them across the tactical, operational, and strategic levels of intelligence. Upon completion of the course, students will have a solid foundation in the skills necessary to analyze, contextualize, and prioritize a variety of cyber threats.

Attributes: CSCY, CYSM.

CISC 5790. Data Mining. (3 Credits)

This course introduces concepts, algorithms, and techniques of data mining as well as the practical issues that arise when applying these algorithms to real-world problems. The students will learn various aspects of data mining, including classification, regression, ensemble methods, association rules mining, sequence mining, time series mining, and cluster analysis. The homework assignments consist of both theory (written) and programming components. The class project involves building a predictive model using real-world data.


CISC 5800. Machine Learning. (3 Credits)

This course covers the mathematical and algorithmic underpinnings of core methods in machine learning. Students learn to develop and implement classifiers and learners, using calculus and linear algebra, and they consider learning on fully labeled, partially labeled, and unlabeled data. Students also analyze and implement dimensionality reduction methods. Topics include gradient ascent/descent, support vector machines, neural networks, hidden Markov models, information criteria, factor/component analysis, and expectation-maximization.


Prerequisites: CISC 5450 and (CISC 5380 or Data Sci Python Waiver Exam with a score of 1) and (CISC 5790 or CISC 6930).

CISC 5825. Computer Algorithms. (3 Credits)

The study of a broad variety of important and useful algorithms for solving problems suitable for computer implementation. Topics include mathematical algorithms, sorting and searching, string processing, geometric algorithms, graph algorithms, combinatorial optimization techniques, and other advanced topics; average and worst-case analysis, time and space complexity, correctness, optimality, and implementation.

Attribute: CSFT.

CISC 5835. Algorithms for Data Science. (3 Credits)

This course is an introduction to algorithms, especially those that are essential to data science. This course covers algorithms for sorting and searching, as well as greedy algorithms, dynamic programming, and graph algorithms. In addition, this course will focus on time and space analysis of algorithms (including big-O time and space analysis), recurrences, loop invariants, lower bounds, hashing, and NP-completeness. Some advanced data structures—such as trees, stacks, and queues—will be reviewed. MSCS students should not take this course.

Attributes: DATI, EDDS.

CISC 5850. The Social Network. (3 Credits)

This course is an introduction to social networks which entails the structure, the function, and various applications. Topics include the Internet, information networks and the World-Wide Web, information retrieval and search engine optimization, social media analysis, crowd sourcing, social activity and voting, graph theory and social networks, network dynamics, text mining, natural language processing, and concept search. Emphasis will be on the social network itself.

Attributes: CSDA, CSSO, CYSM.

Prerequisites: CISC 1600 or CISC 1400.

CISC 5900. Information Fusion. (3 Credits)

A study of the structure and function of information fusion. Efficient and effective combination of data or information from a variety of diverse sources, sensors, features, and decisions. Applications and case studies of information fusion and decision making to a plethora of disciplines including science and engineering, cybersecurity and digital networks, medicine and health, social choices and human cognition, business and finance, and management and innovation.


Prerequisites: CISC 5790 or CISC 6930.

CISC 5920. Compiler Construction. (3 Credits)

An introduction to syntax-directed translation of high-level languages into executable code. This course covers both theoretical and practical aspects. Topics include lexical analysis, syntax analysis, intermediate code generation, and optimization; time permitting, object code generation and memory use will be covered. Students who take this course should have completed courses in discrete mathematics and data structures (it is recommended to have also completed a course in computer language theory/theory of computation).

CISC 5950. Big Data Computing. (3 Credits)

This course covers various topics in big data processing, such as Apache Hadoop, Spark technologies, as well as their ecosystems in the context of mining big data. It provides students both theoretical background (e.g., fairness) and hands-on computing techniques (e.g., in-memory data processing) in big data analytics and their applications. The students will learn how to collect, query, and analyze data in large sizes. Topics include Hadoop core technologies (HDFS, MapReduce, Yarn), Spark Streaming, MLlib, Clustering, and Spark SQL. The main programming language will be Python.

Attributes: CSDA, CSID, DATI, DCDF.

Prerequisites: CISC 5380 or Data Sci Python Waiver Exam with a score of 1.

CISC 6000. Deep Learning. (3 Credits)

This course is an introduction to deep learning, a branch of machine learning typified by deep neural networks. Deep learning is behind many recent advances in AI, ranging from text mining and image recognition to machine translation, planning, and even game playing and autonomous driving. In this course, we will cover a range of topics including basic neural networks, Convolutional network, RNN, LSTM, GAN, Autoencoder and Restricted Boltzmman Machine (RBM). Various learning techniques such as Adam, Dropout, BatchNorm, Xavier initialization, CD-K sampling, etc., will also be explored throughout the course. This is a programming intensive course. Students are required to be proficient in Python programming and have knowledge of basic Machine Learning algorithms and techniques.


Prerequisite: CISC 5800.

CISC 6070. Red Teaming. (3 Credits)

The intent of this course is to provide students, who are familiar with the foundational knowledge of cybersecurity and penetration testing, with the skills and technology necessary to conduct sophisticated attacks against well-resourced defenders. Students will learn and practice techniques to gain initial access, establish persistence, move laterally, and gain high-level privileges in order to complete objectives. Throughout the course, discussions of modern defensive techniques and capabilities will be discussed as well as known countermeasures. Students who successfully complete the course will be able to participate in red team operations across verticals and be prepared to perform research into discovering and improving techniques. Most importantly, students will be able to understand and improve in-place cybersecurity defenses utilizing an attacker-oriented mindset.

Attributes: CSCY, CYSM.

CISC 6080. Capstone Project in Data Science. (3 Credits)

The goal of this class is to sharpen students’ skills in data science by designing and implementing a capstone project. Through this class, students should gain a deep understanding of state-of-the-art data science technologies and current knowledge. Students are required to finish a large capstone project and are expected to present and write one or more research papers in this class.

CISC 6081. Data Science Practicum. (3 Credits)

This course is for students who desire experience in applying the knowledge and skills acquired in their coursework and laboratory sessions. Students are responsible for arranging a practicum/internship with a business or organization that is related to data science.

CISC 6085. Master's Thesis in Data Science I. (3 Credits)

Students have the option to pursue a master’s thesis. This course serves as the first of the two required courses for completing an M.S. thesis. Students are responsible for finding a thesis advisor and collaboratively selecting a thesis topic. The work undertaken should sufficiently demonstrate the student’s mastery of the subject matter. Additionally, an oral defense is mandatory as part of the completion process.

Mutually Exclusive: CISC 6080, CISC 6081.

CISC 6086. Master's Thesis in Data Science II. (3 Credits)

Students have the option to pursue a master’s thesis. This course serves as the second of the two required courses for completing an M.S. thesis. Students are responsible for finding a thesis advisor and collaboratively selecting a thesis topic. The work undertaken should sufficiently demonstrate the student’s mastery of the subject matter. Additionally, an oral defense is mandatory as part of the completion process.

Mutually Exclusive: CISC 6080, CISC 6081.

CISC 6090. Capstone Project in Cybersecurity. (3 Credits)

The goal of this class is to sharpen students’ skills in Cybersecurity by designing and implementing a capstone project. After this class, students should gain a deep understanding in state-of-art cybersecurity, technologies and knowledge. Students are required to finish a large capstone project and are expected to present and write one or more research papers in class.

CISC 6091. Cybersecurity Practicum. (3 Credits)

This course is for students who desire experience in applying the knowledge and skills acquired in their course work and laboratory sessions. Students are responsible for arranging a practicum/internship with a business or organization that is related to cybersecurity.

Attribute: CYSM.

CISC 6095. Master's Thesis in MSCY I. (3 Credits)

Exceptional students may choose to write a master's thesis. The thesis topic must be approved by the Department Graduate Committee. The work should adequately demonstrate the student's proficiency in the subject material. A thesis supervisor will be assigned by the department and an oral defense is required.

CISC 6096. Master's Thesis in Cybersecurity II. (3 Credits)

Exceptional students may choose to write a master's thesis. The thesis topic must be approved by the Department Graduate Committee. The work should adequately demonstrate the student's proficiency in the subject material. A thesis supervisor will be assigned by the dept. and an oral defense is required.

CISC 6098. M.S. Computer Science Thesis I. (3 Credits)

Exceptional students may choose to write a master's thesis. The thesis topic must be approved by the Department Graduate Committee. The work should adequately demonstrate the student's proficiency in the subject material. A thesis supervisor will be assigned by the department and an oral defense is required. The student should take this course as the first of two thesis courses.

CISC 6099. M.S. Computer Science Thesis II. (3 Credits)

Exceptional students may choose to write a master's thesis. The thesis topic must be approved by the Department Graduate Committee. The work should adequately demonstrate the student's proficiency in the subject material. A thesis supervisor will be assigned by department and an oral defense is required. The student should take this course as the second of the two thesis courses.

CISC 6100. Software Engineering. (3 Credits)

Emphasis is placed on software design process, software implementation, software testing and maintenance. System and software planning, requirement analysis, and software concept will be discuss. Topics covered include detailed design tools, data structure-oriented design, program design, program implantation, and testing.

Attributes: CSSO, CSSS.

CISC 6150. Programming Languages. (3 Credits)

The principles and practices of programming languages are examined. Students gain experience in applying models of languages in varied contexts. Topics include static and dynamic typing models; object-oriented, procedural, logic, and functional programming models; decision constructs and core data structures; and unique (language specific) high-level constructs. The emphasis is on language design, use, and implementation.

Attribute: CSFT.

CISC 6170. Special Topics in Data Science. (3 Credits)

This course concentrates on special state-of-the-art topics in the field of data science. The course content will change from semester to semester.

CISC 6200. Computer Elements & Arch. (3 Credits)

Study of the structure, behavior and design of computers; review of the organization of a computer to the gate, register and processor levels, processor design including parallelism, control design and microprogramming, memory organization, computer system organization including multiple CPU systems. The hardware,software interface and its implications for operating system design will be addressed.

CISC 6210. Natural Language Processing. (3 Credits)

Natural language processing (NLP) is one of the most important technologies of the information age, and a crucial part of artificial intelligence. It is the branch of machine learning and data science that deals with text and speech. This course is designed to introduce how to use computational and statistical methods to give insight into observed human language phenomena and make computers perform various tasks with human languages. The learning outcomes for students are to learn about major NLP issues and solutions, to become agile with NLP programming, and to be able to design, implement, and understand their own NLP applications. Topics include (but are not limited to): Syntactic Parsing, Semantic Analysis, Summarization and Information Extraction, Machine Translation and Neural Networks Models for NLP (RNN, CNN, etc.)

Attributes: CSAI, CSAT, DATA, EDDS.

Prerequisite: CISC 5800.

CISC 6300. Computational Finance. (3 Credits)

This course covers the state-of-the art quantitative models and their implementations in financial engineering with an emphasis on the computational methods of handling large-scale financial data or big data. The major topics include fixed-income pricing, derivatitives and equity instruments, financial time series analysis, numerical PDE methods, Monte Carlo simulations, algorithmic trading models, and related topics. This course assumes students have proficiency in C++ and basic knowledge in quantative finance models, or equivalent experience/training. Students are required to complete several large projects and present their results in class.

Attribute: CSSO.

CISC 6345. Advanced Database Systems. (3 Credits)

In this course, students examine the theoretical framework of database management systems and conduct extensive hands-on experiments to handle large-scale database operations. This course will cover the fundamental components of different database technologies, including relational database management systems, state-of-the-art implementation technique, design decision of high-performance database systems, scalable components of database systems, non-relational database technologies, and technologies used in online transaction processing systems (OLTP) and large-scale analytical systems (OLAP). The class will perform several experiments as programming assignments stressing both the efficiency and correctness of query processing on a large-scale database.

Attributes: CSSQ, CSSS.

CISC 6350. Advanced Financial Programming. (3 Credits)

This course aims to enhance students' software development capabilities and machine learning skills in financial computing. After taking this class, the students should be able to implement complicated financial models or trading algorithms. This course assumes audiences have proficiency in C++ and have basic knowledge in quantitative finance models. The following topics will be covered in this class. Introduction to Financial Software Design; Boost C++; Black-Scholes-Merton variants; Finite difference methods and trees in Option pricing; Monte Carlo Simulations; Machine Learning Models for Trick data; Implementing High-Frequency Trading Systems, and Post-Trade Profitability Analysis.

Attributes: CSSO, DATA.

Prerequisite: CISC 5350.

CISC 6352. Advanced Computational Finance. (3 Credits)

Sophisticated mathematical models, whose solutions often require computer programming, have become important in finance. This course helps students who wish to become quantitative financial analysts. It will serve as an introduction to standard mathematical approaches in computational finance, such as integration of differential equations, Black-Scholes, ARIMA, Markov-switching vector autoregressions, Monte Carlo, and related topics of research interest. The course provides a comprehensive view of financial forecasting, economic research, portfolio construction, trading strategies, risk management, and some of the key foundations of quantitative finance, including but not limited to solving large-scale portfolio optimization, factor-based trading strategies, and options strategies. This course assumes students have proficiency in Python or equivalent programming knowledge. The knowledge in quantitative finance models is recommended but not required. Students are required to complete several large projects and present their results in class.

Attributes: CSAT, CSSO, DATA.

Prerequisites: (CISC 5380 or Data Sci Python Waiver Exam with a score of 1) and CISC 5790 and CISC 5450.

CISC 6375. Object Software Design. (3 Credits)

This course is designed as an advanced course in Software Engineering. It includes the following: Short introduction to Object Oriented (OO) technology; Comparisons of C++ and Smalltalk for OO development; the definition of system requirements using OO techniques; the evaluation and selection of OO methods, techniques, and management tools; the collection analysis and testing and use of project metrics; the establishment of requirements for testing and quality assurance. The course will use examples of OO technology in the development of Information Systems and of Real-Time Systems.

Attribute: CSSO.

CISC 6376. Software Design Patterns. (3 Credits)

This programming-intensive course provides an in-depth view of software design patterns, which are reusable solutions to common software problems. The course will begin by providing the rationale and benefits of software design patterns. Example problems will then be studied to investigate the development of good design patterns. Specific design patterns, such as the Observer, State, Adapter, Strategy, and Abstract Factory patterns, will be discussed and utilized in significant programming assignments. Students will become familiar with common design patterns, learn to use design patterns appropriately, and improve their object-oriented design and programming skills. Students will also learn to work collaboratively on significant programming projects. Prior knowledge of Object-Oriented Programming is required; CISC 6375 Object Software Design is recommended.

Attribute: CSAT.

CISC 6400. Robotics and Animation. (3 Credits)

This course presents students with a thorough background in the method and practice of designing and programming advanced robotic and graphical systems, and will include topics such as motion planning, navigation and mapping, visual perception, depth perception (sonar, sterovision, laser ranging), sensor fusion, behavior-based systems, action planning, and multi-agent systems.

Attributes: CSAI, CSSO.

CISC 6500. Bioinformatics. (3 Credits)

This course studies the relation of (interaction between) molecular biology and information science and the impact and applications of combinatorics, computing, and informatics on the biomedical sciences and clinical processes. Topics include: DNA sequence and alignment, database searching and data analysis, phylogenetic analysis and evolution, genomic and proteomics, structure and function, gene regulatory networks and metabolic pathways, microarray technology, and gene expression algorithms.

Attributes: CSAT, CSDA, DATA.

CISC 6525. Artificial Intelligence. (3 Credits)

Introduction to the study of the ideas and techniques that enable computers to function intelligently; heuristic approach, cognitive processes, general information processing and problem solving, learning and reasoning; representation, adapation and use of knowledge; analysis and simulation of inductive and deductive processes, natural language, robotics and man-machine interaction.


CISC 6550. Systems Neuroscience. (3 Credits)

This is an introductory course in the study of the structure and function of the brain at the cellular, systems, and cognitive levels. It covers the cells of the nervous systems and how they process information such as electrical and chemical signals. It studies the aggregate, or networks, of neurons, how a brain develops and establishes its complex circuitry, and how they produce higher brain functions such as vision, movement, memory, and learning, perception, emotion, and consciousness. Both invertebrate and vertebrate nervous systems will be included.

Attributes: CSAI, CSAT, CSDA, DATA.

CISC 6597. Capstone Project in Computer Science. (3 Credits)

The goal of this class is to provide the practical opportunity for students to combine skills they have learned during their computer science program and use them to design and implement a capstone project. Students are required to address all design, implementation, testing, and evaluation aspects of a large capstone project. They are expected to present and write one or more research papers in class detailing this work. Through this class, students should gain a deep understanding of state-of-art computer science technologies and knowledge, how they can be deployed in a practical application, and how they can be professionally documented and communicated.

CISC 6600. Cloud Computing Security. (3 Credits)

Cloud computing has evolved as a very emerging computing model and is now becoming a backbone of the IT industry and business, opening the opportunity for on-demand, highly elastic, and infinite computing power with scalability and supporting the delivery of mission-critical enterprise applications and services. Security poses significant challenges in cloud computing environments. This course starts with ground-up coverage on the high-level concepts of cloud landscape, architectural principles, techniques, and real-world best practices applied to cloud service providers and consumers. Then, the course will describe the cloud security architecture, security problems, and techniques, and explore the guiding security design principles and industry security standards. Finally, the course delves deep into the secure cloud architectural aspects, including comprehensive data protection, end-to-end identity management and access control, and monitoring and auditing processes. The course will have project works on important problems providing exposure to scientific research in cloud computing security.

Attributes: CSCY, CYSM, DCCF.

Prerequisite: CISC 5650.

CISC 6625. Educational Data Mining and Learning Analytics. (3 Credits)

Educational data mining (EDM) is concerned with the analysis and mining of large-scale data that comes from educational settings, with the goal of better understanding students, the learning process, and the factors that impact learning. This course will survey current work in the field and cover techniques (classification, clustering, network/graph mining, visualization, sentiment analysis, social network analysis, and recommender methods) as they are applied to EDM, as well as specific applications (grade prediction, instructor and student assessment, course and major recommender systems, tutoring systems, online learning, and intelligent tutoring systems). There will be prepared lectures by the instructor, and each student will be expected to present at least one topic and complete a course project.

Attributes: CSAT, CSDA, DATA.

CISC 6630. Wireless Security. (3 Credits)

The goal of this course is to provide students a theoretical foundation and robust technical details in wireless security. It covers topics in wireless network basics, principles of wireless network attacks, wireless intrusion detection systems, deploying wireless networks, defense for securing wireless networks, malwares in wireless networks, Rogue wireless network detection, cloud-based wireless solutions, and related techniques.

Attributes: CSCY, CSNS, CSSS, CYSM.

CISC 6635. Exploratory Data Analysis and Visualization. (3 Credits)

Data may essential and helpful to inform decision-making and impact public or corporate policy, never the less when visualized with proper context, data has the power to make a change in the world. This course explores the underlying theory and practical concepts in creating visual representations of large amounts of data. It covers core topics in data visualization including: data representation, visualization toolkits, information visualization, flow visualization, and volume rendering techniques. This course will include a significant project component that will typically require programming.

Prerequisite: CISC 5500.

CISC 6640. Privacy and Security in Big Data. (3 Credits)

This course targets the security and privacy issues associated with systems that process and store large amounts of data. The main concern is to process this data in a timely manner without compromising security and privacy of the users. Real world examples will be studied and analyzed to enable students to apply the suitable technological tools and techniques to protect the system and evaluate the suggested solutions. Covered topics include access control mechanisms, privacy protocol and methods, data confidentiality and integrity, security challenges and attacks on big data systems.

Attributes: CSAT, CSCY, CYSM, DATA.

Prerequisite: CISC 5650.

CISC 6650. Forensic Computing. (3 Credits)

Computing and digital technology has greatly transformed society and the way we live. Today, our world is filled with an array of complex multiprocessing and interconnected machines that we've all become accustomed to. This course studies technologies and practices for investigating the use, misuse and the adversarial potential of computing systems and digital devices. It will provide umparalleled insight into the digital forensics and legal world, emphasized with practical laboratory projects.

Attributes: CSCY, CYSM, DATA.

CISC 6660. Applied Cryptography. (3 Credits)

This course provides an introduction to cryptographic primitives and techniques that comprise the heart of secure protocols that are used in computer and network security. The course has the target of introducing students to the practical applications of cryptography with an overview of its theoretical basis. Students are expected to have some programming familiarity and basic mathematical skills. Covered topics include steganography, block and stream ciphers, secret key encryption (DES, AES. RC-n), primes, random numbers, factoring, and discrete logarithms; Public key encryption (RSA, Diffie-Hellman, Elliptic curve cryptography); Key management, hash functions, digital signatures, certificates and authentication protocols.

Attributes: CSCY, CSFT, CYSM, DCCF.

CISC 6670. Artificial Intelligence for Cybersecurity. (3 Credits)

This course provides a broad and rigorous introduction to AI approaches for addressing challenging cybersecurity problems. The primary focus is on applying AI and machine learning/deep learning techniques to enhance a system’s cybersecurity. The course will introduce the essentials of AI and machine learning methods and tools that are relevant to cybersecurity (e.g., adversarial reasoning and search, linear and logistic regression, support vector machines, decision tree, [deep] neural networks, ensemble learning) and their implementations using Python programming. The students will then learn how to apply these AI methods to various cybersecurity scenarios, including intrusion detection, fraud detection and prevention, authentication, social engineering, and adversarial machine learning. The material will be reinforced by extensive practical demonstrations and hands-on implementations. The applications covered in this course span many areas, including computer networks, the "internet of things," cyber-physical systems, and online social networks. Students are expected to be familiar with computer programming and cybersecurity fundamentals.

Attributes: CSCY, CYSM, DCCF.

Prerequisite: CISC 5660.

CISC 6680. Intrusion Detection and Network Forensics. (3 Credits)

This course provides students both theoretical knowledge and hands-on techniques in identifying intrusion detection and network traffic analysis. The students will learn how to identify different attacks through different traceback techniques and grasp network analysis methods and tools to conduct information retrieve from a network forensic standing point. This course covers topics in network forensics, intrusion detection and response, malware forensics, case studies, and related topicsin cyber law and ethics. This class assumes the students have basic knowledge in network, and Linux/Unix operating systems. The students are expected to complete several programming oriented team projects and present their results.

Attributes: CSCY, CSNS, CYSM, DATA.

CISC 6690. Cybersecurity in Business. (3 Credits)

Special emphasis on understanding the value cybersecurity and computer science professionals play in a business organization through the review of the major components and roles in a typical business and the demands and expectation of each. Business components studied include: marketing and sales; production and/or delivery; supporting functions (e.g IT, HR, etc.) and governance and control. Subject areas covered are the understanding of information assets, vulnerabilities and threat vectors related to those assets and the decision-making process supporting investments and maintenance of cybersecurity best practices. Students will better understand their role in a business organization and have a ready framework for cybersecurity decision making as a result of the class. In addition, students can expect to develop an appreciation for the characteristics of a business that best aligns with their personal goals and objectives.

Attributes: CSCY, CYSM.

CISC 6700. Medical Informatics. (3 Credits)

Databases, information systems, and computer-based approaches have greatly transformed the research of medicine and the practice of physicians in the proper diagnosis and management of patients with a variety of common diseases and disorders. This course will cover the development and evaluation of methods for managing medical data and the integration of diverse and multifaceted hardware and software systems to provide enhanced value in medicine and healthcare. Informatics is not only embraced for imaging and diagnosis but also for clinical practice, decision making, quality and safety, and clinical research.

Attributes: CSAT, CSDA.

Mutually Exclusive: HINF 6101.

CISC 6725. Computer Networks. (3 Credits)

This course provides an introduction to computer networks, network components, and message transport technologies; transmission links and protocols, SDLC, X.25, BSC, and start/drop; and network architectures, topological design and analysis, local area network design, voice and integrated networks, and network reliability.

Attribute: CSNS.

CISC 6735. Wireless Networks. (3 Credits)

This course covers the fundamental techniques in the design, operation, and evaluation of wireless networks. Among the topics covered: first, second, third, fourth generation wireless systems, fifth generation-LTE systems cellular wireless networks, medium access techniques, physical layer, protocols (AMPS, IS-95, IS-136, GSM, SPRS, EDGE, WCDMA, cdma2000, etc.) satellite systems, fixed wireless systems, personal area networks (PANs) including Bluetooth and HRF systems, wireless local area networks, (WLAHs) technologies, architectures, protocols, and standards, mobility management, wireless sensor networks, and cognitive radio networks and advanced topics. This course is intended for graduate students who have some background on computer networks.

Attributes: CSNS, EDDS.

CISC 6745. Data Visualization. (3 Credits)

Data visualization provides decision-makers with a visual representation of their analytics, which makes data easier to understand, parse, and act upon. With its foundations rooted in statistics and computer science, practitioners in almost every field use visualization to explore and present data. In this course, students will learn how to become an expert at communicating business-relevant implications of data analyses using Tableau and D3.js, the industry-leading software that provides reliable, flexible, and repeatable methods for analyzing real-world data. In particular, students will experiment and compare different visualization tools and learn to identify appropriate techniques through exposures to various data sets and particular requirements imposed by the data. Advanced techniques, including dashboard, interactive, and animated displays, will be covered in the course, as well as how to assess design choices around data visualization.

Attributes: CSDA, DATA, DCDF, EDDS.

CISC 6750. IOT Forensics and Security. (3 Credits)

With the exponential growth of Internet of Things (IoT) technology, the forensic examination and security of these objects has garnered increased attention. Moreover, digital forensic examiners have been presented with a unique set of challenges in order to understand how such devices secure, store and process data. This course is structured utilizing modules which will provide students with extensive hands experience in an interactive lab environment that will delve into the issues in IoT forensics and security. Through experimental testing participants will investigate and review the security of home IoT devices. The testing will include: traffic capture, device scanning and the analysis of wireless signals. In addition, a review and analysis of privacy exposure will be conducted, outlining the security vectors and malware used to attack and control IoT devices. Subsequent modules will be comprised of explanation, theory and numerous hands on exercises, culminating in discussion regarding the IoT technology stack and how it impacts digital forensics. Through use of existing digital forensic tools and methodology, we will introduce students to the application of digital forensics in the IoT framework by examining ordinary home devices. Examinations will provide students with hands on experience into a hunt for artifacts, identifying formats of stored data, encoding methods, while documenting their efforts throughout the process. Respective analysis of collection techniques, device workflow and the object data repositories will provide participants with an understanding of the full forensic value of these devices.

Attributes: CSCY, CSNS, CSSS, CYSM.

CISC 6795. Java Programming. (3 Credits)

This course covers Java programming and internet computing with various applications. Topics include: Java programming, object-oriented programming, graphical user interfaces (GUI's) and Applications, multimedia, files and streams, and server communications.

Attribute: CSSO.

CISC 6800. Malware Analytics and Software Security. (3 Credits)

This course is the introduction to the fields of the malware analytics and software security at the early graduate level. It covers one of the most important aspects of the cybersecurity - the software perspective of the issue. It approaches the issue from mainly two ends, namely analyzing malicious software, which is intended to compromise the security requirements, and the software development strategies and tactics to prevent vulnerability in the face of attacks. This course will have enough technical details in exemplary scenarios for the students to dissect real world problems, but the main purpose is to establish enough theoretical and background knowledge so that they know where to start an endeavor and how to make an effective investigation or design for new software security problems.

Attributes: CSCY, CYSM, DCCF.

CISC 6850. Leadership and Management in Cybersecurity. (3 Credits)

In the highly interconnected and instrumented society, big data with great volume, variety and velocity can be an asset but also a liability for individuals and organizations. This course covers a variety of technological, systematic, and policy issues in the management if cyber risk for individual citizens, governmental organizations, and business enterprises. Students will meet with global leaders in cyber security on projects and case studies related to best practices and real life experiences.

Attribute: CYSM.

CISC 6860. Cybersecurity: Technology, Policy, and Law. (3 Credits)

This course will examine a selection of issues stemming from the internet and the global adoption of technology for communications, commerce, statecraft, and cyber operations. Throughout the semester, the course will analyze the growth of the internet from its technical foundations of the ARPANET, to the modern world wide web. The topics will include the use and retention of data, the development and implementation of internet-connected devices, encryption and digital privacy, the growth of cryptocurrencies and blockchain technology, and the role of technology in democracy. Further, the course will analyze international law and the use of force in cyber warfare, evolving forms of cybercrime, the growth of artificial intelligence, and the ethics of autonomous systems. The course will provide a framework to understand these technological developments, contextualize the threats, and understand the existing policies and laws governing their development and implementation in society. Students will gain an understanding of these topics through in-class lectures, discussions, case studies, writing assignments, and intensive research. The course will build a vocabulary of technical terms and put them into context through class discussions. No technical knowledge is required for the course. While certain technical topics will be discussed, the focus will remain on international law and policy.

Attributes: CYSM, GSSE.

CISC 6875. Parallel Computations. (3 Credits)

Introduction to parallel and multiprocessor/multicore computation, parallel architectures and programming, clusters and grids, parallel algorithms on different models of interconnection networks, network topologies, network reliability and fault tolerance.

Attribute: CSSO.

CISC 6880. Blockchain Technology. (3 Credits)

A blockchain consists of participants who generate transactions, miners who aggregate the transactions and forge blocks for the chain, and the blockchain itself. The blockchain is updated based on some algorithm predetermined by group consensus, and it acts as a decentralized, immutable database. This course will cover fundamentals and advanced topics in blockchain technology. We will discuss each component in a blockchain system, how the components interact, and the general structure and functions of a blockchain. The course will also discuss security mechanisms of blockchain, blockchain system design, blockchain applications and implementations, cryptocurrencies, smart contracts, and the challenges of blockchain.


CISC 6890. Advanced Computer Algorithms. (3 Credits)

This second class in computer algorithms will survey techniques for designing efficient algorithms, as well as a variety of specific algorithms and their application to a wide range of application domains. Topics will vary based on instructor and student interest, but will include many of the following: advanced data structures, string algorithms, linear programming, approximation algorithms, parallel algorithms, randomized algorithms, numerical and semi-numerical algorithms, optimization algorithms, streaming algorithms, and cryptographic algorithms. Students are expected to have previously completed a (graduate or undergraduate) full semester course in computer algorithms; students unsure if they have sufficient background should consult the instructor.

Attributes: CSFQ, CSFT, CSSO, DATA.

Prerequisite: CISC 5825.

CISC 6910. Data and Information Fusion. (3 Credits)

This course covers the application of data mining and information fusion techniques to real-world problems. The class is hands-on and each student will complete a substantial software project.

Attributes: CSID, CSIQ.

CISC 6920. Incident Response and Risk Management. (3 Credits)

The goal of this course is to provide students knowledge and hands-on forensic techniques in incident detection, analysis, response, and risk management. The course covers topics in incident handling procedures, forensic evidence collection techniques, forensic report writing, investigations in trademark and copyright infringement, corporate espionage, and related topics in cyber law and ethics. The students are assumed to have basic knowledge in Forensic computing. Students are expected to finish team projects, write research paper and present their results.

Attributes: CSCY, CYSM.

CISC 6935. Advanced Distributed Systems. (3 Credits)

This course will cover the foundations of distributed systems and the practical applications built on top of these systems. The topics include distributed architectures, scalability, consistency, quorums, fault tolerance, fairness, resource optimization, system security, etc. The course also involves a hands on project that requires substantial programming skills. The students are expected to put their knowledge into practice by building a distributed system on the cloud and evaluate their systems. The course will involve research paper reading, discussions, and presentations.

Attributes: CSNS, CSSQ, CSSS, DATA.

CISC 6991. Internship. (0.5 to 3 Credits)

This internship course offers students the opportunity to exercise the computer science skills they have learned in a professional environment. Students will be asked to write one or more reports on their internship as the semester proceeds, culminating in a final project report.

CISC 7010. Formal Methods. (3 Credits)

This course is an introduction to formal methods, the application of theoretical computer science techniques and procedures used to address problems in hardware and software specification, verification, and automatic synthesis. It will cover the basic mathematics involved, including several forms of logic, mu-calculus, automata theory, lattices, and fixpoints. It will introduce the three main avenues of automatic verification: model checking, theory proving, and static analysis, presenting examples and algorithms for each. The course will briefly cover common tools, such as SPIN, Z3, Clang, Java Pathfinder, etc., but it is primarily a theory rather than a tools-oriented course. It will also address the theory and implementation of synthesis methods, such as Piterman, Pnueli, and Sa’ar (2006) synthesis for R(1) LTL specifications.

Attributes: CSFQ, CSFT.

CISC 7050. Penetration Testing. (3 Credits)

The course introduces principles and methods in penetration testing and related techniques. This course focuses on understanding and implementing state-of-the-art penetration testing technologies. This course covers topics in penetration testing methods and framework, scanning techniques, penetration test techniques for different network threats and related topics. Students are expected to finish several large team projects, write research paper, and present their results.

Attributes: CSCY, CYSM.

CISC 7070. Research Methods. (3 Credits)

This course will cover a variety of topics related to conducting research in computer science in an effective and ethical way. Topics covered include a literature review and evaluation, defining a research problem and relating it to the literature, theory-building, designing and conducting experiments, human subjects in CS research, measuring performance, statistics, data analysis, building evidence, writing papers, presenting results, and participating in the CS research community. Assignments will allow students to practice different research skills and methodologies covered during the lectures.

CISC 7075. Research Project. (3 Credits)

In this course, students will design and carry out a research project using the methods and practices detailed in CISC 7070. The student will meet the course instructor individually and/or with other students who are completing this practical research experience course on a weekly basis. The course will include supplemental readings to facilitate the students' independent research. The final report for the research project in a seminar setting must be completed within 24 months of matriculation in the program. The report must detail research of publishable quality, as demonstrated, for example, by having the paper be accepted by a selective conference. The student must also complete a presentation on the project, which should include a thorough review of the literature in the area.

Prerequisite: CISC 7070.

CISC 7076. Research Paper. (0 Credits)

Students should register for this course to get credit for completing the research paper requirement for the Ph.D. program in computer science. When the paper is accepted by the department as having satisfied the requirement, the student registers for this course, which is graded P/F. A student must complete this requirement within their first 24 months in the program.

CISC 7090. Doctoral Pedagogy Seminar. (3 Credits)

This course will review the theory and practice of college teaching with a focus on computer science. Topics will include lecturing, demonstrations, labs, assessment methods, out-of-class writing and programming assignments, syllabus preparation, local requirements, and values.

CISC 7110. Advanced Computer Networks. (3 Credits)

The goal of this class is to develop an understanding of some fundamental techniques used to model and analyze communication networks. Compared to data communications and networks, the emphasis in this course will be more on developing analytical tools and conceptual models and less on describing the protocols used in current networks. However, some current protocols will be used to illustrate the concepts. These analytical tools are used to analyze the performance of various networks. More importantly, understanding this material can help one to develop intuition about some of the important issues in networking, and provide the background needed to conduct research in this field.

Attributes: CSSQ, CSSS.

CISC 7120. Robotics. (3 Credits)

This is a hands-on introduction to the issues of programming robots. It is an interdisciplinary course that will involve computer science, engineering, and mathematics. It introduces the specification and use of kinematics for stationary robot arms, mobile ground robots, and quadcopter drones using hands-on examples in the open-source robot operating system (ROS) with 3D simulated robots, as well as physical platforms. The basic algorithms for processing the common kinds of sensory information available to a robot, including ultrasound, laser, and RGB-D sensor, are covered, leading to the probabilistic algorithms for mapping and localization. Local and global navigation techniques are presented and contrasted. The three-level robot architecture is described and several examples from the literature will be presented. The challenges of building action planning systems that operate well under the uncertainty in robotics are discussed and example algorithms will be studied.

Attribute: CSAT.

CISC 7510. Computer Vision/Image Recognition. (3 Credits)

This course captures the natural structure of our visual world to perform diverse functions in data mining and artificial intelligence, covering the mathematical representations of objects, scenes, and actions. Static picture and dynamic video data will be considered, as well as the underlying 3D physical world. The course will introduce methods for image reconstruction, image recognition, and detection of objects within visual space and time. Students will implement standard and novel visual algorithms.

Attribute: CSAT.

CISC 7580. Computer Science Teaching Experience. (2 Credits)

Ph.D. candidates are required to take training in computer science pedagogy and participate in the teaching mission of the University. Training in pedagogy will be fulfilled by completing the department Pedagogy Seminar (CISC 7090), and teaching as a teaching assistant, fellow, or associate for four (4) semesters. A doctoral candidate must register for this course for each semester of teaching experience taken for the doctoral curriculum. Students registered for this course will meet regularly with each other and with faculty members to share experiences and best teaching practices. Doctoral candidates are also encouraged to participate in the Preparing Future Faculty (PFF) program; the Jesuit Pedagogy Seminar; and other opportunities.

Prerequisite: CISC 7090.

CISC 7650. Cybersecurity Operations. (3 Credits)

Throughout the course students will be taught the theories and concepts behind a security operation. Extensive hands-on lab assignments will give students the experience with the technology necessary to protect live networks and systems. In the scope of the course we will also go in-depth into the architecture of building a secure system design from the ground up. Building in security practices while in the design phase enables organizations to have deeper insight and resistance into threats. Information Security does not have a single solution to prevent attackers, the most secure organizations can still be compromised. The course will present a methodology that will enable systems and networks to be resilient to cyber-attacks. This reduces the attack surface and the damage an attacker could do to a system if compromised.

Attribute: CSAT.

CISC 7999. Dissertation Research in Computer Science. (4 Credits)

This is a faculty-mentored independent dissertation research course. Note: Four-credit courses that meet for 150 minutes per week require three additional hours of class preparation per week on the part of the student in lieu of an additional hour of formal instruction.

Prerequisite: CISC 0960.

CISC 8050. Projects and Internships. (3 Credits)

A course designed to concentrate on special and state-of-the-art topics in computer science; topics are changed from time to time to reflect the rapid change of computer and information technology.

CISC 8070. Projects& Internships in Cyber. (3 or 4 Credits)

CISC 8100. Special Topics in Comp.Science. (3 Credits)

A course designed to concentrate on special and state-of-the-art topics in computer science; topics are changed from time to time to reflect the rapid change of computer and information technology.

CISC 8150. Special Topics in Cybersecurity. (3 Credits)

A course designed to concentrate on special and state of the art topics in cybersecurity; topics are changed from time to time to reflect the rapid change of cybersecurity technology and knowledge.

Attribute: CYSM.

CISC 8998. Experiential Learning. (1 to 6 Credits)

This course recognizes credits for professional knowledge in the area of cyber security acquired by the student prior to entering the graduate program.

CISC 8999. Tutorial. (0.5 to 4 Credits)

Each student either takes an internship at one of the medical schools, hospitals and health organizations or works on a project related to method and practice at the intersection of Biomedicine and Informatics. Students also attend a weekly seminar on a variety of topics in biomedical informatics featuring speakers from academia, industry, and government with diverse persectives in business, technology, and management.