Computer Science

Faculty

C. A. Shue, Professor and Department Head; Ph.D., Indiana University, 2009. Computer networking, security, distributed systems.
E. O. Agu, Harold L. Jurist ('61) and Heather E. Jurist Dean's Professor; Ph.D., University of Massachusetts Amherst, 2001. Computer graphics, wireless networking, mobile computing and mobile health.
M. Ahrens, Assistant Teaching Professor; Ph.D., Tufts University, 2022. Programming languages and CS education.
R. Ahsan, Assistant Teaching Professor; Worcester Polytechnic Institute, 2019. Pattern mining, data mining, data visualization.
T. Andrews, Instructor; MS, Massachusetts Institute of Technology, 2020. Systems software engineering and cloud computing.
S. Arslan Ay, Associate Teaching Professor; Ph.D., University of Southern California, 2010. Software engineering and geospatial data analysis.
R. Bohrer, Assistant Professor; Ph.D., Carnegie Mellon University, 2021. Theorem-proving, cyber-physical systems, programming languages.
M. L. Claypool, Professor; Ph.D., University of Minnesota, 1997. Distributed systems, networking, multimedia and online games.
J. Cuneo, Senior Instructor, MS, Georgia Institute of Technology, 2010. Computer graphics, computing for good, digital media, computers and space exploration, CS education, scientific computing.
J. Dai, Associate Professor; Ph.D., Pennsylvania State University, 2014. Network and distributed systems security, instrusion detection, secure programming, cyber security education.
M. Engling, Assistant Teaching Professor.  Stevens Institute of Technology.  2017. Combinatorics, algorithmic complexity, formal languages
T. Guo, Associate Professor; Ph.D., University of Massachusetts Amherst, 2016. Distributed systems, cloud computing, data-intensive systems.
L. Harrison, Associate Professor; Ph.D., University of North Carolina at Charlotte, 2013. Information visualization, visual analytics, perception-based computation for visualization.
N. T. Heffernan, The William Smith Dean's Professor; Ph.D., Carnegie Mellon University, 2001. Intelligent tutoring agents, artificial intelligence, cognitive modeling, machine learning.
G. T. Heineman, Associate Professor; Ph.D., Columbia University, 1996. Component-based software engineering, formal approaches to compositional design, design of algorithms.
X. Kong, Associate Professor, Ph.D., University of Illinois, Chicago, 2014. Data mining, social networks, machine learning, big data analytics.
D. Korkin, Harold L. Jurist ('61) and Heather E. Jurist Dean's Professor, Ph.D., University of New Brunswick, Canada, 2003. Bioinformatics of disease, big data in biomedicine, computational genomics, systems biology, data mining, machine learning.
K. Lee, Associate Professor; Ph.D., Texas A&M University, 2013. Big data analytics and mining, social computing, and cybersecurity over large-scale networked information systems such as the Web, social media and crowd-based systems.
Y. Li, Associate Professor, Ph.D., University of Minnesota, 2003. Big data from complex networks, large-scale network data measurement, online social behavior modeling, spectral graph theory.
X. Liu, Associate Professor; Ph.D., Syracuse University, 2011. Natural language processing, deep learning, information retrieval, data science, and computational social sciences.
R. Moraffah, Assistant Professor; Ph.D., Arizona State University, 2024. Responsible and trustworthy Artificial Intelligence (AI), Machine Learning, Causal inference.
J. Mortensen, Assistant Teaching Professor; Ph.D., Yale University, 2018. Computational biology and bioinformatics.
F. Murai, Assistant Professor; Ph.D., University of Massachusetts, Amherst, 2016. Application of mathematical modeling, statistics and machine learning to computer, informational and social networks
R. Neamtu, Professor of Teaching; Ph.D., Worcester Polytechnic Institute, 2017. Data retrieval and management, data mining, machine learning, big data analytics and visualization, brain computer interaction, data-driven materials science.
D. Reichman, Assistant Professor; Ph.D., Weizmann Institute, 2014. Algorithms, Machine Learning, Artificial Intelligence.
C. Roberts, Associate Professor; Ph.D., University of California at Santa Barbara, 2014. Interactive programming, audiovisual performance, music programming languages, human-centered computing.
C. Ruiz, Harold L. Jurist ('61) and Heather E. Jurist Dean's Professor and Associate Dean; Ph.D., University of Maryland, 1996. Data mining, knowledge discovery in databases, machine learning.
E. A. Rundensteiner, The William Smith Dean's Professor; Ph.D., University of California, Irvine, 1992. Big data systems, big data analytics, visual analytics, machine learning/deep learning, health analytics, AI and fairness.
G. N. Sarkozy, Professor; Ph.D., Rutgers University, 1994. Graph theory, combinatorics, algorithms.
R. Shraga, Assistant Professor; Ph.D., Israel Institute of Technology, 2020. Data discovery and integration, data management, machine learning, information retrieval.
G. Smith, Associate Professor; Ph.D., University of California Santa Cruz, 2012. Computational creativity, game design, computer science education, computational craft.
E. T. Solovey, Associate Professor; Ph.D., Tufts University, 2012. Human-computer interaction, user interface design, novel interaction modalities, human-autonomy collaboration, machine learning.
X. Sun, Associate Professor; Ph.D., Pennsylvania State University, 2016. Cyber security, enterprise-level network security, cloud security, IoT security.
Y. Sun, Assistant Teaching Professor; Ph.D., Clemson University, 2018. Computer science education, software engineering, and formal methods & verification.
S. Taneja, Assistant Teaching Professor. Ph.D. Auburn University, 2018. Distributed computing, high-performance computing, big data systems.
R. J. Walls, Associate Professor; Ph.D., University of Massachusetts Amherst, 2014. Systems security and privacy, digital forensics and online crime, large-scale internet measurement.
J. R. Whitehill, Associate Professor; Ph.D., University of California, San Diego, 2012. Machine learning, crowdsourcing, automated teaching, human behavior recognition.  
C. E. Wills, Professor; Ph.D., Purdue University, 1988. Distributed systems, networking, user interfaces.
W. Wong, Associate Teaching Professor; Ph.D., Bentley University, 2013. Healthcare information systems, Virtual Reality and Augmented Reality medical devices, software engineering methodologies, pedagogical software project innovations, computer architecture, and social networks.
H. Zhan, Assistant Professor, Ph.D., University of Waterloo, Canada, 2018. Algebraic graph theory and quantum computation.

 

 

Research Interests

The current departmental activities include, among other areas, analysis of algorithms, applied logic, artificial intelligence, big data, computer vision, computer graphics, database and information systems, data mining, distributed systems, graph theory and computational complexity, intelligent tutoring systems, machine learning, network performance evaluation, programming languages, robotics, security, software engineering, user interfaces, virtual reality, visualization, and Web-based systems. Research groups meet weekly and focus on topics related to the above areas. Students are encouraged to participate in the meetings related to their area(s) of interest. Research and development projects and theses are available in these areas. Computer Science students may also participate in computer applications research work being conducted in a number of other departments including electrical and computer engineering, mechanical engineering, biomedical and fire protection engineering. Students are also encouraged to undertake projects and theses in cooperation with neighboring computer manufacturers or commercial organizations.

Programs of Study

Graduate programs in Computer Science provide opportunities for advanced coursework and research for highly qualified students. Graduate Certificates, recognizing completion of a cohesive set of advanced courses, are offered in several areas of Computer Science. The Master of Computer Science degree is for students with an undergraduate degree outside of Computer Science who wish to enter the field. The Master of Computer Science includes bridge courses and a capstone experience. The Master of Science degree is more comprehensive; with thesis and non-thesis (coursework-only) options, it is the degree of choice for many full-time students and working professionals. The Doctor of Philosophy degree emphasizes deeper study and discovery in preparation for a career in research or education.

Graduate programs may be undertaken on a full-time or part-time basis. For all students, challenging courses and demanding research projects, with high expectations of accomplishment, are the standard.

Admission Requirements

Applicants are expected to demonstrate sufficient background in core Computer Science for graduate-level work. Background in both theoretical and applied Computer Science, with significant programming experience and some college-level mathematics, is required for the M.S. and Ph.D. programs. A bachelor’s degree in Computer Science or a closely related field should be adequate preparation. Students from other backgrounds are welcome to apply if they can demonstrate their readiness through other means, such as the Computer Science GRE Subject exam. Work experience will be considered if it covers a broad spectrum of Computer Science at a technical or mathematical level. For the Master of Computer Science degree, students need a strong undergraduate preparation in a field other than Computer Science. 

A student may apply to the Ph.D. program upon completion of either a bachelor’s (in which case the master’s degree must first be completed as part of the Ph.D. studies) or master’s degree in Computer Science, or with an equivalent background.

Non-matriculated students may enroll in up to two courses prior to applying for admission to a Computer Science Graduate Program.

Certificate Programs

WPI’s Graduate Certificate Program provides an opportunity for students holding undergraduate degrees to continue their study in an advanced area. A B.S. or B.A. degree is the general requirement. Certificate programs require a student to complete 4-5 thematically related courses in their area of interest. Each student’s program of study must be approved by the academic advisor. Academic advisors are assigned upon admission to the program but may be changed in accordance with departmental policies.
Details about the certificates available in the Department of Computer Science can be found online at
https://www.wpi.edu/academics/study/computer-science-certificate

Facilities

WPI boasts excellent computing resources and network connectivity through the university’s Computing & Communications Center and the CS Department’s own systems. A wide range of machines provides web, mail, file, high-performance computation, and security services. An extensive software library is available free of charge to all campus users. Other specialized resources include multiple high performance and parallel-computing clusters. WPI is a member of the Internet2 consortium and WPI’s campus network consists of a 10 Gigabit (on campus) backbone with multiple connections to the global internet. 

Off-Campus Research Opportunities

Computer science graduate students have opportunities for research and development in cooperation with several neighboring organizations, both for the master’s thesis and Ph.D. dissertation.  These and other opportunities provide real-world problems and experiences consistent with WPI’s policy of extending learning beyond the classroom.

Off-Campus Internship Opportunities

Computer science graduate students have opportunities to gain practical experience via internships with companies and other external organizations.  Details on WPI Graduate Internships are available at https://www.wpi.edu/academics/graduate/internships.  Graduate students in Computer Science typical register for zero-credit internships, but the department does allow students to register for one credit of internship each semester (Fall, Spring, Summer) not to exceed three credits in total.

Classes

BCB 502/CS 582: Biovisualization

This course uses interactive visualization to explore and analyze data, structures, and processes. Topics include the fundamental principles, concepts, and techniques of visualization and how visualization can be used to analyze and communicate data in domains such as biology. Students will be expected to design and implement visualizations to experiment with different visual mappings and data types, and will complete a research oriented project.

Prerequisites

experience with programming (especially JavaScript), databases, and data structures. Students may not receive credit for both BCB 502 and BCB 4002.

BCB 503/CS 583: Biological and Biomedical Database Mining

This course will investigate computational techniques for discovering patterns in and across complex biological and biomedical sources, including genomic and proteomic databases, clinical databases, digital libraries of scientific articles, and ontologies. Techniques covered will be drawn from several areas including sequence mining, statistical natural language processing and text mining, and data mining.

Prerequisites

Strong programming skills, an undergraduate or graduate course in algorithms, an undergraduate course in statistics, and one or more undergraduate biology courses

CS/DS 541: Deep Learning

Department
Credits 3.0

This course will offer a mathematical and practical perspective on artificial neural networks for machine learning. Students will learn about the most prominent network architectures including multilayer feedforward neural networks, convolutional neural networks (CNNs), auto-encoders, recurrent neural networks (RNNs), and generative-adversarial networks (GANs). This course will also teach students optimization and regularization techniques used to train them — such as back-propagation, stochastic gradient descent, dropout, pooling, and batch normalization. Connections to related machine learning techniques and algorithms, such as probabilistic graphical models, will be explored. In addition to understanding the mathematics behind deep learning, students will also engage in hands-on course projects. Students will have the opportunity to train neural networks for a wide range of applications, such as object detection, facial expression recognition, handwriting analysis, and natural language processing.

Prerequisites

Machine Learning (CS 539), and knowledge of Linear Algebra (such as MA 2071) and Algorithms (such as CS 2223)

CS/DS 547: Information Retrieval

Department
Credits 3.0

This course introduces the theory, design, and implementation of text-based and Web-based information retrieval systems. Students learn the key concepts and models relevant to information retrieval and natural language processing on large-scale corpus such as the Web and social systems. Topics include vector space model, crawling, indexing, web search, ranking, recommender systems, embedding and language model.

Prerequisites

statistical learning at the level of DS 502/MA 543 and programming skills at the level of CS 5007.

CS/SEME 565: User Modeling

User modeling is a cross-disciplinary research field that attempts to construct models of human behavior within a specific computer environment. Contrary to traditional artificial intelligence research, the goal is not to imitate human behavior as such, but to make the machine able to understand the expectations, goals, knowledge, information needs, and desires of a user in terms of a specific computing environment. The computer representation of this information about a user is called a user model, and systems that construct and utilize such models are called user modeling systems. A simple example of a user model would be an e-commerce site which makes use of the user’s and similar users’ purchasing and browsing behavior in order to better understand the user’s preferences. In this class, the focus is on obtaining a general understanding of user modeling, and an understanding of how to apply user modeling techniques. Students will read seminal papers in the user modeling literature, as well as complete a course project where students build a system that explicitly models the user.

Prerequisites

Knowledge of probability

CS/SEME 566: Graphical Models for Reasoning Under Uncertainty

This course will introduce students to graphical models, such as Bayesian networks, Hidden Markov Models, Kalman filters, particle filters, and structural equation models. Graphical models are applicable in a wide variety of work in computer science for reasoning under uncertainty such as user modeling, speech recognition, computer vision, object tracking, and determining a robot’s location. This course will cover 1) using data to estimate the parameters and structure of a model using techniques such as expectation maximization, 2) understanding techniques for performing efficient inference on new observations such as junction trees and sampling, and 3) learning about evaluation techniques to determine whether a particular model is a good one.

