Skip to Main Content

Course Listing for Computer Science

All courses, arranged by program, are listed in the catalog. If you cannot locate a specific course, try the Advanced Search. Current class schedules, with posted days and times, can be found on the NOW/Student Dashboard or by logging in to SiS.


Foundations of Computer Science (Formerly 91.502)

Description

An advanced introduction to theoretical computer science. This course will cover the fundamentals of automata, formal languages, and computability theory.

Prerequisites

Pre-Req: COMP.4040 Analysis of Algorithms.

Algorithms (Formerly 91.503)

Description

Advanced algorithms and complexity analysis. Dynamic programming; greedy algorithms; amortized analysis; shortest path and network flow graph algorithms; NP-completeness; approximation algorithms; number-theoretic algorithms; string matching; computational geometry. Additional topics may include linear programming, parallel algorithms, fast Fourier transforms, polynomial, integer, and matrix algorithms. Readings may include conference and journal papers from the algorithms literature.Abstract types, lists, trees, graphs, sets; relevant algorithms and their worst and average case analyses; fast transforms; polynomial, integer, and matrix algorithms; NP-completeness.

Prerequisites

Pre-Req: COMP.4040 Analysis of Algorithms.

Advanced Algorithms: Computational Geometry (Formerly 91.504)

Description

Advanced algorithms topics, such as design and analysis of geometric and combinatorial algorithms, computability andcomplexity.

Prerequisites

Pre-Req: 91.503 Algorithms or Instructor permission.

Computational Complexity Theory (Formerly 91.510)

Description

This course covers polynomial-time hierarchy and polynomial space, circuit complexity, structure of NP, probabilistic machines and complexity classes, complexity of counting, interactive proof systems, probabilistically checkable proofs, complexity of approximation problems, and average-case NP-completeness.

Prerequisites

Pre-Reqs. COMP 5020 Foundations of CS, and COMP 5030 Algorithms.

Internet And Web Systems I (Formerly 91.513)

Description

This course is a survey of Web programming technologies. It begins with a discussion of what Web servers and clients are, how they interact, and how one sets them up. We then explore a wide variety of Web technologies including HTML, JavaScript, JavaServer Pages, Java Servlets, and XML and its many related technologies. Our goal in this course is to provide the basic understanding and knowledge of how the Internet and World Wide Web operate and the technical knowledge required to establish and maintain an Internet/Web site and to develop and introduce new capabilities and features on such sites.

Internet & Web Systems II (Formerly 91.514)

Description

A continuation of 91.513 with a focus on current topics and topics of special interest. Examples of recent topics include: The semantic Web and ontologies, Web services, Peer-to-peer networks, Information Search and Retrieval, Autonomous intelligent agents and Multi-modal presentations.

Prerequisites

Pre-Req: COMP.5130 Internet & Web Systems I.

Operating Systems I (Formerly 91.515)

Description

This course provides insight into multiprocessing operating systems including processor memory, peripheral, and file systems management in batch, timesharing, real time, and distributed systems targeted for various hardware. Particular emphasis will be placed on techniques of virtual memory as well as the problems of concurrency in both centralized and distributed systems. An OS simulation is a required programming project. Some topics to be covered are process synchronization; high-Level mechanisms for concurrency; processor scheduling and system analysis; deadlock; virtual memory; distributed systems; computer security.

Operating Systems II (Formerly 91.516)

Description

The design and implementation of an interactive multiprocessing operating system to run on a bare hardware system. Separate teams manage the major subsystems with in-class design reviews to coordinate system integration. A functioning system is a class requirement.

Prerequisites

Pre-Req: COMP.5150 Operating Systems I.

Introduction to Linux Kernel Development

Description

Linux is the most widely used operating system in the world. The core software component of the Linux operating system is the kernel. Some of its roles include managing hardware interactions, virtualizing system resources, and enforcing security constraints. In effect, the Linux kernel powers almost all of the world's top supercomputers, android phones, and an innumerable variety of other computers. This course will introduce students to the Linux kernel development by focusing on device driver development, particularly character devices and the /proc and/sys interfaces. This will give students hands-on experience working with internal Linux kernel APIs for hardware access, memory management, DMA and interrupts, among other, and provide an overview of some of the core features and components of the kernel, such as scheduling, system calls, the boot process, and hardware description trees. Gaining an understand of the inner workings of the operating system and how to make changes to it will give students an invaluable perspective on how computers work behind the scenes, which will reveal a new layer of understanding to apply to any future software engineering practice.

Prerequisites

Pre-req: COMP.2030 Assembly Language Programming, or Permission of Instructor.

