Computer and Information Sciences (CISC)

CISC 0900. Computer Science Seminar. (0 Credits)

CISC 0912. Requirement Preparation. (0 Credits)

For Ph.D. and master's students, registration is necessary to maintain continuous enrollment while preparing for a milestone requirement, such as a comprehensive exam, master's thesis, or dissertation submission. Students who are studying for comprehensive examinations while still completing coursework do not need to register for any special status; however, if they are neither registered for coursework nor taking comprehensive examinations during the semester in question, they must register for Requirement Prep.

CISC 0914. Requirement Preparation in Summer. (0 Credits)

For Ph.D. and Master's students, registration necessary to maintain continuous enrollment while preparing for a milestone requirement during the summer. (e.g., to be used by Ph.D. students after the oral examination/defense and prior to receiving the degree).

CISC 0931. Ph.D. Qualifying Exam: Computer Science. (0 Credits)

The dean’s office will register computer science doctoral students for the Ph.D. Qualifying Exam (CISC 0931) for the semester in which they complete all three parts of the qualifying exam. Each student must complete a qualifying exam and research project course before they will be permitted to proceed to develop a dissertation proposal.

CISC 0940. Python Placement Test. (0 Credits)

Students in some graduate programs offered by the Department of Computer and Information Science must take a Python programming course or earn a passing score on a Python placement test. Students seeking to be waived from the Python programming course register for this 0-credit, pass/fail placement test registration to record the result of their test.

CISC 0950. Dissertation Proposal Preparation. (4 Credits)

Student will prepare a dissertation proposal and identify their dissertation adviser.

Prerequisite: CISC 0930.

CISC 0960. Proposal Defense Computer Science. (0 Credits)

Student will defend dissertation proposal.

Prerequisite: CISC 0950.

CISC 1100. Structures of Computer Science. (3 Credits)

An introductory course in the discrete structures used in computer and information technology. Emphasis will be placed on the ability to solve problem and develop logical thinking. Topics such as sets, functions, elementary combinatorics, discrete probability, logic, Boolean algebra, recursion and graphs will be covered through the use of algorithmic and concrete construction. The learned materials are reinforced by computer laboratory assignments. This course also fulfills the Mathematical Reasoning requirement of the Core Curriculum.

Attributes: INSC, MCR.

CISC 1400. Discrete Structures. (4 Credits)

This course covers basic materials in discrete structure and algorithms which are used in computing science, information technology, and telecommunications. Topics include sets, permutation/combinations, functions/relations/graphs, sum/limit/partition, logic and induction, recursion/recurrence relation, system if equations and matrices, graphs/digraphs/networks, searching and sorting algorithms, database structure and data analysis. Practical examples of applications will be shown and programming will be used to reinforce understanding of the concepts. 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.

Attributes: INSC, MCR.

CISC 1600. Computer Science I. (3 Credits)

Introductory course designed for the beginning students. It will define the computing concepts using a high-level programming language. Emphasis will be placed on program design, coding, debugging and documentation of programs. This course together with Structures of Computer Science (CS 1100) serve as the introductory courses for both the computer science and the computer systems management applications major.

Attributes: CYSC, INSC, LING, MCR, NEUR.

Corequisite: CISC 1610.

CISC 1610. Computer Science I Lab. (1 Credit)

A series of programming and laboratory assignments to reinforce the materials learned in CISC 1600.

Attributes: CYSC, INSC.

Corequisite: CISC 1600.

CISC 1800. Introduction to Computer Programming. (3 Credits)

This course introduces stuents to the foundational knowledge in computing and programming via a scripting languages such as Python. This course covers the following topics: principles of computing, control structures, functions, recursion, file systems, web applications, and object-oriented programming. The students will learn how to apply computing concepts, structures and algorithms to solve real world problems.

Attributes: LING, MCR, NEUR.

Corequisite: CISC 1810.

CISC 1810. Introduction to Computer Programming Lab. (1 Credit)

Introduction to computer programming LAB : to reinforce the materials learned in CISC 1800.

Corequisite: CISC 1800.

CISC 1999. Tutorial. (1 Credit)

Independent Study.

CISC 2000. Computer Science II. (3 Credits)

A second-level programming course with concentration on object-oriented programming techniques. Topics include: classes, subclasses and inheritance, polymorphism; class hierarchies; collection classes and iteration protocols.

Prerequisite: CISC 1600.

Corequisite: CISC 2010.

CISC 2010. Computer Science II Lab. (1 Credit)