Prerequisites

CS 534 Artificial Intelligence or permission of the instructor

CS/SEME 567: Empirical Methods for Human-Centered Computing

This course introduces students to techniques for performing rigorous empirical research in computer science. Since good empirical work depends on asking good research questions, this course will emphasize creating conceptual frameworks and using them to drive research. In addition to helping students understand what makes a good research question and why, some elementary statistics will be covered. Furthermore, students will use and implement computationally intensive techniques such as randomization, bootstrapping, and permutation tests. The course also covers experiments involving human subjects, and some of the statistical and non-statistical difficulties researchers often encounter while performing such work (e.g., IRB (Institutional Review Board), correlated trials, and small sample sizes). While this course is designed for students in Human Computer Interaction, Interactive Media & Game Development, and Learning Sciences and Technologies, it is appropriate for any student with programming experience who is doing empirical research.

Prerequisites

MA 511 Applied Statistics for Engineers and Scientists or permission of instructor

CS/SEME 568: Artificial Intelligence for Adaptive Educational Technology

Students will learn how to enable educational technology to adapt to the user and about typical architectures used by existing intelligent tutoring systems for adapting to users. Students will see applications of decision theoretic systems, reinforcement learning, Markov models for action selection, and Artificial Intelligence (AI) planning. Students will read papers that apply AI techniques for the purpose of adapting to users. Students will complete a project that applies these techniques to build an adaptive educational system.