Computer Vision I (Formerly 91.423 & 91.523)

Description

Computer vision has seen remarkable progress in the last decade, fueled by the ready availability of large online image collections, rapid growth of computational power, and advances in representations and algorithms. Applications range from 3-D scene reconstruction, to visual Simultaneous Localization and Mapping (SLAM) for robotics, to real-time human body pose estimation. This introductory computer vision course explores various fundamental topics in the area, including the principles of image formation, local feature analysis, segmentation, multi-view geometry, image warping and stitching, structure from motion, and object recognition.

Prerequisites

Pre-req: COMP 1020 Computing II, MATH 1320 Calculus II, and MATH 3220 Discrete Structures II.

Human Computer Interaction (Formerly 91.527)

Description

The purpose of this class is to ground students in the basics of how humans interact with technology, and make students aware of the breadth of topic areas related to human-computer interaction (HCI). This course emphasizes theoretical constructs such as the Model-Human Processor, and includes seminal readings by the original researchers. Further, the course emphasizes techniques for understanding users' tasks, formulating users' requirements, and assessing proposed designs using heuristic evaluation. As part of understanding users' needs, students will consider social, organizational, and ethical perspectives on information technology. Students are also exposed to specialty topics in human-computer interaction such as multi-user computing, universal access to computer applications, and internationalizing interfaces. This course includes a project to design, develop, document, and orally present a prototype interface. At the end of the course students will be able to cite basic principles of human interaction and devise and carry out a usability engineering plan to aid in developing new human interfaces.

Evaluation of Human-Computer Interaction (Formerly 91.528)

Description

This course is an introduction to methods used to evaluate the design of human-computer interaction (HCI). Students will apply examples of all three of the major types of HCI evaluation techniques: inspection, analytical, and empirical techniques. The course also covers HCI experiment design and data analysis, including threats to experimental validity. The course project consists of a formal usability test. This project requires students to learn principles of ethical treatment of human subjects, complete the University's Institutional Review Board applications and training for human-subject testing, conduct testing sessions, analyze data, recommend design changes, and document results in a professional manner. At course completion, students will have demonstrated skills for assessing the effectiveness of interface designs and will understand how evaluation fits into computer products' lifecycles.

Special Topics (Formerly 91.530)

Description

Topics of mutual interest to the instructor and student(s). "Variable credit course, student chooses appropriate amount of credits when registering."

Design of Program Languages (Formerly 91.531)

Description

A one-semester course designed to provide students with hands-on understanding of the underlying concepts of programming languages, the principles of their design, and the fundamental methods for their implementation. An executable metalanguage such as Scheme or SML is used throughout the course, facilitating the design of high-level, concise interpreters that are easy to comprehend. The approach is analytical because the salient features of the imperative, functional, object-oriented, and logic programming paradigms are described in the executable meta-language.

Prerequisites

Pre-Req: COMP 3010 Org Programming Languages or COMP 4060 Compiler Construction I.

Compiler Construction I (Formerly 91.534)

Description

This course implements a compiler for a complete language. Topics include grammars, syntax, elements of parsing and recursive descent, semantics, basic code generation, fast compilation runtime support. Programming project required.

Visual Analytics (Formerly 91.540)

Description

This course covers the basic topics for the interdisciplinary field of visual analytics. This course is not just for computer science students but also for analysts and scientists in different disciplines. The topics include visual analytics science and technology, perception, cognitive processes and human tasks and reasoning, data and knowledge representation, visualization and interaction, statistical and analytic methods, data mining and knowledge discovery, and evaluation and usability. Numerous examples of systems, tools and applications will be presented.

Prerequisites

Pre-Requisites: COMP 3010 Org Programming Languages or COMP 3040 Foundations of Comp Science; or Instructor permission.

Data Visualization (Formerly 91.541)

Description

This course looks at classical and novel methodologies for the visualization of large and complex data sets. The course covers both scientific and information visualization starting with data modeling, human perception and cognition, basic and advanced techniques, interaction, formal models, real time systems, and frameworks for integrated analysis and visualization. Examples used come from numerous areas including the biomedical literature and security.

Social Computing

Description

This course focuses on the background, design, implementation and analysis of social computing systems. The specific focus of the course will be on computational models applied to user-generated content, including online reviews, web forums discussions, and other textual content in social media platforms, such as Twitter and Reddit. Tools and techniques for crawling, pre-processing and pos-processing user-generated content will be introduced through interactive and hands-on tutorial sessions. In addition, the course will cove prominent applications and research finding in social computing. At the end of this course, students should have a good understanding of the background, design, analysis and implementation of social computing systems; as well as hands-on experience on a range of tasks from crawling and processing user-generated content to extracting actionable insights from such content. Guest lectures by distinguished researchers and course projects will emphasize the subtleties of translating computational models into practical applications in social computing. The course is open to undergraduate students (for their elective course requirement) as well as graduate students.

