Computer Science Courses
This course provides a graduate level presentation of Programming Languages. Formal student of programming language specification, analysis, implementation, and run-time support structures; organization of programming languages with emphasis on language constructs and mechanisms; and study of non-programming paradigms. Students who have successfully completed CS 403 may not also receive credit for CS 503.
Building upon the concepts from CS 104, students will explore in-depth how computer science education is presented in the secondary education setting. Students will get the opportunity to explore current computer science curriculum and develop resources for future teaching, with a specific emphasis on the College Board’s AP CS Principles (AP CSP) curriculum.
Study of techniques and tools for design-time and run-time software adaptation, including principles of reflection and metaprogramming, software modularity, metamodeling and software language engineering.
An examination of computer security concepts, such as cryptographic tools, user authentication, access control, database security, intrusion detection, malicious software, denial of service, firewalls and intrusion prevention systems, trusted computing and multilevel security, buffer overflow, software security, physical and infrastructure security, human factors, and security auditing. Students who have successfully completed CS 428 may not also receive credit for CS 528.
This course provides a graduate level presentation of Compiler construction. Syntax and semantics of procedure-oriented languages and translation techniques used in their compilation; includes computer implementation.
Display memory, generation of points, vectors, etc. Interactive versus passive graphics, analog storage of images on microfilm, etc. Digitizing and digital storage, pattern recognition by features, syntax tables, and random nets. The mathematics of three dimensions, projections, and the hidden-line problem. Students who have successfully completed CS 435 may not also receive credit for CS 535.
This course provides a graduate level presentation of Computer Communications and Networks. The student of the issues related to Computer communications. Topics include physical topologies, switching, error detection and correction, routing, congestion control, and connection management for global networks (such as the Internet) and local area networks (such as Ethernet). In addition, network programming and applications will be considered. Students who have successfully completed CS 438 may not also receive credit for CS 538.
This course will cover algorithms and concepts in cryptography and data security. We will undertake an examination of algorithms and concepts in cryptography and data security, such as symmetric ciphers, asymmetric ciphers, public-key cryptography, hash functions, message authentication codes, key management and distribution, etc.
Digital Forensics is an area of study that is rapidly growing in importance and visibility. It involves preserving, identifying, extracting, documenting and interpreting digital data. Though sometimes misunderstood, digital forensics is like other types of investigation. With the continuous rise of computer-related incidents and crimes, and the increased emphasis on homeland defense in this country, there is a growing need for computer science graduates with the skills to investigate these crimes. This course will introduce the topics of computer crime and digital forensics. Students will be required to learn different aspects of computer crime and ways in which to uncover, protect and exploit digital evidence.
This course is an introduction to software security principles and practices. Topics for this course will include but not be limited to security architectures, defensive programming, web security, secure information flow, and common software vulnerabilities.
Software Reverse Engineering is an area of study that is rapidly growing in importance and visibility. This course will reveal to students the challenges of monitoring and understanding software systems. During the course students will become familiar with the practice of software reverse engineering files by utilizing static and dynamic techniques, and methods in order to gain an understanding as to what impact a file may have on a computer system.
Concepts concerning network security, including an examination of network security concepts, algorithms, and protocols.
This course introduces fundamental concepts & techniques in data science as well as develops practical skills for data analysis in real-world applications. Given the multi-disciplinary nature of data science, the course will primarily focus on the advantages and disadvantages of various methods for different data characteristics, but will also provide some coverage on the statistical or mathematical foundations. Topics to cover include data preprocessing, data exploration, relationship mining, prediction, clustering, outlier detection, deep learning, spatial and spatiotemporal data analysis, text data analysis, and big data.
This course is an introduction to information retrieval principles and practices. The course will cover several aspects of Information Retrieval including; indexing, processing, querying, and classifying data. Also, retrieval models, algorithms, and implementations will be covered. Though the class will focus primarily on textual data, other media including images/videos, music/audio files, and geospatial information will be addressed. Topics for this course will include but not be limited to: text processing and classification, web search development techniques, and document clustering.
The world is experiencing rapid growth in the amount of published data which come from different sources, including Social Media platforms. The availability of programming interfaces to these platforms allows for near real-time processing of these data for various purposes. This course will reveal to students the inherent challenges of analyzing Social Media data and introduce tools and techniques that are available to address them.
This course provides a graduate level presentation of Database Management Systems. Constituent parts of database management (design, creation, and manipulation of databases), client-server, relational, and object-oriented data models.
Issues involved with the implementation of robot control software including motion, kinematics, simulation testing, sensor incorporation and unmodeled factors. Students who have successfully completed CS 460 may not also receive credit for CS 560.
This course involves the exploration of new forms of Human-Computer Interaction (HCI) based on passive measurement of neurophysiological states (cognitive and affective). These include the measurement of cognitive workload and affective engagement.
The advanced study of topics under the umbrella of artificial intelligence including problem solving, knowledge representation, planning and machine learning.
Computer architectures, computer design, memory systems design, parallel processing concepts, supercomputers, networks, and multiprocessing systems.
Introduction to simulation and use of computer simulation models; simulation methodology, including generation of random numbers and variants, model design, and analysis of data generated by simulation experiments. Students who have successfully completed CS 480 may not also receive credit for CS 580.
This course provides students with knowledge and fundamental concepts of high performance computing as well as hands-on experience of the core technology in the field. The objective of this class is to understand how to achieve high performance on a wide range of computational platforms. Topics include: optimizing the performance of sequential programs based on modern computer memory hierarchies, parallel algorithm design, developing parallel programs using MPI, analyzing the performance of parallel programs.
This course offers a comprehensive overview of machine learning, encompassing both theoretical foundations and practical algorithmic approaches from multiple perspectives. The curriculum includes foundational learning theory, supervised learning with a particular emphasis on modern deep learning techniques, unsupervised learning, and reinforcement learning.
This course covers fundamental principles, algorithms, and implementations of reinforcement learning, including the design of computational agents based on machine learning and control theory. The typical methods include reinforcement algorithms, dynamic programming, approximate functions, and temporal difference learning for policy evaluation and control problems. The course will involve the application of these concepts and methods in simulation or real‐world problems as well as potentially in the context of psychology and neuroscience.
Formal courses that cover new and innovative topics in computer science and do not yet have their own course numbers. Specific course titles will be announced.
This course requires a written proposal that must be approved by the sponsoring faculty member before registration.
No description available.
This independent research course partially fulfills required master’s-level research thesis hours toward the master’s degree in Computer Science. The course is conducted under the guidance of the thesis advisor. Material covered will be of an advanced nature aimed at providing master's students with an understanding of the latest research and current developments within the field. Discussion and advisor guidance will be directed towards readings of research articles and development of research methodology, with the aim of producing an original research contribution that represents a novel development in the field, or a novel perspective on a pre-existing topic in the field.
Design of operating systems; advanced examination of synchronization, deadlock, virtual memory, and security; and parallel and distributed systems.
An advanced view of database management systems, addressing both practical and theoretical aspects of database systems. The implementation and performance of the relational and NoSQL models will be examined, along with system techniques associated with transaction processing and recovery. Distributed databases, database security, and databases in clouds will also be discussed.
Introduction to empirical research methods in software engineering. Focus on measuring processes and designing experiments.
This course offers a comprehensive introduction to Modern Cryptography, and, specifically, its main formalisms, solutions, and open questions, with a heavy focus on application aspects, including case studies for real-life uses of Modern Cryptographic Protocols.
Concepts and technologies in IoT and IoT security, including introduction to IoT applications, IoT protocols, threats and countermeasures.
Formal courses that cover new and innovative topics in computer science and do not yet have their own numbers; specific course titles will be announced.
This course requires a written proposal that must be approved by the sponsoring faculty member before registration.
This independent research course is designed for Ph.D. students in Computer Science who have completed their coursework and the Ph.D. Qualifying Exam, but have not been admitted to Ph.D. candidacy. The course is conducted under the guidance of the dissertation advisor. Material covered will be of an advanced nature aimed at providing doctoral students with an understanding of the latest research and current developments within the field. Discussion and advisor guidance will be directed towards readings of research articles and development of research methodology to prepare the dissertation proposal.
This independent research course partially fulfills required doctoral-level research dissertation hours toward the Ph.D. degree in Computer Science. The course is conducted under the guidance of the dissertation advisor. Material covered will be of an advanced nature aimed at providing doctoral students with an understanding of the latest research and current developments within the field. Discussion and advisor guidance will be directed towards readings of research articles and development of research methodology, with the aim of producing an original research contribution that represents a novel development in the field, or a novel perspective on a pre-existing topic in the field.