Prerequisites

CS 534 Artificial Intelligence or permission of the instructor

CS 502: Operating Systems

Department
Credits 3.0
The design and theory of multiprogrammed operating systems, concurrent processes, process communication, input/output supervisors, memory management, resource allocation and scheduling are studied.
Prerequisites

knowledge of computer organization and elementary data structures, and a strong programming background

CS 503: Foundations of Computer Science

Department
Credits 3.0
This is the study of mathematical foundations of computing. Topics include finite automata and regular languages, pushdown automata and context-free languages, Turing machines and decidability, and an introduction to computational complexity.
Prerequisites

Knowledge of discrete mathematics and algorithms at the undergraduate level, and some facility with reading and writing mathematical proofs

CS 504: Analysis of Computations and Systems

Department
Credits 3.0
The following tools for the analysis of computer programs and systems are studied: probability, combinatorics, the solution of recurrence relations and the establishment of asymptotic bounds. A number of algorithms and advanced data structures are discussed, as well as paradigms for algorithm design.
Prerequisites

CS 5084 or equivalent

CS 509: Design of Software Systems

Department
Credits 3.0
This course introduces students to a methodology and specific design techniques for team-based development of a software system. Against the backdrop of the software engineering life-cycle, this course focuses on the object-oriented paradigm and its supporting processes and tools. Students will be exposed to industrial-accepted standards and tools, such as requirements elicitation, specification, modeling notations, design patterns, software architecture, integrated development environments and testing frameworks. Students will be expected to work together in teams in the complete specification, implementation and testing of a software application.
Prerequisites

knowledge of a recursive high-level language and data structures. An undergraduate course in software engineering is desirable.

CS 513: Computer Networks

Department
Credits 3.0
This course provides an introduction to the theory and practice of the design of computer and communications networks, including the ISO seven-layer reference model. Analysis of network topologies and protocols, including performance analysis, is treated. Current network types including local area and wide area networks are introduced, as are evolving network technologies. The theory, design and performance of local area networks are emphasized. The course includes an introduction to queueing analysis and network programming.
Prerequisites

knowledge of the C programming language is assumed. CS 504 or equivalent background in CS 5084 or CS 584

CS 521: Logic in Computer Science

Department
Credits 3.0
This course is an introduction to mathematical logic from a computer science perspective. Topics covered include the exploration of model theory, proof theory, and decidability for propositional and first-order classical logics, as well as various non-classical logics that provide iseful tools for computer science (such as temporal and intuitionistic logics). The course stresses the application of logic to various areas of computer science such as computability, theorem proving, programming languages, specification,and verification. The specific applications included will vary by instructor.
Prerequisites

CS 503, or equivalent background in basic models of computation

CS 526/RBE 526: Human-Robot Interaction

Credits 3.0

This course focuses on human-robot interaction and social robot learning, exploring the leading research, design principles and technical challenges we face in developing robots capable of operating in real-world human environments. The course will cover a range of multidisciplinary topics, including physical embodiment, mixed-initiative interaction, multi-modal interfaces, human-robot teamwork, learning algorithms, aspects of social cognition, and long-term interaction. These topics will be pursued through independent reading, class discussion, and a final project.

Prerequisites

Mature programming skills and at least undergraduate level knowledge of Artificial Intelligence, such as CS 4341. No hardware experience is required

CS 528: Mobile and Ubiquitous Computing

Department
Credits 3.0
This course acquaints participants with the fundamental concepts and state-of-the-art computer science research in mobile and ubiquitous computing. Topics covered include mobile systems issues, human activity and emotion sensing, location sensing, mobile HCI, mobile social networking, mobile health, power saving techniques, energy and mobile performance measurement studies and mobile security. The course consists of weekly presentations on current advanced literature, discussions and a term project. The term project involves implementing research ideas on a mobile device such as a smartphone.
Prerequisites

CS 502 or an equivalent graduate level course in Operating Systems, and CS 513 or an equivalent graduate level course in Computer Networks, and proficiency in a high level programming language

CS 529: Multimedia Networking

Department
Credits 3.0
This course covers basic and advanced topics related to using computers to support audio and video over a network. Topics related to multimedia will be selected from areas such as compression, network protocols, routing, operating systems and human computer interaction. Students will be expected to read assigned research papers and complete several programming intensive projects that illustrate different aspects of multimedia computing.
Prerequisites

CS 502 and CS 513 or the equivalent and strong programming skills

CS 533/ECE 581: Modeling and Performance Evaluation of Network and Computer Systems