Prerequisites

Pre-req: COMP.4220 Machine Learning, and COMP.1020 Computing II, or Permission of Instructor.

Natural Language Processing (Formerly 91.442 & 91.542)

Description

This course introduces principles and techniques behind natural language processing (NLP), and covers a large selection of important automatic text processing tasks. Selected topics include n-gram language models, part-of-speech tagging, statistical parsing, word sense disambiguation, discourse segmentation, information extraction, sentiment analysis, machine translation. Quantitative techniques are emphasized, with a focus on applying statistical models to large collections of text. The course provides students with a hands-on experience in building a substantial NLP application of their choice.

Prerequisites

Pre-req: 91.422 Machine Learning.

Artificial Intelligence (Formerly 91.543)

Description

Search and games, knowledge representation paradigms, natural language understanding, planning, perception. Use of the LISP language for one or more programming projects.

Reinforcement Learning

Description

This course provides a solid introduction to the field of Reinforcement Learning (RL) and Decision Making. The students will learn about the basic blocks, main approaches, and core challenges of Reinforcement Learning including tabular methods, Finite Markov Decision Processes, Dynamic Programming, Monte Carlo methods, Temporal-Difference learning, policy search, function approximation, exploration, and generalization. Through a combination of lectures, and written and coding assignments, students will become well versed in key ideas and techniques for RL. Assignments will include the basics of reinforcement learning. In addition, students will advance their understanding and the field of RL through a final project.

Prerequisites

Pre-req: COMP.2010 Computing III, and MATH.3860 Probability and Statistics I, or Permission of Instructor.

Data Mining (Formerly 91.544)

Description

This introductory data mining course will give an overview of the models and algorithms used in data mining, including association rules, classification, clustering, etc. The course will teach the theory of these algorithms and students will learn how and why the algorithms work through computer labs.

Prerequisites

Pre-Req: COMP 5430 Artificial Intelligence, or COMP 5730 Database I.

Machine Learning (91.545)

Description

This introductory course gives an overview of machine learning techniques used in data mining and pattern recognition applications. Topics include: foundations of machine learning, including statistical and structural methods; feature discovery and selection; parametric and non-parametric classification; supervised and unsupervised learning; use of contextual evidence; clustering, recognition with strings; small sample-size problems and applications to large datasets.

Graph Machine Learning

Description

This course focuses on computational and modeling challenges in real world graphs (networks), with a particular emphasis on key advancements in graph representation and its applications. At the end of this course, students should have good understanding of computational techniques that can be applied to a variety of networks, as well as hands-on experience on a range of tasks from identifying important nodes to detection communities to tracing information diffusion in networks. Guest lectures by distinguished researchers and course assignments emphasize the subtleties of translating these techniques into practical applications that reveal insights on a variety of networks. Students should have a strong interest in conducting (or learning how to conduct) research to succeed in this course.

Prerequisites

Pre-req: COMP.4220 Machine Learning, and COMP.1020 Computing II, or Permission of Instructor.

Computer Graphics I (Formerly 91.546)

Description

Introduction to the hardware, software and mathematics of 2- and 3-dimensional interactive computer graphics systems, including standards, modeling, transformations, hidden-surface removal, shading, and realism.

Computer Graphics II (Formerly 91.547)

Description

Lighting models, photo-realism, animation, constructive solid geometry, and distributed graphics.

Robot Design (Formerly 91.548)

Description

A broad interpretation of robotics to mean systems that interact with people, each other, and the world around them, using sensors, actuators, communications, and a control program. Project- and lab-based course that involves electronics, embedded coding, mechanical design, and research.

Mobile Robots (Formerly 91.549)

Description

This course will focus on the artificial intelligence side of robotics in a project- and lab-based course. Topics to be covered include robot architectures, mapping and localization, learning, vision, multi-agent systems and current research areas.

Robot Learning

Description