A series of programming and laboratory assignments to reinforce the materials learned in CISC 2000.

Corequisite: CISC 2000.

CISC 2011. Programming for Math and Science. (4 Credits)

Basic Python programming and scripting and basic algorithms of linear algebra. Students will develope their own Python implementations of these algorithms, which form the basis of many computational methods in the sciences. The course is accessible to students in the physical and social sciences, computer science and math. 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.

Attribute: NESY.

Prerequisites: CISC 1600 or CISC 2000.

CISC 2100. Discrete Structures II. (3 Credits)

Students will study fundamental mathematical structure and logic principles that are essential to computer science. Students will develop a sound foundation upon which to build a deeper understanding of the elements of computing. Predicate logic, proof techniques, and essential topics in calculus and discrete probability will be covered. Problems and examples will be drawn from various subjects of computer science and programming activities will be introduced to reinforce the learning and application of mathematical subjects.

Prerequisites: (CISC 1100 or CISC 1400 or MATH 2001) and (MATH 1206 or MATH 12AB or MATH 12BC).

Corequisite: CISC 2110.

CISC 2110. Discrete Structures II Lab. (1 Credit)

Discrete Stucture II LAB : to reinforce the materials learned in CISC 2100.

Corequisite: CISC 2100.

CISC 2200. Data Structures. (4 Credits)

A survey and analysis of the major types of structure in programs that handle data: arrays, stacks, queues, linked lists, trees and graphs; recursive, iterative, search and sort techniques. Methods of organizing and manipulating files will be referenced. 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 2000.

CISC 2201. Systems Analysis. (4 Credits)

Analysis and design of computerized information systems. Topics include planning and design of information systems, configuration analysis, cost analysis, proposal development. 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.

Attribute: INSC.

Prerequisites: CISC 1600 or CISC 2000.

CISC 2261. Computer Graphics Applications. (4 Credits)

Computer graphics is widely used in many fields, including data visualization, engineering design, computer imaging and video gaming and other multimedia entertainment. This course is an introduction to computer-based graphical techniques. Basic programming and mathematical concepts related to computer graphics are covered as needed, assuming little or no background in these areas. The emphasis in this course will be on the hands-on implementation of software applications which employ graphics. Applications for laptop/desktop computers and for mobile devices will be covered. Topics covered will include bitmap filtering, color manipulation, shading, animation and three-dimensional projections. Application areas covered will include biomedical engineering, visual identification, engineering design and global positioning systems. Having taken this course, a student can expect to have a basic understanding of computer graphics and its widespread applications; they will be able to design simple computer graphics applications to suit their own objectives, and they will be able to implement and test these applications. 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.

CISC 2350. Information and Web Programming. (4 Credits)

Using a process of incremental development, students will learn the latest technologies used in developing dynamic, database-driven websites. Principles of good web design will be covered, as well as techniques and languages for layout and scripting. The course is open to students of all backgrounds. 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.

Attributes: INSC, NMDD, NMMI.

CISC 2500. Information and Data Management. (4 Credits)

This course will introduce the fundamentals of information storage, access and retrieval using a variety of structures, formats, and systems in computing, internet and information technologies. Projects and case studies will be drawn from the sciences, social sciences, arts and humanities and professional studies in medicine and health, business and commerce, justice and law, and education. Students will have hands-on experience in the acquisition and management of information from a diverse on-line and remote database. (e.g. Gene Bank, digital archives). 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.

Attributes: CYSC, INSC, NEUR, NMDD, URST.

CISC 2530. Digital Video and Multimedia. (4 Credits)

This course introduces students to the technology of digital video and multimedia with special emphasis on the web and games. Topics covered include: digital representation of sound, images, video and graphics, compression, multimedia scripting, mixing graphics and video. Practical laboratory exercises include working with Javascript and integrated multimedia systems (e.g. Macromedia Director). 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.

Attributes: NMAT, NMDD, NMMI.

CISC 2540. Introduction to Video Game Design. (4 Credits)

This course provides a gentle and fun introduction to the design and production of computer-based video games, for students with no prior programming experience. Students will learn principles of game design, and apply them to create an actual computer game. Students will also research aspects of games and/or the game industry, write term papers about their topics, and give presentations on them. 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.

Attributes: COMM, DTEM, EP3, NMAC, NMAT, NMDD.

CISC 2850. Computer and Data Analysis. (4 Credits)