Department
Credits 3.0
Methods and concepts of computer and communication network modeling and system performance — evaluation. Stochastic processes; measurement techniques; monitor tools; statistical analysis of performance experiments; simulation models; analytic modeling and queueing theory; M/M, Erlang, G/M, M/G, batch arrival, bulk service and priority systems; work load characterization; performance evaluation problems.
Prerequisites

CS 5084 or CS 504 or equivalent background in probability and some background in statistics

CS 534: Introduction to Artificial Intelligence

Department
Credits 3.0

This course gives a broad survey of artificial intelligence. The course will cover methods from search, probabilistic reasoning, and learning, among other topics. Selected topics involving the applications of these tools are investigated. Such topics might include natural language understanding, scene understanding, game playing, and planning.

Prerequisites

Familiarity with data structures and a high-level programming language.

CS 535: Advanced Topics in Operating Systems

Department
Credits 3.0
This course discusses advanced topics in the theory, design and implementation of operating systems. Topics will be selected from such areas as performance of operating systems, distributed operating systems, operating systems for multiprocessor systems and operating systems research.
Prerequisites

CS 502 and either CS 5084, CS 504, CS 584, or equivalent background in probability

CS 536: Programming Language Design

Department
Credits 3.0
This course discusses the fundamental concepts and general principles underlying current programming languages and models. Topics include control and data abstractions, language processing and binding, indeterminacy and delayed evaluation, and languages and models for parallel and distributed processing. A variety of computational paradigms are discussed: functional programming, logic programming, object-oriented programming and data flow programming.
Prerequisites

student is expected to know a recursive programming language and to have an undergraduate course in data structures

CS 538: Knowledge-Based Systems

Department
Credits 3.0
The course will review knowledge-based problemsolving systems. It will concentrate on an analysis of their architecture, knowledge and problemsolving style in order to classify and compare them. An attempt will be made to evaluate the contribution to our understanding of problems that such systems can tackle.
Prerequisites

CS 534 or equivalent or permission of the instructor

CS 539: Machine Learning

Department
Credits 3.0
The focus of this course is machine learning for knowledge-based systems. It will include reviews of work on similarity-based learning (induction), explanation-based learning, analogical and case-based reasoning and learning, and knowledge compilation. It will also consider other approaches to automated knowledge acquisition as well as connectionist learning.
Prerequisites

CS 534 or equivalent, or permission of the instructor

CS 540: Artificial Intelligence in Design

Department
Credits 3.0
The main goal of this course is to obtain a deeper understanding of what “design” is, and how AI might be used to support and study it. Students will examine some of the recent Al-based work on design problem-solving. The course will be run in seminar style, with readings from the current literature and with student presentations. The domains will include electrical engineering design, mechanical engineering design, civil engineering design and software design (i.e., automatic programming). This course will be of interest to those wanting to prepare for research in design, or those wishing to increase their understanding of expert systems. Graduate students from departments other than computer science are welcome.
Prerequisites

knowledge of artificial intelligence is required. This can only be waived with permission of the instructor

CS 542: Database Management Systems

Department
Credits 3.0
An introduction to the theory and design of data-base management systems. Topics covered include internals of database management systems, fundamental concepts in database theory, and database application design and development. In particular, logical design and conceptual modeling, physical database design strategies, relational data model and query languages, query optimization, transaction management and distributed databases. Typically there are hands-on assignments and/or a course project. Selected topics from the current database research literature may be touched upon as well.
Prerequisites

CS 5084 would be helpful

CS 543: Computer Graphics

Department
Credits 3.0
This course examines typical graphics systems, both hardware and software; design of low-level software support for raster displays; 3-D surface and solids modeling; hidden line and hidden surface algorithms; and realistic image rendering including shading, shadowing, reflection, refraction and surface texturing.
Prerequisites

familiarity with data structures, a recursive high-level language and linear algebra. CS 509 would be helpful

CS 544: Compiler Construction

Department
Credits 3.0
A general approach to the design of language processors is presented without regard for either the source language or target machine. All phases of compilation and interpretation are investigated in order to give the student an appreciation for the overall construction of a compiler. Typical projects may include implementation of a small compiler for a recursive or special-purpose language.
Prerequisites

knowledge of several higher-level languages and at least one assembly language. The material in CS 503 is helpful

CS 545/ECE 545: Digital Image Processing

Department
Credits 3.0
This course presents fundamental concepts of digital image processing and an introduction to machine vision. Image processing topics will include visual perception, image formation, imaging geometries, image transform theory and applications, enhancement, restoration, encoding and compression. Machine vision topics will include feature extraction and representation, stereo vision, model-based recognition, motion and image flow, and pattern recognition. Students will be required to complete programming assignments in a high-level language.
Prerequisites

working knowledge of undergraduate level signal analysis and linear algebra; familiarity with probability theory is helpful but not necessary

CS 546: Human-Computer Interaction

Department
Credits 3.0
This course prepares graduate students for research in human-computer interaction. Topics include the design and evaluation of interactive computer systems, basic psychological considerations of interaction, interactive language design, interactive hardware design and special input/output techniques. Students are expected to present and review recent research results from the literature, and to complete several projects.
Prerequisites

students are expected to have mature programming skills. Knowledge of software engineering would be an advantage

CS 548: Knowledge Discovery and Data Mining

Department
Credits 3.0
This course presents current research in Knowledge Discovery in Databases (KDD) dealing with data integration, mining, and interpretation of patterns in large collections of data. Topics include data warehousing and data preprocessing techniques; data mining techniques for classification, regression, clustering, deviation detection, and association analysis; and evaluation of patterns minded from data. Industrial and scientific applications are discussed.

CS 549/RBE 549: Computer Vision

Credits 3.0

This course examines current issues in the computer implementation of visual perception. Topics include image formation, edge detection, segmentation, shape-from-shading, motion, stereo, texture analysis, pattern classification and object recognition. We will discuss various representations for visual information, including sketches and intrinsic images.

Prerequisites

CS 534, CS 543, CS 545, or the equivalent of one of these courses

CS551/DS 551: Reinforcement Learning

Credits 3.0

Reinforcement Learning is an area of machine learning concerned with how agents take actions in an environment with a goal of maximizing some notion of “cumulative reward”. The problem, due to its generality, is studied in many disciplines, and applied in many domains, including robotics and industrial automation, marketing, education and training, health and medicine, text, speech, dialog systems, finance, among many others. In this course, we will cover topics including: Markov decision processes, reinforcement learning algorithms, value function approximation, actor-critics, policy gradient methods, representations for reinforcement learning (including deep learning), and inverse reinforcement learning. The course project(s) will require the implementation and application of many of the algorithms discussed in class.

Prerequisites

Machine Learning (CS 539), statistical learning at the level of DS 502/MA 543, and programming skills at the level of CS 5007.