This course will cover a variety of machine learning approaches that allow robots to learn manipulation tasks from their own actions and experiences, as well as through interaction with humans. Topics will include methods from a) imitation learning, b) learning from demonstration, and c) Reinforcement Learning. We will discuss methods including, but not limited, to data gathering and pre-processing, skill encoding, reproduction, and generalization, skill refinement, obstacle avoidance, symbol grounding, symbolic planning, feature selection and segmentation, and active learning. The course includes student presentations and a final project where students develop an existing approach and extend it further by applying and implementing their own ideas. There are no formal pre-requisites however, this course covers material that utilize a good deal of machine learning and there will be no time to cover all the background material. Therefore, I strongly recommend having a graduate-level machine learning course (COMP.5450), equivalent research experience, or the willingness to do significant studying outside of class. Students are also expected to have fair knowledge of (a) Linear algebra, (b) calculus, and (c) statistics.

Topics (Formerly 91.550)

Description

Topics of mutual interest to the instructor and student(s).

Bioinformatics for CS

Description

Complete genomic sequences of human, other mammals, and numerous other organisms are known for some time. From early on, comparisons or analyses of genomic sequences require aids on computer programming. After brief introductions to molecular biology for Computer Science students, the course will examine computer algorithms used in bioinformatics problems including sequence alignment, phylogeny, DNA sequencing, and data analyses.

Foundations in Digital Health

Description

Digital health is concerned about utilizing computational technologies to develop heath systems, in order to improve healthcare quality. These technologies include various software and hardware solutions such as web apps and wearable devices. This will introduce the foundations and methods in digital health and hand on lab sections to both undergraduate and graduate students, which include the scientific problems, challenges, and application tools of the domain, the tasks we need to handle with, and the applications of various methods such as statistics, machine learning and deep learning. After taking this course, students will obtain a clear concept about what is digital health and knowledge of a wide rang of resources and tools to solve the problems and tasks in this domain.

Deep Learning

Description

This course focuses on the deep learning theory, algorithms, systems, and applications. Topics to be covered in this course include math and machine learning basics for Deep Learning, foundations of Deep Learning, Convolutional neural networks, Recurrent neural networks, Deep reinforcement learning, and practical methodology.

Prerequisites

Pre-req: COMP.3080 Operating Systems, and COMP.4040 Analysis of Algorithms, and COMP.4220 Machine Learning.

Human_Robot Interaction (HRI)

Description

In this course, we will study the emerging field of human-robot interaction. You will learn how interaction varies based upon a large number of factors, including the capabilities of the robot, its shape, what it is being used for, and the location of the robot with respect to the user. Design principles from the field of human-computer interaction will be used to inform our discussion of how to design for human-robot interaction. The course will also address how to design studies, collect data and analyze the data. Case studies of human-robot interaction in multiple application domains will be utilized throughout the course. The course will draw upon research papers (both recent and historical) for learning about these topics. Each week, you will read 3-5 research papers each week on a particular topic. These papers will form the basis for class discussion of each topic.

Computer & Network Security I (Formerly 91.561)

Description

Basic concepts and techniques of computer network security; data encryption algorithms; public-key cryptography and key management; data authentication; network security protocols in practice; wireless network security; network perimeter security; the art of anti malicious software; the art of intrusion detection. Students will implement encryption and authentication algorithms as network applications.

Prerequisites

Pre-Reqs: MATH 3210 Discrete Structures I , COMP 4040 Analysis of Algorithms and COMP 4130 Data Communications I.

Computer Security II (Formerly 91.562)

Description

Applied computer security topics such as a computer and network forensics, virtual private networks, denial of service, viruses and worms, intrusion detection systems, smart cards, biometrics, programming language security, web security and privacy, e-commerce; case studies of deployed systems; policy and legal considerations.

Data Communications I (Formerly 91.563)

Description

Resource sharing; computer traffic characterizations; multiplexing; network structure; packet switching and other switching techniques; design and optimization; protocols; routing and flow control; simulation and measurement; communications processors.

Data Communications II (Formerly 91.564)

Description

Continuation of 91.563

Prerequisites

Pre-Req: COMP.5630 Data Communications I.

Internet of Things

Description

This course focuses on fundamental Concepts and the State-of-the-Art of the Internet of Things (IoT); IoT Software; sensors signal processing; IoT networking systems; building IoT products using Arduino; NodeMCU; IoT Platforms and Sensors; the design of IoT solutions.

Prerequisites

Pre-req: COMP.4220 Machine Learning.

Malware Analysis

Description

This class covers both introductory and advanced topics on binary reverse engineering techniques including virtual machines as sandboxes, basic and advanced dynamic analysis, a crash course on assembly language, reverse engineering tools, shellcode analysis and anti-reverse engineering techniques.

IoT Security and Privacy

Description

The key objectives of this class include: understand IoT frameworks, applications and security and privacy concerns; be familiar with IoT hardware security; master IoT systems security; master IoT software security; master IoT network security; understand the IoT data security and privacy.