Over the past decade, methods for analyzing data and extracting useful information from data in several application domains have increasingly relied on "intelligent" computer systems. In this course we will review these methods and systems and apply them to real-world problems, using state-of-the-art data analysis/data mining tools including basic algorithms and statistics. It is intended for social sciences, business and other science majors who have a strong desire and/or urgent need to analyze data using computers in their disciplines and at work after graduation. 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.

Attributes: INSC, NEUR, NMAC, NMDD, NMMI.

CISC 2999. Tutorial. (2 Credits)

Independent Study.

CISC 3010. Scientific Communication. (4 Credits)

Students develop skills in written and oral communication needed to produce scientific articles, monographs and presentations that are accomplished in both form and content. The course covers both the use of LaTeX to produce work that meets the highest standards of design and typography, and the techniques of writing, organization, and scholarly citation needed to ensure that this work accurately embodies, effectively communicates, and professionally documents the author's scientific thought. Students will learn the ins and outs of generating and using copyright material, and how to present data in forms of pictures, tables, graphs, or schematics. 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.

Attribute: PPWD.

CISC 3020. Computer Graphics. (4 Credits)

A rigorous introduction to computer-based graphical techniques. Core programming and mathematical concepts related to computer graphics are covered as needed. The emphasis in this course will be on the hands-on implementation and synthesis of software applications which employ graphics. Applications for laptop/desktop computers developed within Visual Studio/VB.net  IDE environments will be synthesized and analyzed. Topics covered will include bitmap filtering, color manipulation, shading, animation and three-dimensional projections, optcode color composition and decomposition, resolution, interpolation, and coordinate transformations. 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, able to understand GUI interfaces, and have a working knowledge of the major mechanisms which comprise 2-d and 3-d computer graphics development which include animation, projection and color migrations. 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.

Attributes: NMAC, NMAT, NMDD, NMMI.

CISC 3060. Introduction to Robotics. (4 Credits)

This class is an introduction to robotics and AI for students with a background in programming. Students will work in small groups to build and program robots from kits. They will learn the basics of embedded programming, using sensor information to control motor activity for a variety of tasks such as wall following, obstacle avoidance, and simple navigation of a maze. Students will learn algorithms and data structures for representing and reasoning about space and motion, for working in robot teams, and for planning to achieve a goal. 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.

Attributes: NESY, NEUR.

Prerequisites: CISC 1600 or CISC 1800 or CISC 2000.

CISC 3130. Unix Systems Programming. (4 Credits)

An introduction to systems programming under the UNIX operating system, using the C and C++ programming languages. UNIX concepts include processes and scheduling, I/O and queues, and standard system utilities and functions. 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.

Prerequisites: CISC 1600 or CISC 2000.

CISC 3250. Systems Neuroscience. (4 Credits)

This course studies integrative neuroscience from a holistic view at the systems and network level. It covers the cells of the nervous system and how they process information as well as the interconnection of neurons and how they aggregate information. It also covers networks of interactive networks or modules and how they produce cognitive functions and behavioral tasks such as vision, memory, perception and emotion. Computing and informatics techniques are used and various examples are illustrated using modeling, simulation, visualization and imaging modalities. 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.

Attribute: NEUR.

Prerequisites: (CISC 2500 or CISC 1800) and (BISC 1404 or NSCI 1404 or NSCI 1424 or HPLC 1604).

CISC 3280. Machine Learning Methods for Neural and Biological Data. (4 Credits)

This course will introduce undergraduate students to introductory machine learning and statistics concepts for use on scientific data, with an emphasis on neuroscience and biological and medical examples. This class is open to students studying both computer science/data science as well as neuroscience and natural science. Students are expected to be familiar with scientific computing in python, and basic ideas in calculus and probability and statistics (derivatives and integrals, as well as random variables, common probability distributions, mean and variance). Some familiarity with linear algebra (e.g., matrix and vector notation and multiplication) is expected. As such, students must have taken introductory calculus, as well as a course in data analysis/statistics and a course in algorithmic modeling. If students have not taken these classes but believe they have sufficient background, permission from the instructor is needed. Familiarity with neuroscience concepts is helpful but not required. 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.

Attribute: NESY.

Prerequisites: (MATH 1203 or MATH 1206) and (NSCI 2040 or CISC 4631 or PSYC 2000 or CISC 2850) and (NSCI 3101 or CISC 4020 or CISC 2011 or CISC 1800 or CISC 1600 or CISC 2000).