CS 552/DS 552: Generative Artificial Intelligence

Credits 3.0

Generative Artificial Intelligence (Gen-AI) is a class of machine learning models that generate new data (text, images, faces, voice, artwork) that is near indistinguishable from the equivalent real data typically generated by humans. These models are trained based on realistic example data sets from the real world. This course covers the underlying fundamentals of generative models. It also introduces the design and modeling of some of the modern generative models: Variational Autoencoders (VAEs), Generative Adversarial Networks (GANs), Diffusion models, ChatGPT, Large Language Models, to name a few. Several applications will be discussed, ranging from image generation for engineering or science applications to the utilization of generated data for data augmentation in AI systems. Ethical concerns related to the danger of these generative technologies concerning issues from misinformation, bias, to data ownership are reviewed.

CS 553/DS 553: Machine Learning Development and Operations

Credits 3.0

This course teaches students the computational skills required in the fields of Artificial Intelligence (AI) and Data Science. As data-driven decision-making and AI applications continue to transform industries, proficiency in programming and machine learning tools is important. In this course, you will develop a strong foundation in programming languages commonly used in AI and Data Science (such as Python). This course will cover the development, debugging, deployment, and subsequent monitoring phases of models in end-to-end pipelines core to machine learning systems. You will also familiarize yourself with popular libraries, frameworks and debugging on IDEs, such as PyCharm, PyTorch, scikit-learn, and/or pandas. Possible topics may include practice code development with a copilot as well as deployment of models on a cloud computing environment The student will engage in hands-on projects to practice their programming skills to solve realworld AI and Data Science problems.

CS 554/DS 554: Natural Language Processing

Credits 3.0

Natural Language Processing (NLP) is an interdisciplinary field at the intersection of artificial intelligence, linguistics, and computer science, dedicated to enabling computers to understand, interpret, and generate human language. NLP underpins advancements in human-computer interaction, information retrieval, sentiment analysis, chatbots, and a multitude of other applications. The course may cover a wide range of topics, including language modeling, sequence-to-sequence architectures, sentiment analysis, machine translation, and advanced techniques for natural language understanding and generation, providing a comprehensive foundation for NLP expertise.

CS 555/DS 555: Responsible Artificial Intelligence

Credits 3.0

Artificial Intelligence (AI) algorithms have a significant impact on people’s lives. In this course, we discuss social responsibility around data privacy, bias in data and decision-making, policies as guardrails, fairness and transparency in the context of applying AI algorithms. Case studies considering societal challenges caused by AI technologies may include AI-based hiring recommendations stemming from societal biases present in training datasets, AI-empowered selfdriving cars behaving in a dangerous manner when encountering atypical road conditions, digital health applications inadvertently revealing private patient information, or large language models like chat-GPT generating incorrect or harmful responses. This course also studies AI-based algorithmic solutions to some of these challenges. These include the design of robust machine learning algorithms with constraints to ensure fairness, privacy, and safety. Strategies for how to apply these methods to design safe and fair AI are introduced. Topics may include min-max optimization with applications to training machine learning models robust to adversarial attacks, stochastic methods for preserving privacy of sensitive data, and multi-agent machine learning models for reducing algorithmic bias and polarization in recommender systems.

CS 557: Software Security Design and Analysis

Department
Credits 3.0
Software is responsible for enforcing many central security goals in computer systems. These goals include authenticating users and other external principals, authorizing their actions, and ensuring the integrity and confidentiality of their data. This course studies how to design, implement, and analyze mechanisms to enforce these goals in both web systems and programs in traditional languages. Topics include: identifying programming choices that lead to reliable or flawed security outcomes, successful and unsuccessful strategies for incorporating cryptography into software, and analysis techniques that identify security vulnerabilities. The course will cover both practical and theoretical aspects of secure software, and will include a substantial secure software design project.
Prerequisites

Programming and software engineering experience (commensurate with an undergraduate Computer Science major), and background in foundational models of computing systems (on par with CS 5003 or CS 503)

CS 558: Computer Network Security

Department
Credits 3.0
This course covers core security threats and mitigations at the network level. Topics include: denial-of-service, network capabilities, intrusion detection and prevention systems, worms, botnets, Web attacks, anonymity, honeypots, cybercrime (such as phishing), and legality and ethics. The course prepares students to think broadly and concretely about network security; it is not designed to teach students low-level tools for monitoring or maintaining system security. Assignments and projects will assess each student’s ability to think both conceptually and practically about network security.
Prerequisites

a strong background in computer networking and systems, either at the undergraduate or graduate level, and moderate programming experience

CS 561: Advanced Topics in Database Systems

Department
Credits 3.0
This course covers modern database and information systems as well as research issues in the field. Topics and systems covered may include object-oriented, workflow, active, deductive, spatial, temporal and multimedia databases. Also discussed will be recent advances in database systems such as data mining, online analytical processing, data warehousing, declarative and visual query languages, multimedia database tools, web and unstructured data sources, and client-server and heterogeneous systems. The specific subset of topics for a given course offering is selected by the instructor. Research papers from recent journals and conferences are used. Group project required.
Prerequisites

CS 542 or equivalent. Expected background includes a knowledge of relational database systems

CS 564: Advanced Topics in Computer Security

Department
Credits 3.0
This course examines one or more selected current issues in the area of computer security. Specific topics covered are dependent on the instructor. Potential topics include: modeling and analyzing security protocols, access-control, network security, and human-centered security.
Prerequisites

a graduate level security course or equivalent experience.

CS 571: Case Studies in Computer Security

Department
Credits 3.0
This course examines security challenges and failures holistically, taking into account technical concerns, human behavior, and business decisions. Using a series of detailed case studies, students will explore the interplay among these dimensions in creating secure computing systems and infrastructure. Students will also apply lessons from the case studies to emerging secure-systems design problems. The course requires active participation in class discussions, presentations, and writing assignments. It does not involve programming, but assumes that students have substantial prior experience with security protocols, attacks, and mitigations at the implementation level. This course satisfies the behavioral component of the M.S. specialization in computer security.
Prerequisites

A prior course or equivalent experience in technical aspects of computer security, at either the software or systems level

CS 573: Data Visualization

Department
Credits 3.0
This course exposes students to the field of data visualization, i.e., the graphical communication of data and information for the purposes of presentation, confirmation, and exploration. The course introduces the stages of the visualization pipeline. This includes data modeling, mapping data attributes to graphical attributes, visual display techniques, tools, paradigms, and perceptual issues. Students learn to evaluate the effectiveness of visualizations for specific data, task, and user types. Students implement visualization algorithms and undertake projects involving the use of commercial and public-domain visualization tools. Students also read papers from the current visualization literature and do classroom presentations.
Prerequisites