Prerequisites

Pre-req: COMP.5610 Computer & Network Security I, or Permission of Instructor.

Computer and Network Forensics

Description

This class introduces students to computer forensics and network forensics. Computer forensics tackles forensic investigation of stand-alone computers while network forensics deals with forensic investigation of networked computers and networks. The class will cover topics such as laws and legal compliance, forensic imaging and analysis, log-file analysis, network traffic analysis and case study.

Prerequisites

Pre-req: COMP.5610 Computer & Network Security I, or Permission of Instructor.

Topics (Formerly 91.570)

Description

Topics of mutual interest to the instructor and student(s).

Prerequisites

Pre-Req: 91.555 Comp Networks or 91.563 Data Communication I.

Data Base I (Formerly 91.573)

Description

Study of various database models including hierarchical, network, relational, entity-relationship, and object-oriented models. This course also covers data design, integrity, security, concurrency, recovery, query processing, and distribution.

Data Base II (Formerly 91.574)

Description

Continuation of Data Base I. Various issues in the implementation of database systems will be covered.

Prerequisites

Pre-Req: COMP.5730 Data Base I.

Methods in Data Science

Description

Data science is concerned about data: methods for creating, storing, retrieving, analyzing, interpreting, and visualizing data. Data science continues to evolve as one of the most promising and in-demand career paths. This course will introduce emerging methods in data science. After taking this course, students will obtain a clear concept about what is stat of the art methods for data and knowledge of a wide range of resources and tools to use and analyze data.

Topics in Computer Science (Formerly 91.580)

Description

Topics of mutual interest to the instructor and student(s).

Computer Science Education in Secondary School (Formerly 91.587)

Description

There is currently no description available for this course.

Directed Study in Computer Science

Description

Directed Study in Computer Science. "Variable credit course, student chooses appropriate amount of credits when registering."

Special Topics: Computer Science (Formerly 91.592)

Description

There is currently no description available for this course.

Internship Education (Formerly 91.593)

Description

"Variable credit course, student chooses appropriate amount of credits when registering."

Network Optimization (Formerly 91.604)

Description

This course covers advanced topics in network optimization on continuous and discrete models, including the max-flow problem, the min-cost flow problem, simplex methods for min-cost flow, dual ascent methods for min-cost flow, auction algorithms for min-cost flow, nonlinear network optimization, convex separable network problems, and network problems with integer constraints.

Prerequisites

Pre-Req: 91.503 Algorithms.

Advanced Topics in Information Retrieval and Mining (Formerly 91.613)

Description

This is a proposed new 600-level course. The topics are advanced topics in Information Retrieval and Mining, including (but not limited to) Search and Information Retrieval, Visual Text Mining, Document Retrieval and Analysis, Non-textual Retrieval (including Image-, Sound, Video-Retrieval). The course's format is a seminar: (advanced, doctoral) students will be reading and presenting the current state-of-the-art literature. Course requirements include weekly bibliography reports (at least 2 new entries each week) class presentations, two term papers, and a term project.

Prerequisites

Pre-Req: 91.514 Internet & Web Systems II; and Instructor permission.

Advanced Topics in Visualization (Formerly 91.641)

Description

This course covers advanced topics in data visualization. Coverage will be topical and may include advanced graph & text visualization, modern coordinated visualizations, collaborative visualization knowledge visualizations, security visualization, web-based visualization, and high-performance visualization. Theory will also be covered.

Prerequisites

Pre-Req: 91.541 Data Visualization.

Topics in Data Mining (Formerly 91.644)

Description

This course continues with 91.421/91.544 Data Mining and explores the state of the art research advances in mining large amount of data especially algorithms in association classification, clustering, and applications such as web mining and spatio-temporal data mining.

Prerequisites

Pre-req: COMP 4210 Data Mining or COMP 5440 Data Mining

Advanced Topics in Network Security (Formerly 91.661)

Description

This is a topic course, with a subtitle to be determined by the instructor. it covers advanced topics in network security of mutual interests to the faculty and students.

Prerequisites

Pre-Req: 91.561 Computer & Network Security I.

Advanced Database Systems (Formerly 91.673)

Description

This course covers advanced topics in database management systems, including query processing and optimization, indexing, transaction management, data warehousing, data mining, etc. It also covers spartio-temporal databases, search engines, stream and sensor databases, and open problems for research.

Prerequisites

Pre-Req: COMP.5730 Data Base I.

Computer Science Research (Formerly 91.701)

Description

There is currently no description available for this course.

Computer Science Research (Formerly 91.702)

Description

There is currently no description available for this course.