CISC 3300. Internet and Web Programming. (4 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 system design. Languages used include PERL, HTML, CGI and JAVA script. (Formerly titled Programming for the Web). 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.

Prerequisites: CISC 1600 or CISC 2000.

CISC 3400. Java Programming. (4 Credits)

This course covers Java programming and internet computing with various applications. Topics include: Java programming, object-oriented programming, graphical user interfaces (GUI's), applets and applications, multimedia, files and streams, and server communications. 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 2200.

CISC 3440. JavaScript. (4 Credits)

This course is an in-depth introduction to the JavaScript language. JavaScript is one of the most popular languages, and it 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 and local storage; using Ajax, creating web services; and writing Object-oriented JavaScript. 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.

CISC 3500. Database Systems. (4 Credits)

This course begins with the introduction of the characteristics of the data base approach and the advantages of using data base systems. Course topics include the basic concepts and architecture of data base systems, the Relational Data Model concepts, integrity constraints, schemas, views, SQL, data modeling using the Entity-Relationship (ER) model as well as using the Enhanced ER model, UML diagram, practical data base design methodology, normalization process, physical design and system implementation and tuning. Data base security issues will also be discussed. 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.

Attribute: INSC.

Prerequisites: CISC 1600 or CISC 2000.

CISC 3580. Cybersecurity and Applications. (4 Credits)

This course provides an introduction to cybersecurity concepts, technologies, and related applications. It covers cybersecurity basics, public and private key cryptosystems, access control, firewalls, security protocols, malware detection, cyber attacks, and related topics. 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.

Attribute: CYSC.

CISC 3593. Computer Organization. (4 Credits)

A further look at 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. 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.

Prerequisites: (CISC 1600 or CISC 2000) and (CISC 1400 or MATH 2001 or CISC 1100).

CISC 3595. Operating Systems. (4 Credits)

The objective is to develop an understanding of the role of operating systems in the management of the hardware used to process application programs. Problems of resolving deadlock, exclusion, and synchronization, and inter-process communication, queuing, and network control are covered. Topics include: memory management, device management, interrupt systems and systems programming. 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.

Prerequisites: CISC 2200 and CISC 3593.

CISC 3598. Software Engineering. (4 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 discussed. Topics covered include detailed design tools, data structure-oriented design, program design, program implementation and testing. 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 2200.

CISC 3600. Secure Cyber Networks. (4 Credits)

This course covers the essentials of designing and building a secure local area network, incorporating all elements of the seven layers of ISO-OSI Model. Students will learn the capabilities, limitations, and vulnerabilities of a cyber network. Students will gain hands-on experience by implementing a secure network environment that is robust in preventing various adversary actions including, among others, extreme backing and virus propagation. 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.

Attribute: CYSC.

Prerequisites: CISC 1600 or CISC 2000.

CISC 3650. Forensic Computing. (4 Credits)

Computing and digital technology has transformed society and the way we live. Today, our world is filled with an array of complex multi processing and interconnected machines that we have all become accustomed to. This course studies technologies and practices for investigating the use, misuse and the adversarial potential of computing systems and digital devises. It will provide insight into the digital forensics and legal world, emphasized with practical lab projects. 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.

Attribute: CYSC.

Prerequisites: CISC 1600 or CISC 2000.

CISC 3800. Internship Computer Science. (3 Credits)

Internship.

CISC 3850. Information Retrieval Systems. (4 Credits)

The basic concepts and principles of information retrieval, covering the definition, nature and needs of information systems. Course topics include the design of IRLs, algorithms for document and request translation, natural to descriptor language transformation, semantic information data base organization and feedback problems in information retrieval systems. Application in MIS and expert systems will be discussed. 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.

Attributes: INSC, NMDD, NMMI.

Prerequisites: CISC 1600 or CISC 2000.

CISC 3999. Tutorial. (3 Credits)

Independent research and readings with supervision from a faculty member.

CISC 4001. Computers and Robots in Film. (4 Credits)

This course will examine how historical, socio-economic and psychological factors impact the portrayal of robots and computers in film. The course will focus on a small number of key questions, such as: why are computers and robots so often portrayed as trying to take over the world and what is the role of humans in our increasingly computerized society. The class will require the viewing of 10-15 films and extensive class discussion of these films. This course satisfies the ICC requirement. 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.

Attributes: ACUP, AMST, ASAM, CCUS, COMC, COMM, DTEM, ICC, NMDD, NMMI.

CISC 4006. Brains and Behavior in Beasts and Bots. (4 Credits)

This course is an interdisciplinary, comparative study of human, animal and robot behavior, in which both Psychological and Computer Science disciplines provide mutually enriching and contrasting ways to understand behavior. This course will focus on several key questions and issues in natural animal and human behaviors taken in relation to the ‘designed’ behaviors of single and multiple robot systems as well as to human-robot behaviors. It offers students a hands-on opportunity to design and build robot behaviors using robotics kits – an Engineering or Computer Science perspective, and then experimentally evaluate behaviors and compare with similar human and animal behaviors, a Psychological perspective. 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.

Attributes: ICC, NESY.

CISC 4020. Bioinformatics. (4 Credits)

This course involves the study of the sequence, structure and function of genes and proteins in all living organisms. The machine learning, data mining, information fusion and computational techniques for analyzing large biological data sets will be presented. Topics include: genomics, proteomics, phylogenetics, microarray and gene expression, disorder and disease, virtual screening and drug discovery, databases, data mining, and ethical, societal, and legal issues. This course will have a laboratory component and exercises. 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.

Attributes: INSC, NESY, NEUR.

CISC 4080. Computer Algorithms. (4 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. 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.

Prerequisites: CISC 2200 and (CISC 2100 or MATH 2001).

CISC 4090. Theory of Computation. (4 Credits)

An introduction to the classical and contemporary theory of computation: finite state automata and regular expressions, context-free languages and pushdown automata, computability by Turing machines and recursive functions; undecideability problems and the Chomsky hierarchy; introduction to computational complexity theory and the study of NP-complete problems. 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.

Prerequisites: CISC 2200 and (CISC 2100 or MATH 2001).

CISC 4400. Mobile Device Programming. (4 Credits)

This course provides a hands-on introduction to mobile device (smartphone, tablet) programming, with a focus on Android based devices. Based on conceptual understanding of the Android operating system and its API frameworks, students practice with Android application development through projects with features including user interface design, multimedia, web application, sensor access, and networking. Design criteria such as energy awareness, security, and privacy will be emphasized in all projects. 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.

Prerequisites: CISC 2000 or CISC 3400.

CISC 4510. Computer Security Systems. (4 Credits)

Topics include vulnerabilities of operating systems and data bases, types of attacks, hardware aids, administrative responsibilities, classical and public- key encryption, and disaster recovery and planning. Pre-req CISC 2200 required or by permission. 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.

Attribute: CYSC.

Prerequisite: CISC 4500.

CISC 4515. Advanced Database Systems. (4 Credits)

Emphasis is placed on effective data base design. Topics include concurrency control, recovery techniques, security, and integrity considerations. Concepts and design principles, distributed data base systems, and data base machines will also be presented. 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.

Prerequisites: CISC 3500 or CISC 2200.

CISC 4597. Artificial Intelligence. (4 Credits)

Definition and rational of heuristic approach; cognitive processes; objectives and scope of artificial intelligence; general information processing and problem solving, including learning, representation, adaptation and use of knowledge; analysis and simulation of inductive and deductive process; natural language processing; robotics: man-machine interaction. 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.

Attributes: NESY, NEUR.

Prerequisite: CISC 2000.

CISC 4615. Data Communications and Networks. (4 Credits)

The course presents the basic concepts of data communications: data transmission, data encoding, data link control, multiplexing, error detection techniques. It covers communication networking techniques: switching, protocols line control procedures, local networks. Communication carrier facilities and systems planning considerations will also be discussed. 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.

Attributes: CYSC, INSC.

Prerequisites: CISC 1600 or CISC 2000.

CISC 4621. Machine Learning. (4 Credits)

This course covers methods, models and algorithms used in the exploratory data analysis and knowledge discovery of large-scale data sets and multi-model databases in complex living or artificial systems. Topics include induction logic reasoning, statistical inference, support vector machines, graph algorithms, neural networks, and evolutionary computation. Practical projects will be drawn from information engineering, computing and information retrieval. 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.

Attributes: NESY, NEUR.

Prerequisite: CISC 2000.

CISC 4625. Wireless Networks. (4 Credits)

This course covers the architecture, protocols, and applications of wireless communications and networks. Topics include: wireless networking, routing, standards including 802.11, Bluetooth and others; embedded operating systems, programming tools, power consumption, mobility, resource management, operating systems and security. Examples and experiments will be drawn from ad-hoc and sensor networks, wireless LAN, satellite networks, networking and human-machine interactions. 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 4615.

CISC 4631. Data Mining. (4 Credits)

This course introduces data mining methods for extracting knowledge from data. It balances theory and practice--the principles of data mining methods will be discussed, but students will also acquire hands-on experience using state-of-the-art software to solve real-world problems. Covered topics include: data preprocessing, classification and prediction (decision trees, neural networks, etc.), association analysis, and clustering. Additional specialized topics of interest may also be covered (e.g., web and text mining). Applications are drawn from a variety of areas, such as: marketing, business, economic forecasting, and bioinformatics. Non-majors are encouraged to take this course since the methods are applicable to a wide range of disciplines. 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.

Attributes: HCWL, HUST, INSC, NEUR.

CISC 4641. Wireless Sensor Data Mining. (4 Credits)

This course surveys the emerging field of wireless sensor networks and in, the use of cell phones and other mobile devices as platforms for collecting sensor data. This class will also focus on how sensor data can be mined in order to produce useful knowledge. Topics will include geo-spatial data mining, automatic customization of devices, biometrics, and ubiquitous computing. Various sensor modalities will be studied, including accelerometer data, GPS data, audio data, image data and the data generated from a variety of scientific equipment. This research-oriented course will have students read 2-3 papers a week and write short summaries of each paper. Each student, working individually or in small groups, will be expected to work on a related course project. Android cell phones will be made available to students for collecting sensor data and for the course projects. 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.

CISC 4650. Cyberspace: Issues and Ethics. (4 Credits)

This Senior Values/Eloquentia Perfecta 4 course explores issues of personal and social morality in the context of the technological developments related to the use of information and communication technology. We will survey a range of issues raised by the Internet and the World Wide Web, such as freedom of expression, privacy, intellectual property, and cybercrime. We will look at the influence of applications such as electronic mail, search engines, social media, e-commerce, and cryptography on the well-being of society and individuals. This course will equip the student with the tools needed to navigate the ethical complexities of life in the information age, whether as a professional in a field related to information technology or as a consumer of this technology. 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.

Attributes: AMST, APPI, ASAM, COMM, EP4, HCWL, HUST, NMDD, NMDE, VAL.

CISC 4660. Minds, Machines, and Society. (4 Credits)

While assuming no mathematical or computer background, this course examines modern computing and its impact on society. Perceptions of technology are challenged while discovering how technology affects our daily interactions. The notion of computer intelligence is studied in depth and the effect of such technology on making both moral and practical decisions in the future is examined. 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.

Attributes: ACUP, AMST, CCUS, COMC, EP4, NMDD, NMDE, VAL.

CISC 4700. Network and Client Server. (4 Credits)

This course deals with network computing the client/server environment. Topics include: operation systems, network protocols, network architecture, network security and network computing using languages such as PERL, Visual Basic and Java. 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 2200.

CISC 4750. Scientific Computation Using Matlab. (4 Credits)

An introduction to computer science concepts, programming skills, and algorithmic problem-solving in MATLAB. Assumes basic programming background. Design and analysis of numerical algorithms including numerical integration, numerical differentiation, curve fitting and differential equations. Introduction to Monte Carlo methods. Application of MATLAB in computational science and computational engineering. Solution of linear systems and eigenvalue problems. Complex numbers algebra. 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.

Attribute: EP3.

Prerequisites: CISC 1600 or MATH 1207.

CISC 4800. Project and Internship. (4 Credits)

Students will work in teams on large projects selected from practical problems in the public or private sector. Students also gain on-job experience by working as interns in the field of computer science and information technology. 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.

CISC 4900. Seminar and Directed Study. (4 Credits)

Students attend seminars given by outside professionals, read technical articles, and present their study under the guidance of the instructor. Student will gain state-of-the-art knowledge and information in computer and information science. 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.

CISC 4999. Tutorial. (4 Credits)

Independent Study.

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.

Attributes: CSNS, CSSS, CYSM, DATA, EDDS.

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.

Attributes: CSDA, CSNS, CSSS, DATA, EDDS.

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.

Attributes: CSAI, CSDA, CSID, DATA, PMTM.

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.

Attributes: ASDM, CSDA, CSID, DATI, IPED, PMTM.

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.

Attributes: CSAI, CSDA, CSID, CSIQ, DATI, NESY.

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.

Attributes: CSAI, CSDA, DATI, DCDF, EDDS, PMTM.

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.

Attributes: CSAI, CSDA, CSID, DATA, EDDS.

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.

Attributes: CSAI, CSID, CSIQ, DATA, DCDF, EDDS, NESY.

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.

Attributes: CSAT, CSNS, CYSM, DATA, DCCF, HUCB.

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.

CISC MTNC. Maintenance-Comp.Science. (0 Credits)

Maintenance course.