a graduate or undergraduate course in computer graphics

CS 577/ECE 537: Advanced Computer and Communications Networks

Department
Credits 3.0
This course covers advanced topics in the theory, design and performance of computer and communications networks. Topics will be selected from such areas as local area networks, metropolitan area networks, wide area networks, queueing models of networks, routing, flow control, new technologies and protocol standards. The current literature will be used to study new networks concepts and emerging technologies.
Prerequisites

CS 533/ECE 581 and either CS 513 or ECE 506

CS 582/BCB 502: Biovisualization

Department
Credits 3.0
This course uses interactive visualization to explore and analyze data, structures, and processes Topics include the fundamental principles, concepts, and techniques of visualization and how visualization can be used to analyze and communicate data in domains such as biology. Students will be expected to design and implement visualizations to experiment with different visual mappings and data types, and will complete a research oriented project.
Prerequisites

experience with programming (especially JavaScript), databases, and data structures. Students may not receive credit for both CS 582 and CS 4802.

CS 583/BCB 503: Biological and Biomedical Database Mining

Department
Credits 3.0
This course will investigate computational techniques for discovering patterns in and across complex biological and biomedical sources including genomic and proteomic databases, clinical databases, digital libraries of scientific articles, and ontologies. Techniques covered will be drawn from several areas including sequence mining, statistical natural language processing and text mining, and data mining.
Prerequisites

strong programming skills, an undergraduate or graduate course in algorithms, an undergraduate course in statistics, and one or more undergraduate biology courses.) Students may not receive credit for both CS 583 and CS 4803.

CS 584: Algorithms: Design and Analysis

Department
Credits 3.0
This covers the same material as CS5084 though at a more advanced level. As background, students should have experience writing programs in a recursive, high-level language and should have the background in mathematics that could be expected from a B.S. in Computer Science.

CS 585/DS 503: Big Data Management

Department
Credits 3.0
Big Data Management deals with emerging applications in science and engineering disciplines that generate and collect data at unprecedented speed, scale, and complexity that need to be managed and analyzed efficiently. This course introduces the latest techniques and infrastructures developed for big data management including parallel and distributed database systems, map-reduce infrastructures, scalable platforms for complex data types, stream processing systems, and cloud-based computing. Query processing, optimization, access methods, storage layouts, and energy management techniques developed on these infrastructures will be covered. Students are expected to engage in hands-on projects using one or more of these technologies.
Prerequisites

A beginning course in databases at the level of CS 4432 or equivalent knowledge, and programming experience.

CS 586/DS 504: Big Data Analytics

Department
Credits 3.0
Big Data Analytics addresses the obstacle that innovation and discoveries are no longer hindered by the ability to collect data, but by the ability to summarize, analyze, and discover knowledge from the collected data in a scalable fashion. This course covers computational techniques and algorithms for analyzing and mining patterns in large-scale datasets. Techniques studied address data analysis issues related to data volume (scalable and distributed analysis), data velocity (high-speed data streams), data variety (complex, heterogeneous, or unstructured data), and data veracity (data uncertainty). Techniques include mining and machine learning techniques for complex data types, and scale-up and scale-out strategies that leverage big data infrastructures. Real-world applications using these techniques, for instance social media analysis and scientific data mining, are selectively discussed. Students are expected to engage in hands-on projects using one or more of these technologies.
Prerequisites

A beginning course in databases and a beginning course in data mining, or equivalent knowledge, and programming experience.

CS 587/ECE 588: Cyber Security Capstone Experience

To reduce cyber security theory to practice, the capstone project has students apply security concepts to real-world problems. The capstone represents a substantial evaluation of the student’s cyber security experience. Students are encouraged to select projects with practical experience relevant to their career goals and personal development. In the capstone, students will propose a project idea in writing with concrete milestones, receive feedback, and pursue the proposal objectives. Since cyber security is a collaborative discipline, students are encouraged to work in teams.

This course is a degree requirement for the Professional Master’s in Cyber Security (PM-SEC) and may not be taken before completion of 21 credits in the program. Given its particular role, this course may not be used to satisfy degree requirements for a B.S., M.S., or Ph.D. degree in Computer Science or a minor in Computer Science. Students outside the PM-SEC program must get the instructor’s approval before taking this course for credit.

CS 588: Computer Science Capstone Experience

Department
Credits 3.0

The capstone represents a substantial evaluation of the student’s computer science experience. Students are encouraged to select projects with practical experience relevant to their career goals and personal development. In the capstone, students will propose a project idea in writing with concrete milestones, receive feedback, and pursue the proposal objectives. Students are encouraged to work in teams.

This course is a degree requirement for the Master of Computer Science (MCS) and may not be taken before completion of 21 credits in the program. Given its particular role, this course may not be used to satisfy degree requirements for a BS, MS, or PhD degree in Computer Science or a minor in Computer Science. It may not be taken by students in other degree programs.

CS 591: Fundamentals in Cyber Security for Teachers

Department
Credits 3.0

This course is focused on fundamentals of network and computer security with an emphasis on how intruders gain access to systems, how they escalate privileges, and what steps can be taken to secure a system against such attacks. Topics include computer networking basics, operating system basics, vulnerability, and attacks (social engineering, distributed denial of service attacks, buffer overflows, race conditions, trojans, and viruses), intrusion penetration, cyber defenses, network hardening, system hardening, and security administration. This course enrolls high school teachers based on their education, teaching, and/or professional experience. They must have earned the equivalent of a four-year U.S. bachelor’s degree to be considered for enrollment. This course is not eligible for credit for the BS/MS programs (either via MS-CS or MS-SEC), MS-CS, MS-SEC, or PhD-CS degrees.

CS 592: Introduction to Digital Forensics for Teachers

Department
Credits 3.0

This course covers basic concepts and skills of digital forensics. Topics include the digital forensics profession, basic investigation procedure, legal aspects of forensics, setting up the forensic lab environment, evidence data acquisition, forensic analysis of different computer systems (Linux, Mac, and Windows), and data hiding techniques; projects involving using common digital forensic tools. This course enrolls high school teachers based on their education, teaching, and/or professional experience. They must have earned the equivalent of a four-year U.S. bachelor’s degree to be considered for enrollment. This course is not eligible for credit for the BS/MS programs (either via MS-CS or MS-SEC), MS-CS, MS-SEC, or PhD-CS degrees.

CS 593: Cyber Security Teaching Methods

Department
Credits 3.0