Computer Science Research (Formerly 91.703)

Description

There is currently no description available for this course.

Directed Research (Formerly 91.706)

Description

There is currently no description available for this course.

Approximation Algorithms (Formerly 91.710)

Description

This course covers advanced topics in approximation algorithms for NP-hard problems, including combinatorial algorithms and LP-based algorithms for set cover, k-cut, k-center, feedback vertex set, shortest superstring, knapsack, bin packing, maximum satisfiability, scheduling, Steiner tree, Steiner Forest, Steiner network, facility location, k-median, semidefinite programming. It also covers counting problems, shortest vector, hardness of approximation, and open problems for research.

Prerequisites

Pre-Req: 91.503 Algorithms.

Thesis Review (Formerly 91.741)

Description

There is currently no description available for this course.

Master's Thesis - Computer Science (Formerly 91.743)

Description

There is currently no description available for this course.

Master's Thesis - Computer Science (Formerly 91.746)

Description

There is currently no description available for this course.

Master's Thesis - Computer Science (Formerly 91.749)

Description

There is currently no description available for this course.

Doctoral Thesis Research (Formerly 91.751)

Description

"Variable credit course, student chooses appropriate amount of credits when registering."

Doctoral Dissertation/Computer Science (Formerly 91.753)

Description

There is currently no description available for this course.

Doctoral Dissertation/Computer Science (Formerly 91.756)

Description

There is currently no description available for this course.

Doctoral Dissertation/Computer Science (Formerly 91.759)

Description

There is currently no description available for this course.

Continued Graduate Research (Formerly 91.769)

Description

There is currently no description available for this course.

Network and Systems Administration (Formerly 94.511)

Description

This course introduces the concepts and techniques of systems and network administration. The course covers topics in a wide range from host management, network management, host and network security to automating system administration. In this course learners will be installing and configuring various popular network based services in a Linux environment.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Systems Security and Auditing (Formerly 94.514)

Description

This course examines the strategies for deploying and auditing secure systems. IT auditors primarily study computer systems and networks form the point of view of examining the effectiveness of their technical and procedural controls to minimize risks. Risk analysis and the implementation of corresponding best practice control objectives will be studied. The material will include methodologies that help auditors to: Discover what's really going on at a point in time; Find out about potential problems, before it's too late to fix them; Evaluate business situations objectively; Make informed, if difficult decisions; Implement corrective actions, changes and improvements where needed.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Operating Systems Foundations (Formerly 94.517)

Description

This course investigates the organization and deployment of contemporary operating systems. The process model is examined both generically and in the context of the current Linux/Unix and Windows implemantations. Process attributes such as address spaces, threads, channels and handles, access rights, scheduling behavior and states and state transitions will be studied. Memory management, deadlock management and the file system development are also evaluated. A subsystem of system configuration options will be considered during the course in order to highlight the functional deployment of the core OS issues discussed. Pre-req: BS in IT or equivalent. Cannot be used toward MS or PhD in Computer Science.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Large Scale Application Deployment (Formerly 94.518)

Description

This course will develop a systematic framework for the life cycle management of large scale applications. Beginning with requirements assessments, and impact analysis, and continuing through regulatory compliance, lifetime maintenance, scalability concerns, and end-of-life evolution, the material in this course will characterize the stages and transitions of large scale applications. Deployment and management tools will be examined in the context of live applications, with an emphasis on convergent analysis and configuration. Several case studies will be considered, including operating systems, database applications, mailing systems and collaboration systems.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Virtual Systems (Formerly 94.519)

Description

This course will investigate the current state of virtualization in computing systems. Virtualization at both the hardware and software levels will be examined, with emphasis on the hypervisor configurations of systems such as Vmware, Zen and Hyper-V. The features and limitations of virtual environments will be considered, along with several case studies used to demonstrate the configuration and management of such systems. Para-virtualized software components will be analyzed and their pros and cons discussed. Processor and peripheral support for virtualization will also be examined, with a focus on emerging hardware features and the future of virtualization.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Digital Storage Architectures (Formerly 91.520 and COMP.5200)

Description

This course will focus on existing and proposed technologies for storing digital information. Both hardware and software issues will be examined, beginning with device and controller organization and proceeding through aggregation techniques, interconnect architectures and host consideration. At each level, specific components will be evaluated with respect to critical storage criteria, such as bandwidth and latency, fault tolerance, infrastructure requirements and cost. Students must already have completed a bachelor's degree in a related discipline and must meet all undergraduate prerequisite requirements specified for graduate IT programs to enroll in this course and in a graduate career.

Project Management (Formerly 94.531)

Description

