Computer Science
View courses in
- Computer Science
- All Departments
- Actuarial Science
- Administrative Sciences
- Advertising
- Anthropology
- Art History
- Arts Administration
- Astronomy
- Biochemistry
- Biology
- Chemistry
- City Planning
- Computer Science
- Criminal Justice
- Economics
- English Composition & Literature
- Gastronomy
- Health Communication
- Health Science
- History
- Humanities
- Interdisciplinary Studies
- Leadership
- Linguistics
- Management
- Mathematics, Statistics
- Philosophy
- Physics
- Psychology
- Sociology
- Urban Affairs
-
MET CS 699: Data Mining
Prerequisites: MET CS 521, MET LB 103 and MET LB 104; and either MET CS 579 or MET CS 669; or consent of instructor. - Study basic concepts and techniques of data mining. Topics include data preparation, classification, performance evaluation, association rule mining, regression and clustering. You will learn underlying theories of data mining algorithms in the class and practice those algorithms through assignments and a semester-long class project using R. After finishing this course, you will be able to independently perform data mining tasks to solve real-world problems. -
MET CS 763: Secure Software Development
Prerequisites: At least two programming-intensive or software development courses or consent of instructor. You should be proficient in at least one high-level programming language. Completion of MET CS 673 is preferred. - An overview of techniques and tools to develop secure software. You will focus on the application of security with topics including secure software development processes, DevSecOps, threat modeling, secure requirements and architectures, vulnerability and malware analysis using static code analysis and dynamic analysis tools, and vulnerabilities in C/C ++ and Java programs, Crypto and secure APIs, vulnerabilities in web applications and mobile applications, and security testing will also be covered. You will complete the required hands-on lab and programming exercises using current tools. -
MET CS 766: Deep Reinforcement Learning
Prerequisites: MET CS 767 or consent of instructor. - Investigate reinforcement learning, focusing on fundamental concepts and advanced techniques. You will begin with an introduction to reinforcement learning and key concepts, such as exploitation versus exploration and Markov Decision Processes. Then, as the course progresses, you will delve into state transition diagrams, the Bellman equation, and solutions to the Multi-Armed Bandits problem. Challenges and methods for control and prediction will be explored, as well as tabular methods such as Monte Carlo, Dynamic Programming, Temporal Difference Learning, SARSA, and Q-Learning. The course culminates in a review of neural network concepts, covering convolutional and recurrent neural networks, and approximation methods for both discrete and continuous spaces, including DQN and its variants. Policy gradient methods, actor-critic methods, and ethical considerations in AI and safety issues are also discussed. -
MET CS 767: Advanced Machine Learning and Neural Networks
Prerequisites: MET CS 521 and at least one of MET CS 577, MET CS 622, MET CS 673 or MET CS 682; or consent of instructor. Theories and methods for learning from data. The course covers a variety of approaches, including Supervised and Unsupervised Learning, Regression, k-means, KNN's, Neural Nets and Deep Learning, Transformers, Recurrent Neural Nets, Adversarial Learning, Bayesian Learning, and Genetic Algorithms. The underpinnings are covered: perceptron's, backpropagation, attention, and transformers. Each student creates a term project. -
MET CS 775: Advanced Networking
Prerequisites: MET CS 535 or consent of instructor - This seminar course provides a strong foundation in networking and Internet architecture, data transfer protocols, including TCP, SCTP, QUIC, and IPv6, and a deep look at network resource allocation with an emphasis on protocol- independent hardware for Deep Packet Inspection (DPI) and congestion management. The course goes into greater depth of current topics such as: naming and addressing, synchronization, congestion management and resource allocation (routing) and how they manifest in different environments. There will be assigned readings from the professor that require considerable class participation, both in presenting material and discussing it. -
MET CS 777: Big Data Analytics
Prerequisites: (MET CS 521 & MET CS 544 & MET CS 555) or MET CS 577 or consent of instructor. An overview of the principles and practice of large-scale data analytics. You will examine methods for extracting meaningful insights from large, complex, and distributed datasets, learning about core technologies for storing and processing high-volume data. This course emphasizes distributed computing frameworks based on the MapReduce paradigm, including Hadoop MapReduce and Apache Spark, along with programming models, parallel data processing, and performance considerations in cluster-based environments. Through hands-on assignments and projects, you will implement data processing algorithms and deploy them on cloud platforms such as Amazon Web Services (AWS) and Google Cloud, developing the practical skills required for data engineering and large-scale analytics in real-world environments. Educational cloud accounts and credits are provided. -
MET CS 779: Advanced Database Management
Prerequisites: METCS579 or METCS669 or consent of the instructor - Investigate advanced aspects of database management including normalization and denormalization, query optimization, distributed databases, data warehousing, and big data. There is extensive coverage and hands on work with SQL, and database instance tuning. Modern database architectures, including relational, key value, object relational, and document store models, as well as various approaches to scale out, integrate, and implement database systems through replication and cloud-based instances, are covered. You will learn about unstructured "big data" architectures and databases, gain hands-on experience with Spark and MongoDB, and complete a term project exploring an advanced database technology of your choice. -
MET CS 781: Advanced Health Informatics
Prerequisites: MET CS 580 or consent of instructor. This course studies health care data and information, health care information systems (HCIS), and explores the challenges of managing information technology (IT). You will learn the architecture, design, and user requirements of information systems in health care, with a focus on IT aspects of Health Informatics, specifically the design, development, operation, and management of HCIS. The first part of the course introduces foundational concepts, including information processing needs and information management in health care environments. Next, you will engage in a detailed examination of HCIS, including hospital process modeling, architecture, quality assessment, and applicable tools. The course concludes by addressing the management of HCIS and related issues, and the extension of these topics to other healthcare organizations. Throughout the course, you will gain hands-on experience by participating in a term project focused on HCIS research and development. -
MET CS 782: IT Strategy and Management
Prerequisites: MET CS 682 or instructor's consent. Restrictions: Only for MS CIS students. - Explore and analyze contemporary and emerging information technology and its management. You will learn to identify information technologies that offer strategic value to organizations and acquire skills to manage their successful implementation. The course highlights the application of IT solutions to address business needs. This advanced Master's (700) level course assumes students understand IT systems equivalent to those taught in METCS 682. -
MET CS 787: AI and Cybersecurity
Prerequisites: MET CS 577 or consent of instructor. This course provides an in-depth exploration of the critical intersection between Artificial Intelligence (AI) and cybersecurity, focusing on two interconnected themes: protecting AI systems from vulnerabilities and harnessing the power of AI to tackle cybersecurity challenges. As AI becomes a cornerstone of modern technology, ensuring the security of AI-powered systems against adversarial attacks, backdoor attacks, and model theft is essential. Simultaneously, AI offers transformative capabilities for malware detection, intrusion prevention, and malware analysis. Through a combination of theoretical foundations, hands-on exercises, and real-world case studies, students will delve into topics such as adversarial machine learning, backdoor injection and defense, IP protection, and privacy-preserving AI. They will also learn how to design and implement AI-driven tools for identifying and mitigating cyber threats in dynamic environments. The course emphasizes practical applications, encouraging students to build resilient AI systems and utilize advanced AI techniques to enhance system security and detect emerging threats. Hands-on labs based on existing tools are provided and required. -
MET CS 788: Generative AI
Prerequisites: MET CS 577, Python programming, mathematics required for machine learning, and familiarity with neural networks. Or consent of instructor. - The first part of the course covers statistical concepts required for generative artificial intelligence. We review regressions and optimization methods as well as traditional neural network architectures, including perceptron and multilayer perceptron. Next, we move to Convolutional Neural Networks and Recurrent Neural Networks and close this part with Attention and Transformers. The second part of the course focuses on generative neural networks. We start with traditional self-supervised learning algorithms (Self Organized Map and Restricted Boltzmann Machine), then explore Auto Encoder architectures and Generative Adversarial Networks and move toward architectures that construct generative models, including recent advances in NLP, including LLMs, and Retrieval Augmented Methods. Finally, we describe the Neural Radiance Field, 3D Gaussian Splatting, and text-2-image models. -
MET CS 789: Cryptography
Prerequisites: (MET CS 248 & MET CS 566) or consent of instructor - The course covers the main concepts and principles of cryptography, with the main emphasis on public key cryptography. It begins with the review of integers and a thorough coverage of the fundamentals of finite group theory, followed by the RSA and ElGamal ciphers. Primitive roots in cyclic groups and the discrete log problem are discussed. Baby-step Giant-step and the Index Calculus probabilistic algorithms to compute discrete logs in cyclic groups are presented. Naor -- Reingold and Blum -- Blum -- Shub Random Number Generators as well as Fermat, Euler and Miller-Rabin primality tests are thoroughly covered. Pollard's Rho, Pollard's and Quadratic Sieve factorization algorithms are presented. The course ends with the coverage of some oblivious transfer protocols and zero-knowledge proofs. There are numerous programming assignments in the course. -
MET CS 790: Computer Vision in AI
Prerequisites: MET CS 566 or instructor's consent. - Students enrolled in this course will gain comprehensive insights into fundamental and advanced concepts within the dynamic realm of computer vision. The curriculum will focus on cutting-edge applications of deep neural networks in computer vision. Through hands-on experiences and practical exercises, students will learn to leverage computer vision and machine learning techniques to solve real-world challenges. This course not only equips students with theoretical knowledge but empowers them to apply these concepts effectively, fostering a deep understanding of how computer vision can be harnessed to address complex problems in diverse industries. -
MET CS 793: Special Topics in Computer Science
The course changes from semester to semester. More than one special topics course can be offered in a given semester. Course descriptions for all sections are listed below. For more information, please contact MET Department of Computer Science. -
MET CS 795: Directed Study
Prereq: Consent of advisor. Requires prior approval of student-initiated proposal. Independent study on special projects under faculty guidance. -
MET CS 810: Master's Thesis 1
This is the first course of the two-part thesis option available to Master’s degree program candidates in the Department of Computer Science. You must have completed at least four courses toward your degree and have a grade point average (GPA) of 3.7 or higher. You are responsible for finding a thesis advisor and a principal reader within the department. Please refer to the Department for further details on the application process. Both MET CS 810 Master’s Thesis 1 and MET CS 811 Master’s Thesis 2 must be completed within 12 months. -
MET CS 811: Master's Thesis 2
This is the second course of the two-part thesis option available to Master’s degree program candidates in the Department of Computer Science. You must have completed at least four courses toward your degree and have a grade point average (GPA) of 3.7 or higher. You are responsible for finding a thesis advisor and a principal reader within the department. Please refer to the Department for further details on the application process. Both METCS 810 Master’s Thesis 1 and METCS 811 Master’s Thesis 2 must be completed within 12 months.