This course is focused on introduction to existing generally accepted guidelines and frameworks (such as HSCCG, CSEC, CAE Knowledge Units, NCWF) in the discipline of cyber security. Methods for teaching cyber security to transform cyber security subject matter, with pedagogical content knowledge, into student learning. Topics include culturally-relevant methods, scaffolding knowledge, differentiation, assessment, and cyber security instructional technologies (ranges, CTFs, competitions, and unplugged activities). This course enrolls high school teachers based on their education, teaching, and/or professional experience. They must have earned the equivalent of a four-year U.S. bachelor’s degree to be considered for enrollment. This course is not eligible for credit for the BS/MS programs (either via MS-CS or MS-SEC), MS-CS, MS-SEC, or PhD-CS degrees.

CS 594/DS 594: Graduate Qualifying Project in Artificial Intelligence

Credits 3.0

This 3-credit graduate qualifying project, typically done in teams, provides a capstone experience in applying Artificial Intelligence skills to a real-world problem. It will be carried out in cooperation with an industrial sponsor, and is approved and overseen by a core or collaborative faculty member in the Artificial Intelligence Program. This offering integrates theory and practice of Artificial Intelligence, and includes the utilization of tools and techniques acquired in the Artificial Intelligence Program to a real-world problem. In addition to a written report, this project must be presented in a formal presentation to faculty of the AI program and sponsors. Professional development skills, such as communication, teamwork, leadership, and collaboration, will be practiced. This course is a degree requirement for the Master of Science in Artificial Intelligence (MS-AI) and may not be taken before completion of 21 credits in the program. Students outside the MS-AI program must get the instructor’s approval before.

Prerequisites

Completion of at least 24 credits of the AI degree, or consent of the instructor. With permission of the instructor, the GQP can be taken a 2nd time for a total of 6 credits.

CS 596: Advanced Digital Forensics and Incident Response for Teachers

Department
Credits 3.0

This course focuses on providing students practical hands-on experiences on digital forensics, cyber-crime scene analysis and electronic discovery. Topics include technical methodologies and formal procedures for conducting forensic investigations; data acquisition, data recovery, file systems and storage analysis, file carving, data hiding and steganography, anti-forensics, network, and mobile forensics; projects involving using, understanding, and designing digital forensics tools. This course enrolls high school teachers based on their education, teaching, and/or professional experience. They must have earned the equivalent of a four-year U.S. bachelor’s degree to be considered for enrollment. This course is not eligible for credit for the BS/MS programs (either via MS-CS or MS-SEC), MS-CS, MS-SEC, or PhD-CS degrees.

CS 673/ECE 673: Advanced Cryptography

This course provides deeper insight into areas of cryptography which are of great practical and theoretical importance. The three areas treated are detailed analysis and the implementation of cryptoalgorithms, advanced protocols, and modern attacks against cryptographic schemes. The first part of the lecture focuses on public key algorithms, in particular ElGamal, elliptic curves and Diffie-Hellman key exchange. The underlying theory of Galois fields will be introduced. Implementation of performance security aspects of the algorithms will be looked at. The second part of the course deals with advanced protocols. New schemes for authentication, identification and zero-knowledge proof will be introduced. Some complex protocols for real-world application— such as key distribution in networks and for smart cards—will be introduced and analyzed. The third part will look into state-of-the-art cryptoanalysis (i.e., ways to break cryptosystems). Brute force attacks based on special purpose machines, the baby-step giant-step and the Pohlig-Hellman algorithms will be discussed.

Prerequisites

CS 578/ ECE 578 or equivalent background

CS 5003: Foundations of Computer Science: an Introduction

Department
Credits 3.0
This is the study of mathematical foundations of computing, at a slower pace than that of CS 503 and with correspondingly fewer background assumptions. Topics include finite automata and regular languages, pushdown automata and context-free languages, Turing machines and decidability, and an introduction to computational complexity.
Prerequisites

an undergraduate course in discrete mathematics

CS 5007: Introduction to Applications of Computer Science with Data Structures and Algorithms

Department
Credits 3.0
This is an introductory graduate course teaching core computer science topics typically found in an undergraduate Computer Science curriculum, but at a graduate-level pace. It is primarily intended for students with little formal preparation in Computer Science to gain experience with fundamental Computer Science topics. After a review of programming concepts the focus of the course will be on data structures from the point of view of the operations performed upon the data and to apply analysis and design techniques to non-numeric algorithms that act on data structures. The data structures covered include lists, stacks, queues, trees and graphs. Projects will focus on the writing of programs to appropriately integrate data structures and algorithms for a variety of applications. This course may not be used to satisfy degree requirements for a B.S., M.S., or Ph.D. degree in Computer Science or a minor in Computer Science. It may satisfy the requirements for other degree programs at the discretion of the program review committee for the particular degree.
Prerequisites

Experience with at least one high-level programming language such as obtained in an undergraduate programming course

CS 5008: Introduction to Systems and Network Programming

Department
Credits 3.0

This course is focused on significant programming projects and provides an overview of the principles of computer networks and a general-purpose operating system. The course provides the student with an understanding of the basic components of an operating system, including processes, synchronization and memory management. The course exposes students to the Internet protocol suite networking layers while providing an introduction into topics such as wireless networking and Internet traffic considerations. The objective is to focus on an understanding of fundamental concepts of operating systems and computer network architecture from a design and performance perspective.

Students will be expected to design and implement a variety of programming projects to gain an appreciation of the design of operating systems and network technologies. This course may not be used to satisfy degree requirements for a B.S., M.S., or Ph.D. degree in Computer Science or a minor in Computer Science. It may satisfy the requirements for other degree programs at the discretion of the program review committee for the particular degree.

Prerequisites

Experience with at least one high-level programming language such as obtained in CS 5007.

CS 5084: Introduction to Algorithms: Design and Analysis

Department
Credits 3.0
This course is an introduction to the design, analysis and proofs of correctness of algorithms. Examples are drawn from algorithms for many areas. Analysis techniques include asymptotic worst case and average case, as well as amortized analysis. Average case analysis includes the development of a probability model. Techniques for proving lower bounds on complexity are discussed, along with NP-completeness. Note: students with a strong background in design and analysis of computer systems, at the level equal to a B.S. in computer science, should not take CS 5084 and should consider taking CS 504 or CS 584.
Prerequisites

an undergraduate knowledge of discrete mathematics and data structures.

DS/CS 541: Deep Learning

Credits 3.0

This course will offer a mathematical and practical perspective on artificial neural networks for machine learning. Students will learn about the most prominent network architectures including multilayer feedforward neural networks, convolutional neural networks (CNNs), auto-encoders, recurrent neural networks (RNNs), and generative-adversarial networks (GANs). This course will also teach students optimization and regularization techniques used to train them — such as back- propagation, stochastic gradient descent, dropout, pooling, and batch normalization. Connections to related machine learning techniques and algorithms, such as probabilistic graphical models, will be explored. In addition to understanding the mathematics behind deep learning, students will also engage in hands-on course projects. Students will have the opportunity to train neural networks for a wide range of applications, such as object detection, facial expression recognition, handwriting analysis, and natural language processing.