This course explores the application of knowledge, skills, tools, and techniques that project managers use when managing information technology projects as well as the current IT factors that affect IT project management decision making. Special emphasis will be placed on learning the best practices currently used by organizations and practitioners to ensure the best chance for project success by learning and applying the concepts of managing scope, risk, budget, time, expectations, quality, people, communications, procurement, and externally provided services. Students will be expected to perform research in the above areas as well as using tools such as Microsoft Project to solve project management related problems. Special attention will also be placed on the issues affecting project managers today such as PMOs, virtualization, green IT, and out sourcing. Practical examples will be used to demonstrate the concepts and techniques, plus you will receive hands on experience by working on a case study.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Managing Large Data Sets (Formerly 94.532)

Description

The amount of data generated by businesses, science, Web, and social networks is growing at a very fast rate. This course will cover the algorithms and database techniques required to extract useful information from this flood of data. Data mining, which is the automatic discovery of interesting patterns and relationships in data, is a central focus of the course. Topics covered in data mining include association discovery, clustering, classification, and anomaly detection. Special emphasis will be given to techniques for data warehousing where extremely large datasets (e.g.,many terabytes) are processed. The course also covers Web mining. Topics covered include analysis of Web pages and links (like Google) and analysis of large social networks (like Facebook).

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Developer Operations (DevOps)

Description

"DevOps" is a set of practices to support software development and business operations in live production environments. By using agile practices and automation, these practices enable software to be developed and deployed to users quickly and with high quality. In this course you will learn DevOps tools and techniques. Tools include micro services, continuous integration and deployments, monitoring, and infrastructure-as-code. Techniques include oh DevOps engineers blur traditional roles of IT, development, release engineering, and quality assurance. Case studies in DevOps from companies such Amazon and Facebook will be studied. For experimentation purposed, Linux will be used on AWS together with open source tools such as Jenkins, Ansible, and Kubernetes. Students must already have completed a bachelor's degree in a related discipline and must meet all undergraduate prerequisite requirements specified for graduate IT programs to enroll in this course and in a graduate career.

Agile and Iterative Project Management (Formerly 94.535)

Description

This course explores the differences between the Traditional Project management and the Agile management approaches, introduces the principles of Agile Development through applications within each major Project Management process: Project Initiation, Project Planning, Project Execution, and Project Closing. The project will be developed in a timely manner, using Agile techniques that encourage frequent adaptation, self-organization, accountability and with a focus towards rapid delivery. upon completion, students will understand how to apply Agile principles and practices, recognize ways to increase team performance through better communication and close involvement of stake holders, and recognize the key success criteria for implementing Agile Projects.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Data Mining (Formerly 94.536)

Description

Today, we are surrounded by big data applications. Smartphone and sensor data, medical and scientific data, financial data, web and text data, and social network data are just a few examples. As a result, mining useful information and discovering knowledge from the big data are increasingly important. It is fair to say that, without data mining, we would not be able to make good use of this large amount of data. In this course, we learn the state-of-the-art techniques in data mining and analysis. Topics include types and properties of data, exploring data, classification, association analysis, cluster analysis, and anomaly detection.

Information Security, Privacy and Regulatory Compliance (Formerly 94.541)

Description

This course focuses on enterprise-level information security, privacy and regulatory compliance through study of the rapidly emerging Information Governance (IG) discipline which is applied to electronic documents, records management and output of information organization-wide. The key principles of IG will be examined including the security, privacy and compliance of corporate e-documents/records as well as email, social media, instant messaging, cloud computing, and mobile computing. The student will learn how IG leverages existing information technologies to enforce policies, procedures and controls to manage information risk in compliance with legal and litigation demands, external regulatory requirements, and internal governance objectives.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Intrusion Detection Systems (Formerly 94.543)

Description

Intrusion Detection Systems is a survey of the hardware and software techniques that are applied to the detection, identification, classification and remediation of compromised information systems. From this introduction to intrusion detection systems, students will develop a solid foundation for understanding IDS and how they function. This course will give students a background in the technology of detection network attacks. It will introduce all the concepts and procedures used for IDS (intrusion Detection Systems) and IPS (intrusion Prevention Systems). Students will have hands-on experience with implementing and configuring software and hardware based IDS in a network infrastructure. This course is designed with a network administrator in mind.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Designing and Building a Cybersecurity Program (Formerly 94.545)

Description