Prerequisites

Machine Learning (CS 539), and knowledge of Linear Algebra (such as MA 2071) and Algorithms (such as CS 2223

DS/CS 547: Information Retrieval

Credits 3.0

This course introduces the theory, design, and implementation of text-based and Web-based information retrieval systems. Students learn the key concepts and models relevant to information retrieval and natural language processing on large-scale corpus such as the Web and social systems. Topics include vector space model, crawling, indexing, web search, ranking, recommender systems, embedding and language model.

Prerequisites

statistical learning at the level of DS 502/MA 543 and programming skills at the level of CS 5007.

ECE 556/CS 556/DS 556: On-Device Deep Learning

Deep Learning, a core of modern Artificial Intelligence, is rapidly expanding to resourceconstrained devices, including smartphones, wearables, and intelligent embedded systems for improving response time, privacy, and reliability. This course focuses on bringing these powerful deep-learning applications from central data centers and large GPUs to distributed ubiquitous systems. On-Device Deep Learning is an interdisciplinary topic at the intersection of artificial intelligence and ubiquitous systems, dedicated to enabling computing on edge devices. This course includes a wide range of topics related to deep learning in resource constrained settings including pruning and sparsity, quantization, neural architecture search, knowledge distillation, on-device training and transfer learning, distributed training, gradient compression, federated learning, efficient data movement and accelerator design, dynamic network inference, and advanced compression and approximation techniques for enabling on-device deep neural network inference and training. This course provides a comprehensive foundation for cutting-edge “tinyML” expertise

ECE 588/CS 587: Cyber Security Capstone Experience

To reduce cyber security theory to practice, the capstone project has students apply security concepts to real-world problems. The capstone represents a substantial evaluation of the student’s cyber security experience. Students are encouraged to select projects with practical experience relevant to their career goals and personal development. In the capstone, students will propose a project idea in writing with concrete milestones, receive feedback, and pursue the proposal objectives. Since cyber security is a collaborative discipline, students are encouraged to work in teams.

This course is a degree requirement for the Professional Master’s in Cyber Security (PM-SEC) and may not be taken before completion of 21 credits in the program. Given its particular role, this course may not be used to satisfy degree requirements for a B.S., M.S., or Ph.D. degree in Computer Science or a minor in Computer Science. Students outside the PM-SEC program must get the instructor’s approval before taking this course for credit.

ECE 673/CS 673: Advanced Cryptography

This course provides deeper insight into areas of cryptography which are of great practical and theoretical importance. The three areas treated are detailed analysis and the implementation of cryptoalgorithms, advanced protocols, and modern attacks against cryptographic schemes. The first part of the lecture focuses on public key algorithms, in particular ElGamal, elliptic curves and Diffie-Hellman key exchange. The underlying theory of Galois fields will be introduced. Implementation of performance security aspects of the algorithms will be looked at. The second part of the course deals with advanced protocols. New schemes for authentication, identification and zero-knowledge proof will be introduced. Some complex protocols for real-world application— such as key distribution in networks and for smart cards—will be introduced and analyzed. The third part will look into state-of-the-art cryptoanalysis (i.e., ways to break cryptosystems). Brute force attacks based on special purpose machines, the baby-step giant-step and the Pohlig-Hellman algorithms will be discussed.

Prerequisites

CS 578/ ECE 578 or equivalent background

RBE 549/CS 549: Computer Vision

Credits 3.0

This course examines current issues in the computer implementation of visual perception. Topics include image formation, edge detection, segmentation, shape-from-shading, motion, stereo, texture analysis, pattern classification and object recognition. We will discuss various representations for visual information, including sketches and intrinsic images.

Prerequisites

CS 534, CS 543, CS 545, or the equivalent of one of these courses

SEME/CS 565: User Modeling

User modeling is a cross-disciplinary research field that attempts to construct models of human behavior within a specific computer environment. Contrary to traditional artificial intelligence research, the goal is not to imitate human behavior as such, but to make the machine able to understand the expectations, goals, knowledge, information needs, and desires of a user in terms of a specific computing environment. The computer representation of this information about a user is called a user model, and systems that construct and utilize such models are called user modeling systems. A simple example of a user model would be an e-commerce site which makes use of the user’s and similar users’ purchasing and browsing behavior in order to better understand the user’s preferences. In this class, the focus is on obtaining a general understanding of user modeling, and an understanding of how to apply user modeling techniques. Students will read seminal papers in the user modeling literature, as well as complete a course project where students build a system that explicitly models the user.

Prerequisites

Knowledge of probability

SEME/CS 566: Graphical Models for Reasoning Under Uncertainty

This course will introduce students to graphical models, such as Bayesian networks, Hidden Markov Models, Kalman filters, particle filters, and structural equation models. Graphical models are applicable in a wide variety of work in computer science for reasoning under uncertainty such as user modeling, speech recognition, computer vision, object tracking, and determining a robot’s location. This course will cover 1) using data to estimate the parameters and structure of a model using techniques such as expectation maximization, 2) understanding techniques for performing efficient inference on new observations such as junction trees and sampling, and 3) learning about evaluation techniques to determine whether a particular model is a good one.

Prerequisites

CS 334 Artificial Intelligence or permission of the instructor

SEME/CS 567: Empirical Methods for Human-Centered Computing

This course introduces students to techniques for performing rigorous empirical research in computer science. Since good empirical work depends on asking good research questions, this course will emphasize creating conceptual frameworks and using them to drive research. In addition to helping students understand what makes a good research question and why, some elementary statistics will be covered. Furthermore, students will use and implement computationally intensive techniques such as randomization, bootstrapping, and permutation tests. The course also covers experiments involving human subjects, and some of the statistical and non-statistical difficulties researchers often encounter while performing such work (e.g., IRB (Institutional Review Board), correlated trials, and small sample sizes). While this course is designed for students in Human Computer Interaction, Interactive Media & Game Development, and Learning Sciences and Technologies, it is appropriate for any student with programming experience who is doing empirical research.

Prerequisites

MA 311 Applied Statistics for Engineers and Scientists or permission of instructor

SEME/CS 568: Artificial Intelligence for Adaptive Educational Technology

Students will learn how to enable educational technology to adapt to the user and about typical architectures used by existing intelligent tutoring systems for adapting to users. Students will see applications of decision theoretic systems, reinforcement learning, Markov models for action selection, and Artificial Intelligence (AI) planning. Students will read papers that apply AI techniques for the purpose of adapting to users. Students will complete a project that applies these techniques to build an adaptive educational system.

Prerequisites

CS 534 Artificial Intelligence or permission of the instructor