This course focuses on best practices for designing and building a comprehensive Cybersecurity Program based on the NIST Framework for Improving Critical Infrastructure Cybersecurity ("The Framework"). The Framework was issued on February 12, 2014, as directed by President Obama in Executive Order 13636. This framework provides guidance for reducing cybersecurity risk for organizations, and this course will examine its basic tenets of: "Cybersecurity Fundamentals", techniques applied to "Building a Controls Factory", "Cybersecurity Programs" "Establishing Cybersecurity Centers of Expertise" and "The Cybersecurity Program Implementation Roadmap".

Protecting against Ransomware Attacks

Description

This course focuses on the best approach for organizations to develop a ransomware protection strategy, plan / program and operational practices to defend against damaging ransomware attacks. The class includes an overview of recent ransomware attacks, the top trends of today's ransomware variants, a model for describing common tactics and techniques used by ransomware gangs (based on the MIRE ATT&CK framework, tools and playbooks used by the top ransomware families. The class discusses common ransomware controls models (NIST Risk Management Framework and Cybersecurity Framework), ransomware best practices (NIST SP1800 Ransomware Practice Guides and CISA MS-ISAC Ransomware Guide), as well as training and workshops based on Red Team, Blue Team and Purple Team Exercises.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Network Infrastructures (Formerly 94.560)

Description

This course provides an introduction to the fundamental concepts in the design and implementation of computer communication networks, their protocols, and applications. Topics to be covered include: an overview of network architectures, applications, network programming interfaces (e.g. sockets) , transport, congestion, routing, and data link protocols, addressing, local area networks, network management, and emerging network technologies. Cannot be used toward MS or D.Sc. in Computer Science.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Computer Network Security (Formerly 94.561)

Description

This course is aimed to provide students with a solid understanding of key concepts of computer network security and practical solutions to network security threats. Topics to be covered include common network security attacks, basic security models, data encryption algorithms, public-key cryptography and key management, data authentication, network security protocols in practice, wireless network security, network perimeter security and firewall technology, the art of anti-malicious software, and the art of intrusion detection. Pre-Req: BS in IT or Equivalent. Cannot be used toward MS or D.Sc. in Computer Science.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Digital Forensics (Formerly 94.562)

Description

Identifying, preserving and extracting electronic evidence. Students learn how to examine and recover data from operating systems, core forensic procedures for any operating or file system, understanding technical issues in acquiring computer evidence and how to conduct forensically sound examinations to preserve evidence for admission and use in legal proceedings.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Secure Mobile Networks (Formerly 94.563)

Description

This course covers principles and practices of wireless networks, including cellular networks, wireless LANs, ad hoc mesh networks, and sensor networks. The potential attacks against these wireless networks and the security mechanisms to defend these networks will be discussed. Topics to be covered include cellular network architecture, wide-area mobile services, wireless LANs and MACs, introduction to emerging wireless networks, survey of malicious behaviors in wireless networks, securing wireless WANs and LANs, securing wireless routing, securing mobile applications, wireless intrusion detection and prevention, challenges in securing next-generation wireless networks, and privacy issues in wireless networks.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Cloud Computing (Formerly 94.565)

Description

This course starts with an overview of modern distributed models, exposing the design principles, systems architecture, and innovative applications of parallel, distributed, and cloud computing systems. The course will focus on the creation and maintenance of high-performance, scalable, reliable systems, providing comprehensive coverage of distributed and cloud computing, including: Facilitating management, debugging, migration, and disaster recovery through virtualization. Clustered systems for research or ecommerce applications. Designing systems as web services. Principles of cloud computing using examples from open-source and commercial applications.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.

Advanced Cloud Computing (Formerly 94.566)

Description

This course is a continuation of the 94.565 Cloud Computing course and will cover in further detail such topics as Cloud Based Storage, Virtualization, Service Oriented Architecture (SOA), High Availability, Scaling, and Mobile Devices. The course will also study the role of Open Source cloud software such as Hadoop, OpenStack and others. Similar to the first course where hands-on projects included the use of Cloud Services such as Amazon Web Services (AWS), Google Apps and App Engine, and Windows Azure, this course will continue with those services and add others such as Rackspace and VMware. Current articles and publications in this fast moving field of Cloud Computing will also be followed.

Prerequisites

Pre-req: MSIT.5650 Cloud Computing, or Permission of the Instructor.

Text Analytics and Information Retrievals

Description

Introduction to common algorithms, techniques, and Python programming for text analytics and information retrievals, including text representations, data collection and information extraction, visualization, inverse indexing feature engineering, search engine and implementation, word association mining, text categorization, text clustering, topic modeling, word embeddings, text summarization, opinion mining and sentiment analysis.

Prerequisites

Students must already have completed a bachelor's degree in a related discipline to enroll in this course and in a graduate career.