CS Curricula

←All schools

Case Western Reserve UniversityWebsiteAcademic Catalog

Computer and Data SciencesDepartment Website

Majors

Courses

source 1

CSDS 101: The Digital Revolution: Computer and Data Science For All (4) intro

For students who want to explore the history, the current state, and future challenges of computer and data sciences. Topics include how computers work, computational thinking, how software development differs from traditional manufacturing, the Internet and World Wide Web, social networks, data collection, search engines and data mining, machine learning, trends in computer crime, security, and privacy, how technology is changing our laws and culture. The class includes a lab component where students will be introduced to the Python programming language and other technologies and applications in order to further explore these topics.

CSDS 132: Programming in Java (3) intro

An in-depth survey of modern programming language features, computer programming and algorithmic problem solving with an emphasis on the Java language. Computers and code compilation; conditional statements, subprograms, loops, methods; object-oriented design, inheritance and polymorphism, abstract classes and interfaces; types, type systems, generic types, abstract data types, strings, arrays, linked lists; software development, modular code design, unit testing; strings, text and file I/O; GUI components, GUI event handling; threads; comparison of Java to C, C++, and C#. Offered as CSDS 132 and ECSE 132.

CSDS 133: Introduction to Data Science and Engineering for Majors (3) intro

This course is an introduction to data science and analytics. In the first half of the course, students will develop a basic understanding of how to manipulate, analyze and visualize large data in a distributed computing environment, with an appreciation of open source development, security and privacy issues. Case studies and team project assignments in the second half of the course will be used to implement the ideas. Topics covered will include: Overview of large scale parallel and distributed (cloud) computing; file systems and file i/o; open source coding and distributed versioning, data query and retrieval; basic data analysis; visualization; data security, privacy and provenance.

CSDS 221: Full Stack Web Development (4) sys

An introduction to full stack web development, the course provides foundations in HTML, CSS, and programming in JavaScript. The course introduces front-end technologies and APIs for creating interactive web applications such as Bootstrap, React.js, and Progressive Web Apps, back-end technologies and APIs for creating a web server such as Node.js and Express.js, and database integration technologies such as MySQL and MongoDB. Some background in algorithms, data structures, and databases is helpful but not required.

CSDS 233: Introduction to Data Structures (4) intro

Different representations of data: lists, stacks and queues, trees, graphs, and files. Manipulation of data: searching and sorting, hashing, recursion and higher order functions. Abstract data types, templating, and the separation of interface and implementation. Introduction to asymptotic analysis. The Java language is used to illustrate the concepts and as an implementation vehicle throughout the course. Offered as CSDS 233 and ECSE 233.

CSDS 234: Structured and Unstructured Data (3) intro

This course is an introduction to types of data and their representation, storage, processing and analysis. The course has three parts. In the first part of the course, students will develop a basic understanding and the ability to represent, store, process and analyze structured data. Structured data include catalogs, records, tables, logs, etc., with a fixed dimension and well-defined meaning for each data point. Suitable representation and storage mechanisms include lists and arrays. Relevant techniques include keys, hashes, stacks, queues and trees. In the second part of the course, students will develop a basic understanding and the ability to represent, store, process and analyze semi-structured data. Semi-structured data include texts, web pages and networks, without a dimension and structure, but with well-defined meaning for each data point. Suitable representation and storage mechanisms include trees, graphs and RDF triples. Relevant techniques include XML, YAML, JSON, parsing, annotation, language processing. In the third part of the course, students will develop a basic understanding and the ability to represent, store, process and analyze unstructured data. Unstructured data include images, video, and time series data, without neither a fixed dimension and structure, nor well-defined meaning for individual data points. Suitable representation and storage mechanisms include large matrices, EDF, DICOM. Relevant techniques include feature extraction, segmentation, clustering, rendering, indexing, and visualization.

CSDS 236: Introduction to C/C++ Programming (1) intro

This course provides an introduction to C and C++ programming languages. Prior knowledge of these languages is not expected. However, students are expected to know at least one programming language prior to the class. The lectures will cover low-level programming techniques and object-oriented class design. Students will learn specific topics in C/C++ including required background knowledge, pointers & references, memory management, inheritance, polymorphism, templates, exceptions, use of debugging and compiler tools, and others as time permits.

CSDS 245: Functional Programming in Java (1) intro

An introduction to functional programming elements and attendant constructs in the Java programming language. Generics, enumerated types, records, and access to class members. Advanced control flow. The Java Collection Framework. Functional interfaces: lambdas, comparators, and standard functional interfaces. Optionals. Stream, collectors, and map-reduce.

ECSE 246: Signals and Systems (4) math

Mathematical representation, characterization, and analysis of continuous-time signals and systems. Development of elementary mathematical models of continuous-time dynamic systems. Time domain and frequency domain analysis of linear time-invariant systems. Fourier series, Fourier transforms, and Laplace transforms. Sampling theorem. Filter design. Introduction to feedback control systems and feedback controller design.

CSDS 275: Fundamentals of Robotics (4) ai

The Fundamentals of Robotics course will expose students to fundamental principles of robotics. Students will explore high level conceptual foundations of robotics beginning with Braitenberg vehicles and apply this knowledge to simulated and physical robot hardware in laboratory experiences and in a final project. Laboratory experiences will guide students through applying theory to practice increasingly complex tasks in a project oriented, group work environment. The course culminates in a robotics challenge project at the end of the semester. Topics covered are: sensors, actuators, kinematics, control, planning and programming. Programming languages and concepts (e.g., C++, object oriented programming) used in robotics will be introduced and used with modern robotics programming toolboxes and frameworks. Prior experience with these languages will not be necessary. Previous experience with robotics is not required for this course.

CSDS 281: Logic Design and Computer Organization (4) sys

Fundamentals of digital systems in terms of both computer organization and logic level design. Organization of digital computers; information representation; boolean algebra; analysis and synthesis of combinational and sequential circuits; datapaths and register transfers; instruction sets and assembly language; input/output and communication; memory.

CSDS 285: Linux Tools and Scripting (3) sys

A fast paced introduction to linux that brings the project-oriented student from little or no linux experience to be fully capable of using scripting languages as tools in a linux command-line environment. This includes systems administration and agile web services with server-side scripting and server-side management. This also involves data cleaning, scraping, wrangling, and processing user data with regular expressions. Current main languages include php, bash, awk, with some client-side javascript, and very brief looks at tcl/lua, powershell, and python. Tools include vim, make, grep/sed, and curl/wget.

CSDS 290: Introduction to Computer Game Design and Implementation (3)

This class begins with an examination of the history of video games and of game design. Games will be examined in a systems context to understand gaming and game design fundamentals. Various topics relating directly to the implementation of computer games will be introduced including graphics, animation, artificial intelligence, user interfaces, the simulation of motion, sound generation, and networking. Extensive study of past and current computer games will be used to illustrate course concepts. Individual and group projects will be used throughout the semester to motivate, illustrate and demonstrate the course concepts and ideas. Group game development and implementation projects will culminate in classroom presentation and evaluation.

CSDS 293: Software Craftsmanship (4) softeng

A course to improve programming skills, software quality, and the software development process. Software design; Version control; Control issues and routines; Pseudo-code programming process and developer testing; Defensive programming; Classes; Debugging; Self-documenting code; Refactoring.

CSDS 293N: Software Craftsmanship (4) softeng

A course to improve programming skills, software quality, and the software development process. Software design; Version control; Control issues and routines; Pseudo-code programming process and developer testing; Defensive programming; Classes; Debugging; Self-documenting code; Refactoring.

CSDS 296: Independent Projects (13) special

Independent projects in Computer and Data Science. Recommended preparation: ENGR 131 or CSDS 132.

CSDS 297: Special Topics (13) special

Special topics in Computer and Data Science.

CSDS 302: Discrete Mathematics (3) math

A general introduction to basic mathematical terminology and the techniques of abstract mathematics in the context of discrete mathematics. Topics introduced are mathematical reasoning, Boolean connectives, deduction, mathematical induction, sets, functions and relations, algorithms, graphs, combinatorial reasoning. Offered as CSDS 302, ECSE 302 and MATH 304.

CSDS 305: Files, Indexes and Access Structures for Big Data (3) sys

Database management become a central component of a modern computing environment, and, as a result, knowledge about database systems has become an essential part of education in computer science and data science. This course is an introduction to the nature and purpose of database systems, fundamental concepts for designing, implementing and querying a database and database architectures. Objectives: -An expert knowledge of basic data structures, basic searching, sorting, methods, algorithm techniques, (such as greedy and divide and conquer) -In-depth knowledge on Search and Index Structures for large, heterogeneous data including multidimensional data, high dimensional data and data in metric spaces (e.g., sequences, images), on different search methods (e.g. similarity searching, partial match, exact match), and on dimensionality reduction techniques.

CSDS 310: Algorithms (3) algs

The course covers fundamentals in algorithm design and analysis and provides practice in professional algorithm writing and presentations. Loop invariants, asymptotic notation, recurrence relations, sorting algorithms, divide-and-conquer, dynamic programming, greedy algorithms, basic graph algorithms. Offered as CSDS 310 and CSDS 310N. Counts as a Disciplinary Communication course.

CSDS 310N: Algorithms (3) algs

The course covers fundamentals in algorithm design and analysis and provides practice in professional algorithm writing and presentations. Loop invariants, asymptotic notation, recurrence relations, sorting algorithms, divide-and-conquer, dynamic programming, greedy algorithms, basic graph algorithms. Offered as CSDS 310 and CSDS 310N. Counts as a Disciplinary Communication course.

CSDS 312: Introduction to Data Science Systems (3) sys

An introduction to the software and hardware architecture of data science systems, with an emphasis on Operating Systems and Computer Architecture that are relevant to Data Sciences systems. At the end of the course, the student should understand the principles and architecture of storage systems, file systems (especially, HDFS), memory hierarchy, and GPU. The student should have carried out projects in these areas, and should be able to critically compare various design decisions in terms of capability and performance.

CSDS 313: Introduction to Data Analysis (3) math

This course provides a conceptual and hands-on introduction to reasoning with data. Introduction of basic statistical concepts; models vs. observations, common distributions, parameters vs. statistics, statistical inference, hypothesis testing, multiple hypotheses, confidence intervals. Use of computational approaches to address statistical problems; data representation, empirical assessment of statistical significance, assessment of the association between variables, dimensionality reduction, model building, evaluation, and validation. Data visualization and accessibility/interpretability of patterns in data and predictive models. Computational thinking and critical approaches in data science; common mistakes and issues in data analysis, causality vs. correlation, confounders, statistical artifacts, Simpson's paradox, base rate fallacy, stage migration, survivorship bias, censoring, misleading visualization. Offered as CSDS 313 and CSDS 413.

ECSE 313: Signal Processing (3) math

Fourier series and transforms. Analog and digital filters. Fast-Fourier transforms, sampling, and modulation for discrete time signals and systems. Consideration of stochastic signals and linear processing of stochastic signals using correlation functions and spectral analysis. The course will incorporate the use of Grand Challenges in the areas of Energy Systems, Control Systems, and Data Analytics in order to provide a framework for problems to study in the development and application of the concepts and tools studied in the course. Various aspects of important engineering skills relating to leadership, teaming, emotional intelligence, and effective communication are integrated into the course.

CSDS 314: Computer Architecture (3) sys

This course provides students the opportunity to study and evaluate a modern computer architecture design. The course covers topics in fundamentals of computer design, performance, cost, instruction set design, processor implementation, control unit, pipelining, communication and network, memory hierarchy, computer arithmetic, input-output, and an introduction to RISC and super-scalar processors. Offered as CSDS 314 and ECSE 314.

CSDS 325: Computer Networks I (3) sys

An introduction to computer networks and the Internet. Applications: http, ftp, e-mail, DNS, socket programming. Transport: UDP, TCP, reliable data transfer, and congestion control. Network layer: IP, routing, and NAT. Link layer: taxonomy, Ethernet, 802.11. Offered as CSDS 325 and CSDS 325N.

CSDS 325N: Computer Networks I (3) sys

An introduction to computer networks and the Internet. Applications: http, ftp, e-mail, DNS, socket programming. Transport: UDP, TCP, reliable data transfer, and congestion control. Network layer: IP, routing, and NAT. Link layer: taxonomy, Ethernet, 802.11. Offered as CSDS 325 and CSDS 325N.

CSDS 335: Data Mining for Big Data (3) ai

With the unprecedented rate at which data is being collected today in almost all fields of human endeavor, there is an emerging economic and scientific need to extract useful information from it. Data mining is the process of automatic discovery of patterns, changes, associations and anomalies in massive databases, and is a highly interdisciplinary field representing the confluence of several disciplines, including database systems, data warehousing, machine learning, statistics, algorithms, data visualization, and high-performance computing. This course is an introduction to the commonly used data mining techniques.

CSDS 337: Compiler Design (4) pls

Design and implementation of compilers and other language processors. Scanners and lexical analysis; regular expressions and finite automata; scanner generators; parsers and syntax analysis; context free grammars; parser generators; semantic analysis; intermediate code generation; runtime environments; code generation; machine independent optimizations; data flow and dependence analysis. There will be a significant programming project involving the use of compiler tools and software development tools and techniques. Offered as CSDS 337 and ECSE 337.

CSDS 338: Intro to Operating Systems and Concurrent Programming (4) sys

Intro to OS: OS Structures, processes, threads, CPU scheduling, deadlocks, memory management, file system implementations, virtual machines, cloud computing. Concurrent programming: fork, join, concurrent statement, critical section problem, safety and liveness properties of concurrent programs, process synchronization algorithms, semaphores, monitors. UNIX systems programming: system calls, UNIX System V IPCs, threads, RPCs, shell programming. Offered as CSDS 338, ECSE, 338, CSDS 338N and ECSE 338N.

CSDS 338N: Intro to Operating Systems and Concurrent Programming (4) sys

OS Structures, processes, threads, CPU scheduling, deadlocks, memory management, file system implementations, virtual machines, cloud computing. Concurrent programming: fork, join, concurrent statement, critical section problem, safety and liveness properties of concurrent programs, process synchronization algorithms, semaphores, monitors. UNIX systems programming: system calls, UNIX System V IPCs, threads, RPCs, shell programming.

CSDS 340: Introduction to Machine Learning (3) ai

Machine learning is a sub-field of Artificial Intelligence that is concerned with the design and analysis of algorithms that 'learn' and improve with experience. This course is an introduction to algorithms for machine learning and their implementation in the context of big data.

CSDS 341: Introduction to Database Systems (3) sys

Relational model, ER model, relational algebra and calculus, SQL, OBE, security, views, files and physical database structures, query processing and query optimization, normalization theory, concurrency control, object relational systems, multimedia databases, Oracle SQL server, Microsoft SQL server.

CSDS 341N: Introduction to Database Systems (3) sys

Relational model, ER model, relational algebra and calculus, SQL, OBE, security, views, files and physical database structures, query processing and query optimization, normalization theory, concurrency control, object relational systems, multimedia databases, Oracle SQL server, Microsoft SQL server.

CSDS 343: Theoretical Computer Science (3) theory

Introduction to different classes of automata and their correspondence to different classes of formal languages and grammars, computability, complexity and various proof techniques.

CSDS 344: Computer Security (3) sys

General types of security attacks; approaches to prevention; secret key and public key cryptography; message authentication and hash functions; digital signatures and authentication protocols; information gathering; password cracking; spoofing; session hijacking; denial of service attacks; buffer overruns; viruses, worms, etc., principles of secure software design, threat modeling; access control; least privilege; storing secrets; socket security; firewalls; intrusions; auditing; mobile security.

CSDS 345: Programming Language Concepts (3) pls

This course examines the four main programming paradigms: imperative, object-oriented, functional, and logical. It is assumed that students will come to the course with significant exposure to object-oriented programming and some exposure to imperative programming. The course will teach the functional paradigm in depth, enhance the students' knowledge of the object-oriented and imperative paradigms, and introduce the logical paradigm. The course will explore language syntax, semantics, names/scopes, types, expressions, assignment, subprograms, abstraction and inheritance. This exploration will have several forms. Students will study the programming language concepts at a theoretical level, use the concepts in functional language programming, and implement the concepts by designing language interpreters.

CSDS 345N: Programming Language Concepts (3) pls

This course examines the four main programming paradigms: imperative, object-oriented, functional, and logical. It is assumed that students will come to the course with significant exposure to object-oriented programming and some exposure to imperative programming. The course will teach the functional paradigm in depth, enhance the students' knowledge of the object-oriented and imperative paradigms, and introduce the logical paradigm. The course will explore language syntax, semantics, names/scopes, types, expressions, assignment, subprograms, abstraction and inheritance. This exploration will have several forms. Students will study the programming language concepts at a theoretical level, use the concepts in functional language programming, and implement the concepts by designing language interpreters.

ECSE 346: Engineering Optimization (3) math

Optimization techniques including linear programming and extensions; transportation and assignment problems; network flow optimization; quadratic, integer, and separable programming; geometric programming; and dynamic programming. Nonlinear optimization topics: optimality criteria, gradient and other practical unconstrained and constrained methods. Computer applications using engineering and business case studies. The course will incorporate the use of Grand Challenges in the areas of Energy Systems, Control Systems, and Data Analytics in order to provide a framework for problems to study in the development and application of the concepts and tools studied in the course. Various aspects of important engineering skills relating to leadership, teaming, emotional intelligence, and effective communication are integrated into the course.

CSDS 356: Data Privacy (3) impact

Introduction to privacy, economics and incentives, crypto-based solution for privacy, hiding data from the database user, hiding access patterns from the database owner, anonymous routing and TOR, privacy in online social networks, privacy in cellular and Wi-Fi networks, location privacy, privacy in e-cash systems, privacy in e-voting, genomic privacy.

CSDS 361: Biomedical Image Processing and Analysis (3) ai

Principles of image processing and analysis with applications to clinical and biomedical research. Topics include image filtering, registration, morphological processing, segmentation, classification, and 3D image visualization. There will be interesting, realistic computer projects in Matlab.

CSDS 364: Computational Perception (3) ai

An introduction to the information processing and computational algorithms that underlie perception. The course focuses on vision and audition but also covers other senses and various types of perceptual processing in biological systems. The motivating question is: What are the fundamental computational problems faced by perceptual systems in complex environments? The course draws from fields in engineering and the study of biological perception. Specific topics include signal detection and processing; sound localization; motion perception and estimation; sensory coding; perception of structure; active perception; perceptual invariance; attention; object, sound and speech recognition; visual and auditory scene analysis.

CSDS 366: Computer Graphics (3) graphics

Theory and practice of computer graphics: object and environment representation including coordinate transformations image extraction including perspective, hidden surface, and shading algorithms; and interaction. Covers a wide range of graphic display devices and systems with emphasis in interactive shaded graphics.

CSDS 373: Modern Robot Programming (3) ai

The goal of this course is to learn modern methods for building up robot capabilities using the Robot Operating System (ROS). Through a sequence of assignments, students learn how to write software to control both simulated and physical robots. Material includes: interfacing software to robot I/O; path and trajectory planning for robot arms; object identification and localization from 3-D sensing; manipulation planning; and development of graphical interfaces for supervisory robot control. Laboratory assignments are scheduled in small groups to explore implementations on specific robots. Graduate students will also perform an independent project.

CSDS 376: Mobile Robotics (4) ai

Design of software systems for mobile robot control, including: motion control; sensory processing; localization and mapping; mobile-robot planning and navigation; and implementation of goal-directed behaviors. The course has a heavy lab component involving a sequence of design challenges and competitions performed in teams.

CSDS 377: Introduction to Connected Devices (3) sys

Introduction to Connected Devices (e.g., Internet of Things). Undergraduates work in pairs to build a complete connected-device system, an embedded device with wireless networking, cloud and web, and mobile, and then develop hands-on experience with systems-level aspects of the connected-device system, including analytics, remote firmware update, load testing, and essential security.

CSDS 386: Quantum Computing, Information, and Devices (3) math

An introduction to the math, physics, engineering, and computer science underlying the rapidly emerging fields of quantum computing, quantum information, and quantum devices.

CSDS 390: Advanced Game Development Project (3) capstone

This game development project course will bring together an inter-professional group of students in the fields of engineering, computer science, and art to focus on the design and development of a complete, fully functioning computer game as an interdisciplinary team.

CSDS 391: Introduction to Artificial Intelligence (3) ai

This course is an introduction to artificial intelligence. We will study the concepts that underlie intelligent systems.

CSDS 392: App Development for iOS (3) sys

This course is an introduction to app development for iPhone and iPad using Cocoa Touch Framework and Xcode development environment.

CSDS 393: Software Engineering (3) softeng

Topics: Introduction to software engineering; software lifecycle models; development team organization and project management; requirements analysis and specification techniques; software design techniques; programming practices; software validation techniques; software maintenance practices; software engineering ethics. Undergraduates work in teams to complete a significant software development project. Graduate students are required to complete a research project.

CSDS 393N: Software Engineering (3) softeng

Topics: Introduction to software engineering; software lifecycle models; development team organization and project management; requirements analysis and specification techniques; software design techniques; programming practices; software validation techniques; software maintenance practices; software engineering ethics. Undergraduates work in teams to complete a significant software development project. Graduate students are required to complete a research project.

CSDS 394: Introduction to Information Theory (3) math

This course is intended as an introduction to information and coding theory with emphasis on the mathematical aspects. It is suitable for advanced undergraduate and graduate students in mathematics, applied mathematics, statistics, physics, computer science and electrical engineering. Course content: Information measures-entropy, relative entropy, mutual information, and their properties. Typical sets and sequences, asymptotic equipartition property, data compression. Channel coding and capacity: channel coding theorem. Differential entropy, Gaussian channel, Shannon-Nyquist theorem. Information theory inequalities (400 level). Additional topics, which may include compressed sensing and elements of quantum information theory.

CSDS 395: Senior Project in Computer Science (4) capstone

Capstone course for computer science seniors. Material from previous and concurrent courses used to solve computer programming problems and to develop software systems. Professional engineering topics such as project management, engineering design, communications, and professional ethics. Requirements include periodic reporting of progress, plus a final oral presentation and written report. Scheduled formal project presentations during last week of classes. Counts as a SAGES Senior Capstone course.

CSDS 396: Independent Projects (16) special

Independent projects in Computer and Data Science.

CSDS 397: Special Topics (16) special

Special topics in Computer and Data Science.

CSDS 398: Senior Project in Data Science (4) capstone

Capstone course for data science seniors. Material from previous and concurrent courses used to apply tools of the data science lifecycle to practical applications. Professional engineering topics such as project management, engineering design, communications, and professional ethics. Requirements include periodic reporting of progress, plus a final oral presentation and written report. Scheduled formal project presentations during the last week of classes. Counts as a SAGES Senior Capstone course.

CSDS 400T: Graduate Teaching I (0)

This course will provide the Ph.D. candidate with experience in teaching undergraduate or graduate students. The experience is expected to involve direct student contact but will be based upon the specific departmental needs and teaching obligations. This teaching experience will be conducted under the supervision of the faculty member who is responsible for the course, but the academic advisor will assess the educational plan to ensure that it provides an educational experience for the student. Students in this course may be expected to perform one or more of the following teaching related activities: grading homeworks, quizzes, and exams, having office hours for students, tutoring students.

CSDS 401: Foundations of Computer Science (4.5) special

Introduction to computer science for graduate level students. Covers the basic concepts of data structures and discrete mathematics and combines theory and practice. Representations and manipulation of data, abstract data types, generics, separation of interface and implementation. Mathematical reasoning, Boolean connectives, induction, sets, algorithms, graphs, and combinatorial reasoning.

CSDS 410: Analysis of Algorithms (3) algs

This course covers fundamental topics in algorithm design and analysis in depth. Amortized analysis, NP-completeness and reductions, dynamic programming, advanced graph algorithms, string algorithms, geometric algorithms, local search heuristics.

CSDS 413: Introduction to Data Analysis (3) math

This course provides a conceptual and hands-on introduction to reasoning with data. Introduction of basic statistical concepts; models vs. observations, common distributions, parameters vs. statistics, statistical inference, hypothesis testing, multiple hypotheses, confidence intervals. Use of computational approaches to address statistical problems; data representation, empirical assessment of statistical significance, assessment of the association between variables, dimensionality reduction, model building, evaluation, and validation. Data visualization and accessibility/interpretability of patterns in data and predictive models. Computational thinking and critical approaches in data science; common mistakes and issues in data analysis, causality vs. correlation, confounders, statistical artifacts, Simpson's paradox, base rate fallacy, stage migration, survivorship bias, censoring, misleading visualization.

ECSE 416: Convex Optimization for Engineering (3) math

This course will focus on the development of a working knowledge and skills to recognize, formulate, and solve convex optimization problems that are so prevalent in engineering. Applications in control systems; parameter and state estimation; signal processing; communications and networks; circuit design; data modeling and analysis; data mining including clustering and classification; and combinatorial and global optimization will be highlighted. New reliable and efficient methods, particular those based on interior-point methods and other special methods to solve convex optimization problems will be emphasized. Implementation issues will also be underscored.

CSDS 425: Computer Networks I (3) sys

An introduction to computer networks and the Internet. Applications: http, ftp, e-mail, DNS, socket programming. Transport: UDP, TCP, reliable data transfer, and congestion control. Network layer: IP, routing and NAT. Link layer: taxonomy, Ethernet, 802.11.

CSDS 427: Internet Security and Privacy (3) sys

This course introduces students to research on Internet security and privacy. Covered topics include denial of service attacks, attacks enabled by man-in-the-middle surveillance, communication hijacking, botnet and fast-flux networks, email and Web spam, threats to privacy on the Internet, and Internet censorship. The course will be based on a collection of research papers. Students will be required to attend lectures, read the materials, prepare written summaries of discussed papers, present a paper in class, complete a course project and take the final exam (in the form of the course project presentation).

CSDS 428: Computer Communications Networks II (3) sys

Introduction to topics and methodology in computer networks and middleware research. Traffic characterization, stochastic models, and self-similarity. Congestion control (Tahoe, Reno, Sack). Active Queue Management (RED, FQ) and explicit QoS. The Web: overview and components, HTTP, its interaction with TCP, caching. Overlay networks and CDN. Expected work includes a course-long project on network simulation, a final project, a paper presentation, midterm, and final test.

CSDS 433: Database Systems (3) sys

Basic issues in file processing and database management systems. Physical data organization. Relational databases. Database design. Relational Query Languages, SQL. Query languages. Query optimization. Database integrity and security. Object-oriented databases. Object-oriented Query Languages, OQL.

CSDS 435: Data Mining (3) ai

Data Mining is the process of discovering interesting knowledge from large amounts of data stored either in databases, data warehouses, or other information repositories. Topics to be covered includes: Data Warehouse and OLAP technology for data mining, Data Preprocessing, Data Mining Primitives, Languages, and System Architectures, Mining Association Rules from Large Databases, Classification and Prediction, Cluster Analysis, Mining Complex Types of Data, and Applications and Trends in Data Mining.

CSDS 438: High Performance Data and Computing (3) sys

High performance data and computing (HPDC) leverages parallel processing in order to maximize speed and throughput. This hands-on course will cover theoretical and practical aspects of HPDC. Theoretical concepts covered include computer architecture, parallel programming, and performance optimization. Practical applications will be discussed from various information and scientific fields. Practical considerations will include HPDC job management and Unix scripting. Weekly assessments and a course project will be required.

CSDS 440: Machine Learning (3) ai

Machine learning is a subfield of Artificial Intelligence that is concerned with the design and analysis of algorithms that 'learn' and improve with experience, While the broad aim behind research in this area is to build systems that can simulate or even improve on certain aspects of human intelligence, algorithms developed in this area have become very useful in analyzing and predicting the behavior of complex systems. Machine learning algorithms have been used to guide diagnostic systems in medicine, recommend interesting products to customers in e-commerce, play games at human championship levels, and solve many other very complex problems. This course is focused on algorithms for machine learning: their design, analysis and implementation. We will study different learning settings, including supervised, semi-supervised and unsupervised learning. We will study different ways of representing the learning problem, using propositional, multiple-instance and relational representations. We will study the different algorithms that have been developed for these settings, such as decision trees, neural networks, support vector machines, k-means, harmonic functions and Bayesian methods. We will learn about the theoretical tradeoffs in the design of these algorithms, and how to evaluate their behavior in practice. At the end of the course, you should be able to: --Recognize situations where machine learning algorithms are applicable; --Understand, represent and formulate the learning problem; --Apply the appropriate algorithm(s), or if necessary, design your own, with an understanding of the tradeoffs involved; --Correctly evaluate the behavior of the algorithm when solving the problem.

CSDS 442: Causal Learning from Data (3) ai

This course introduces key concepts and techniques for characterizing, from observational or experimental study data and from background information, the causal effect of a specific treatment, exposure, or intervention (e.g., a medical treatment) upon an outcome of interest (e.g., disease status). The fundamental problem of causal inference is the impossibility of observing the effects of different and incompatible treatments on the same individual or unit. This problem is overcome by estimating an average causal effect over a study population. Making valid causal inferences with observational data is especially challenging, because of the greater potential for biases (confounding bias, selection bias, and measurement bias) that can badly distort causal effect estimates. Consequently, this topic has been the focus of intense cross-disciplinary research in recent years. Causal inference techniques will be illustrated by applications in several fields such as computer science, engineering, medicine, public health, biology, genomics, neuroscience, economics, and social science. Course grading will be based on quizzes, homeworks, a class presentation, and a causal data analysis project. Specific topics: treatments, exposures, and interventions; causal effects and causal effect measures; confounding bias; potential outcomes and counterfactuals; randomized experiments; observational studies; causal directed acyclic graphs (DAGs); exchangeability and conditional exchangeability; effect modification; causal interactions; nonparametric structural equations; Pearl's Back-Door Criterion, Front-Door Criterion, and related results; covariate adjustment; matching on covariates; selection bias; measurement bias; instrumental variables; causal modeling; inverse probability weighting; marginal structural models; standardization; structural nested models; outcome regression; propensity scores; sensitivity analysis.

CSDS 444: Computer Security (3) sys

General types of security attacks; approaches to prevention; secret key and public key cryptography; message authentication and hash functions; digital signatures and authentication protocols; information gathering; password cracking; spoofing; session hijacking; denial of service attacks; buffer overruns; viruses, worms, etc., principles of secure software design, threat modeling; access control; least privilege; storing secrets; socket security; firewalls; intrusions; auditing; mobile security.

CSDS 448: Smartphone Security (3) sys

This course is designed to better prepare undergraduate and graduate students for researching and developing in the neighborhood of mobile and software security. Lectures, paper readings and presentations, in-class discussions, and projects are the main components. The course covers the basics of Android programming and a wide range of security issues and solutions concerning mobile platforms, including permission analysis, textual artifacts analysis, malware analysis, program analysis, and UI analysis. Students should expect one literature survey paper and one system-building or empirical study project on one selected security solution in mobile app security.

CSDS 451: Designing High Performant Systems for AI (3) sys

The objective of the course is to give a broad overview of the challenges and opportunities that exist in designing high performance AI systems. In addition, a course project will allow students to delve deeper into a topic of their interest. The course is designed to cater to two types of audiences: students working on data science projects who want to understand how to perform faster training or inference of their AI/ML models, or students working on parallel algorithms, or hardware acceleration, who want to understand modern techniques for accelerating data science applications. On the theory side, the course will cover basics and some recent advances in improving the performance of state-of-the-art AI/ML techniques including Convolutional Neural Networks (CNN), Graph Machine Learning (GML), and Transformer based Natural Language Models (NLM). Additionally, a high-level discussion of recently developed custom AI accelerators such as Microsoft's NPU, or Cerebras will be covered. On the practical side, the course will cover programming models and frameworks for accelerating these models. These will include parallel programming techniques in PyTorch (for CNN and NLM acceleration), Framework for Graph ML such as Deep Graph Library, and heterogeneous computing frameworks such as OpenMP, and DPC++. The focus will be primarily on algorithmic optimizations as opposed to device specific optimizations. While the course lectures will cover the breadth of the domain, students will be able to explore the depth of a single topic of their choice by a course project.

CSDS 455: Applied Graph Theory (3) math

This course serves as an introduction to many of the important aspects of graph theory. Topics include connectivity, flows, matchings, planar graphs, and graph coloring with additional topics selected from extremal graphs, random graphs, bounded treewidth graphs, social networks and small world graphs. The class will explore the underlying mathematical theory with a specific focus on the development and analysis of graph algorithms.

CSDS 456: Data Privacy (3) sys

Introduction to privacy, economics and incentives, crypto-based solution for privacy, hiding data from the database user, hiding access patterns from the database owner, anonymous routing and TOR, privacy in online social networks, privacy in cellular and Wi-Fi networks, location privacy, privacy in e-cash systems, privacy in e-voting, genomic privacy.

CSDS 458: Introduction to Bioinformatics (3) ai

Fundamental algorithmic and statistical methods in computational molecular biology and bioinformatics will be discussed. Topics include introduction to molecular biology and genetics, DNA sequence analysis, polymorphisms and personal genomics, structural variation analysis, gene mapping and haplotyping algorithms, phylogenetic analysis, biological network analysis, and computational drug discovery. Much of the course will focus on the algorithmic techniques, including but not limited to, dynamic programming, hidden Markov models, string algorithms, graph theories and algorithms, and some representative data mining algorithms. Paper presentations and course projects are also required.

CSDS 459: Bioinformatics for Systems Biology (3) ai

Description of omic data (biological sequences, gene expression, protein-protein interactions, protein-DNA interactions, protein expression, metabolomics, biological ontologies), regulatory network inference, topology of regulatorn networks, computational inference of protein-protein interactions, protein interaction databases, topology of protein interaction networks, module and protein complex discovery, network alignment and mining, computational models for network evolution, network-based functional inference, metabolic pathway databases, topology of metabolic pathways, flux models for analysis of metabolic networks, network integration, inference of domain-domain interactions, signaling pathway inference from protein interaction networks, network models and algorithms for disease gene identification, identification of dysregulated subnetworks network-based disease classification.

CSDS 461: Biomedical Image Processing and Analysis (3) ai

Principles of image processing and analysis with applications to clinical and biomedical research. Topics include image filtering, registration, morphological processing, segmentation, classification, and 3D image visualization. There will be interesting, realistic computer projects in Matlab.

CSDS 464: Computational Perception (3) ai

An introduction to the information processing and computational algorithms that underlie perception. The course focuses on vision and audition but also covers other senses and various types of perceptual processing in biological systems. The motivating question is: What are the fundamental computational problems faced by perceptual systems in complex environments? The course draws from fields in engineering and the study of biological perception. Specific topics include signal detection and processing; sound localization; motion perception and estimation; sensory coding; perception of structure; active perception; perceptual invariance; attention; object, sound and speech recognition; visual and auditory scene analysis.

CSDS 465: Computer Vision (3) ai

The goal of computer vision is to create visual systems that recognize objects and recover structures in complex 3D scenes. This course emphasizes both the science behind our understanding of the fundamental problems in vision and the engineering that develops mathematical models and inference algorithms to solve these problems. Specific topics include feature detection, matching, and classification; visual representations and dimensionality reduction; motion detection and optical flow; image segmentation; depth perception, multi-view geometry, and 3D reconstruction; shape and surface perception; visual scene analysis and object recognition.

CSDS 466: Computer Graphics (3) graphics

Theory and practice of computer graphics: object and environment representation including coordinate transformations image extraction including perspective, hidden surface, and shading algorithms; and interaction. Covers a wide range of graphic display devices and systems with emphasis in interactive shaded graphics.

CSDS 468: CyberAI: Artificial Intelligence in Cybersecurity (3) ai

This course aims to (1) explore emerging topics in cybersecurity, (2) introduce typical artificial intelligence (AI) driven techniques, and (3) apply and advance capabilities of AI to solve real-world oriented cybersecurity problems.

CSDS 473: Modern Robot Programming (3) ai

The goal of this course is to learn modern methods for building up robot capabilities using the Robot Operating System (ROS). Through a sequence of assignments, students learn how to write software to control both simulated and physical robots. Material includes: interfacing software to robot I/O; path and trajectory planning for robot arms; object identification and localization from 3-D sensing; manipulation planning; and development of graphical interfaces for supervisory robot control. Laboratory assignments are scheduled in small groups to explore implementations on specific robots. Graduate students will also perform an independent project.

CSDS 476: Mobile Robotics (3) ai

Design of software systems for mobile robot control, including: motion control; sensory processing; localization and mapping; mobile-robot planning and navigation; and implementation of goal-directed behaviors. The course has a heavy lab component involving a sequence of design challenges and competitions performed in teams.

CSDS 477: Advanced Algorithms (3) algs

Design and analysis of efficient algorithms, with emphasis on network flow, combinatorial optimization, and randomized algorithms. Linear programming: duality, complementary slackness, total unimodularity. Minimum cost flow: optimality conditions, algorithms, applications. Game theory: two-person zero-sum games, minimax theorems. Probabilistic analysis and randomized algorithms: examples and lower bounds. Approximation algorithms for NP-hard problems: examples, randomized rounding of linear programs.

CSDS 478: Computational Neuroscience (3) ai

Computer simulations and mathematical analysis of neurons and neural circuits, and the computational properties of nervous systems. Students are taught a range of models for neurons and neural circuits, and are asked to implement and explore the computational and dynamic properties of these models. The course introduces students to dynamical systems theory for the analysis of neurons and neural learning, models of brain systems, and their relationship to artificial and neural networks. Term project required. Students enrolled in MATH 478 will make arrangements with the instructor to attend additional lectures and complete additional assignments addressing mathematical topics related to the course.

CSDS 486: Quantum Computing, Information, and Devices (3) math

An introduction to the math, physics, engineering, and computer science underlying the rapidly emerging fields of quantum computing, quantum information, and quantum devices. The course is taught by a group of faculty from physics, engineering, computer science, and math, and is geared towards students with diverse backgrounds and interests in these fields. Students will select a concentration in one of these four areas, and the coursework, while still covering all topics, will be adjusted to focus on the selected area in the most detail. Note that the listed prerequisites depend on choice of concentration. Topics will include: 1. (Mathematics) Introduction to linear algebra, convex geometry, fundamental theory of quantum information. 2. (Physics) Introduction to the quantum mechanics of two-level systems (qubits). Survey of physics and materials for qubit technologies. 3. (Computer Science) Basic quantum gates and circuits, introduction to the theory of algorithms, survey of quantum algorithms. 4. (Engineering) Quantum architectures, mapping algorithms onto circuits. The course consists of lectures, homework, and group projects. Group projects will aim to synthesize the diverse backgrounds of the students and instructors to capture the interdisciplinary nature of the field. Students taking the course for graduate credit will complete an additional literature research project and presentation, in addition to enhanced problem sets.

CSDS 487: Advanced Game Development Project (3) capstone

This game development project course will bring together an inter-professional group of students in the fields of engineering, computer science, and art to focus on the design and development of a complete, fully functioning computer game as an interdisciplinary team. The student teams are given complete liberty to design their own fully functional games from their original concept to a playable game published in an online marketplace. Student teams will experience the entire game development cycle as they execute their projects. Responsibilities include creating a game idea, writing a story, developing the artwork, designing characters, implementing music and sound effects, programming and testing the game, and publishing the final project. Students enrolled in 487 will develop a healthcare or education virtual environment or video game in collaboration with a mentor who has expertise in the chosen area.

CSDS 489: Robotics I (3) ai

Orientation and configuration coordinate transformations, forward and inverse kinematics and Newton-Euler and Lagrange-Euler dynamic analysis. Planning of manipulator trajectories. Force, position, and hybrid control of robot manipulators. Analytical techniques applied to select industrial robots.

CSDS 490: Digital Image Processing (3) ai

Digital images are introduced as two-dimensional sampled arrays of data. The course begins with one-to-one operations such as image addition and subtraction and image descriptors such as the histogram. Basic filters such as the gradient and Laplacian in the spatial domain are used to enhance images. The 2-D Fourier transform is introduced and frequency domain operations such as high and low-pass filtering are developed. It is shown how filtering techniques can be used to remove noise and other image degradation. The different methods of representing color images are described and fundamental concepts of color image transformations and color image processing are developed. One or more advanced topics such as wavelets, image compression, and pattern recognition will be covered as time permits. Programming assignments using software such as MATLAB will illustrate the application and implementation of digital image processing.

CSDS 491: Artificial Intelligence: Probabilistic Graphical Models (3) ai

This course is a graduate-level introduction to Artificial Intelligence (AI), the discipline of designing intelligent systems, and focuses on probabilistic graphical models. These models can be applied to a wide variety of settings from data analysis to machine learning to robotics. The models allow intelligent systems to represent uncertainties in an environment or problem space in a compact way and reason intelligently in a way that makes optimal use of available information and time. The course covers directed and undirected probabilistic graphical models, latent variable models, associated exact and approximate inference algorithms, and learning in both discrete and continuous problem spaces. Practical applications are covered throughout the course.

CSDS 493: Software Engineering (3) softeng

Topics: Introduction to software engineering; software lifecycle models; development team organization and project management; requirements analysis and specification techniques; software design techniques; programming practices; software validation techniques; software maintenance practices; software engineering ethics. Undergraduates work in teams to complete a significant software development project. Graduate students are required to complete a research project.

CSDS 494: Introduction to Information Theory (3) math

This course is intended as an introduction to information and coding theory with emphasis on the mathematical aspects. It is suitable for advanced undergraduate and graduate students in mathematics, applied mathematics, statistics, physics, computer science and electrical engineering. Course content: Information measures-entropy, relative entropy, mutual information, and their properties. Typical sets and sequences, asymptotic equipartition property, data compression. Channel coding and capacity: channel coding theorem. Differential entropy, Gaussian channel, Shannon-Nyquist theorem. Information theory inequalities (400 level). Additional topics, which may include compressed sensing and elements of quantum information theory.

CSDS 496: Artificial Intelligence: Sequential Decision Making (3) ai

This course will study the formulation and solution of decision making problems by automated agents. Topics covered include one-shot decision making (decision trees and influence diagrams), Markov decision processes (MDPs) , automated classical and probabilistic planning, reinforcement learning (RL), hierarchical planning and RL, partially observable MDPs, Bayesian RL, collaborative multi-agent systems.

CSDS 497: Artificial Intelligence: Statistical Natural Language Processing (3) ai

This course gives students an overview of the stat of the art in natural language processing. We will discuss computational aspects of language modeling through probabilistic models, computational approaches to syntax (parsing) and semantic representations, discourse and dialog. We will study the applications of these techniques to a variety of problems including information extraction, translation and summarization. At the end of the course a student should be able to (i) understand the various statistical models and algorithms for NLP (ii) modify them as needed or design novel approaches for specific NLP tasks and (iii) understand how to evaluate the performance of these models and compare them to alternatives.

CSDS 499: Algorithmic Robotics (3) ai

This course introduces basic algorithmic techniques in robotic perception and planning. Course is divided into two parts. The first part introduces probabilistic modeling of robotic motion and sensing, Gaussian and nonparametric filters, and algorithms for mobile robot localization. The second part introduces fundamental deterministic and randomized algorithms for motion planning.

MATH 121: Calculus for Science and Engineering I (4) math

Functions, analytic geometry of lines and polynomials, limits, derivatives of algebraic and trigonometric functions. Definite integral, antiderivatives, fundamental theorem of calculus, change of variables.

MATH 122: Calculus for Science and Engineering II (4) math

Continuation of MATH 121. Exponentials and logarithms, growth and decay, inverse trigonometric functions, related rates, basic techniques of integration, area and volume, polar coordinates, parametric equations. Taylor polynomials and Taylor's theorem.

MATH 124: Calculus II (4) math

Review of differentiation. Techniques of integration, and applications of the definite integral. Parametric equations and polar coordinates. Taylor's theorem. Sequences, series, power series. Complex arithmetic. Introduction to multivariable calculus.

MATH 201: Introduction to Linear Algebra for Applications (3) math

Matrix operations, systems of linear equations, vector spaces, subspaces, bases and linear independence, eigenvalues and eigenvectors, diagonalization of matrices, linear transformations, determinants. Less theoretical than MATH 307. Appropriate for majors in science, engineering, economics.

MATH 223: Calculus for Science and Engineering III (3) math

Introduction to vector algebra; lines and planes. Functions of several variables: partial derivatives, gradients, chain rule, directional derivative, maxima/minima. Multiple integrals, cylindrical and spherical coordinates. Derivatives of vector valued functions, velocity and acceleration. Vector fields, line integrals, Green's theorem.

MATH 224: Elementary Differential Equations (3) math

A first course in ordinary differential equations. First order equations and applications, linear equations with constant coefficients, linear systems, Laplace transforms, numerical methods of solution.

MATH 227: Calculus III (3) math

Vector algebra and geometry. Linear maps and matrices. Calculus of vector valued functions. Derivatives of functions of several variables. Multiple integrals. Vector fields and line integrals.

MATH 228: Differential Equations (3) math

Elementary ordinary differential equations: first order equations; linear systems; applications; numerical methods of solution.

STAT 243: Statistical Theory with Application I (3) math

Introduction to fundamental concepts of statistics through examples including design of an observational study, industrial simulation. Theoretical development motivated by sample survey methodology. Randomness, distribution functions, conditional probabilities. Derivation of common discrete distributions. Expectation operator. Statistics as random variables, point and interval estimation. Maximum likelihood estimators. Properties of estimators.

STAT 244: Statistical Theory with Application II (3) math

Extension of inferences to continuous-valued random variables. Common continuous-valued distributions. Expectation operator. Maximum likelihood estimators for the continuous case. Simple linear, multiple and polynomial regression. Properties of regression estimators when errors are Gaussian. Regression diagnostics. Class or student projects gathering real data or generating simulated data, fitting models and analyzing residuals from fit.

MATH 307: Linear Algebra (3) math

A course in linear algebra that studies the fundamentals of vector spaces, inner product spaces, and linear transformations on an axiomatic basis. Topics include: solutions of linear systems, matrix algebra over the real and complex numbers, linear independence, bases and dimension, eigenvalues and eigenvectors, singular value decomposition, and determinants. Other topics may include least squares, general inner product and normed spaces, orthogonal projections, finite dimensional spectral theorem. This course is required of all students majoring in mathematics and applied mathematics. More theoretical than MATH 201.

STAT 312: Basic Statistics for Engineering and Science (3) math

For advanced undergraduate students in engineering, physical sciences, life sciences. Comprehensive introduction to probability models and statistical methods of analyzing data with the object of formulating statistical models and choosing appropriate methods for inference from experimental and observational data and for testing the model's validity. Balanced approach with equal emphasis on probability, fundamental concepts of statistics, point and interval estimation, hypothesis testing, analysis of variance, design of experiments, and regression modeling.

STAT 312R: Basic Statistics for Engineering and Science Using R Programming (3) math

For advanced undergraduate students in engineering, physical sciences, life sciences. Comprehensive introduction to probability models and statistical methods of analyzing data with the object of formulating statistical models and choosing appropriate methods for inference from experimental and observational data and for testing the model's validity. Balanced approach with equal emphasis on probability, fundamental concepts of statistics, point and interval estimation, hypothesis testing, analysis of variance, design of experiments, and regression modeling.

STAT 313: Statistics for Experimenters (3) math

For advanced undergraduates in engineering, physical sciences, life sciences. Comprehensive introduction to modeling data and statistical methods of analyzing data. General objective is to train students in formulating statistical models, in choosing appropriate methods for inference from experimental and observational data and to test the validity of these models. Focus on practicalities of inference from experimental data. Inference for curve and surface fitting to real data sets. Designs for experiments and simulations. Student generation of experimental data and application of statistical methods for analysis. Critique of model; use of regression diagnostics to analyze errors.

STAT 325: Data Analysis and Linear Models (3) math

Basic exploratory data analysis for univariate response with single or multiple covariates. Graphical methods and data summarization, model-fitting using S-plus computing language. Linear and multiple regression. Emphasis on model selection criteria, on diagnostics to assess goodness of fit and interpretation. Techniques include transformation, smoothing, median polish, robust/resistant methods. Case studies and analysis of individual data sets. Notes of caution and some methods for handling bad data. Knowledge of regression is helpful.

MATH 327: Convexity and Optimization (3) math

Introduction to the theory of convex sets and functions and to the extremes in problems in areas of mathematics where convexity plays a role. Among the topics discussed are basic properties of convex sets (extreme points, facial structure of polytopes), separation theorems, duality and polars, properties of convex functions, minima and maxima of convex functions over convex set, various optimization problems. Offered as MATH 327, MATH 427, and OPRE 427.

STAT 332: Statistics for Signal Processing (3) math

For advanced undergraduate students or beginning graduate students in engineering, physical sciences, life sciences. Introduction to probability models and statistical methods. Emphasis on probability as relative frequencies. Derivation of conditional probabilities and memoryless channels. Joint distribution of random variables, transformations, autocorrelation, series of irregular observations, stationarity. Random harmonic signals with noise, random phase and/or random amplitude. Gaussian and Poisson signals. Modulation and averaging properties. Transmission through linear filters. Power spectra, bandwidth, white and colored noise. ARMA processes and forecasting. Optimal linear systems, signal-to-noise ratio, Wiener filter. Completion of additional assignments required from graduate students registered in this course.

STAT 333: Uncertainty in Engineering and Science (3) math

Phenomena of uncertainty appear in engineering and science for various reasons and can be modeled in different ways. The course integrates the mainstream ideas in statistical data analysis with models of uncertain phenomena stemming from three distinct viewpoints: algorithmic/computational complexity; classical probability theory; and chaotic behavior of nonlinear systems. Descriptive statistics, estimation procedures and hypothesis testing (including design of experiments). Random number generators and their testing. Monte Carlo Methods. Mathematica notebooks and simulations will be used. Graduate students are required to do an extra project.

MATH 380: Introduction to Probability (3) math

Combinatorial analysis. Permutations and combinations. Axioms of probability. Sample space and events. Equally likely outcomes. Conditional probability. Bayes' formula. Independent events and trials. Discrete random variables, probability mass functions. Expected value, variance. Bernoulli, binomial, Poisson, geometric, negative binomial random variables. Continuous random variables, density functions. Expected value and variance. Uniform, normal, exponential, Gamma random variables. The De Moivre-Laplace limit theorem. Joint probability mass functions and densities. Independent random variables and the distribution of their sums. Covariance. Conditional expectations and distributions (discrete case). Moment generating functions. Law of large numbers. Central limit theorem. Additional topics (time permitting): the Poisson process, finite state space Markov chains, entropy.

MATH 408: Introduction to Cryptology (3) math

Introduction to the mathematical theory of secure communication. Topics include: classical cryptographic systems; one-way and trapdoor functions; RSA, DSA, and other public key systems; Primality and Factorization algorithms; birthday problem and other attack methods; elliptic curve cryptosystems; introduction to complexity theory; other topics as time permits.

ENGR 399: Impact of Engineering on Society (3) impact

As engineers, we design and implement technical solutions with the goal of improving people's lives, locally and globally. However, the technical solutions can have disparate impacts, in that they are beneficial to some people but less beneficial, or even detrimental, to others. What are our ethical and professional responsibilities to understand, consider, and perhaps address the disparate impacts of our work on the affected local and/or global populations?

BIOL 311A: Survey of Bioinformatics: Technologies in Bioinformatics (1) sci

SYBB 311A/411A is a 5-week course that introduces students to the high-throughput technologies used to collect data for bioinformatics research in the fields of genomics, proteomics, and metabolomics. In particular, we will focus on mass spectrometer-based proteomics, DNA and RNA sequencing, genotyping, protein microarrays, and mass spectrometry-based metabolomics. This is a lecture-based course that relies heavily on out-of-class readings. Graduate students will be expected to write a report and give an oral presentation at the end of the course. SYBB 311A/411A is part of the SYBB survey series which is composed of the following course sequence: (1) Technologies in Bioinformatics, (2) Data Integration in Bioinformatics, (3) Translational Bioinformatics, and (4) Programming for Bioinformatics. Each standalone section of this course series introduces students to an aspect of a bioinformatics project - from data collection (SYBB 311A/411A), to data integration (SYBB 311B/411B), to research applications (SYBB 311C/411C), with a fourth module (SYBB 311D/411D) introducing basic programming skills. Graduate students have the option of enrolling in all four courses or choosing the individual modules most relevant to their background and goals with the exception of SYBB 411D, which must be taken with SYBB 411A.

BIOL 311B: Survey of Bioinformatics: Data Integration in Bioinformatics (1) sci

SYBB 311B/411B is a five week course that surveys the conceptual models and tools used to analyze and interpret data collected by high-throughput technologies, providing an entry points for students new to the field of bioinformatics. The knowledge structures that we will cover include: biomedical ontologies, signaling pathways, and interaction networks. We will also cover tools for genome exploration and analysis. The SYBB survey series is composed of the following course sequence: (1) Technologies in Bioinformatics, (2) Data Integration in Bioinformatics, (3) Translational Bioinformatics, and (4) Programming for Bioinformatics. Each standalone section of this course series introduces students to an aspect of a bioinformatics project - from data collection (SYBB 311A/411A), to data integration (SYBB 311B/411B), to research applications (SYBB 311C/411C), with a fourth module (SYBB 311D/411D) introducing basic programming. Graduate students have the option of enrolling in all four courses or choosing the individual modules most relevant to their background and goals with the exception of SYBB 411D, which must be taken with SYBB 411A.

BIOL 311C: Survey of Bioinformatics: Translational Bioinformatics (1) sci

SYBB 311C/411C is a longitudinal course that introduces students to the latest applications of bioinformatics, with a focus on translational research. Topics include: `omic drug discovery, pharmacogenomics, microbiome analysis, and genomic medicine. The focus of this course is on illustrating how bioinformatic technologies can be paired with data integration tools for various applications in medicine. The course is organized as a weekly journal club, with instructors leading the discussion of recent literature in the field of bioinformatics. Students will be expected to complete readings beforehand; students will also work in teams to write weekly reports reviewing journal articles in the field. The SYBB survey series is composed of the following course sequence: (1) Technologies in Bioinformatics, (2) Data Integration in Bioinformatics, (3) Translational Bioinformatics, and (4) Programming for Bioinformatics. Each standalone section of this course series introduces students to an aspect of a bioinformatics project - from data collection (SYBB 311A/411A), to data integration (SYBB 311B/411B), to research applications (SYBB 311C/411C), with a fourth module (SYBB 311D/411D) introducing basic programming. Graduate students have the option of enrolling in all four courses or choosing the individual modules most relevant to their background and goals with the exception of SYBB 411D, which must be taken with SYBB 411A.

BIOL 319: Applied Probability and Stochastic Processes for Biology (3) sci

Applications of probability and stochastic processes to biological systems. Mathematical topics will include: introduction to discrete and continuous probability spaces (including numerical generation of pseudo random samples from specified probability distributions), Markov processes in discrete and continuous time with discrete and continuous sample spaces, point processes including homogeneous and inhomogeneous Poisson processes and Markov chains on graphs, and diffusion processes including Brownian motion and the Ornstein-Uhlenbeck process. Biological topics will be determined by the interests of the students and the instructor. Likely topics include: stochastic ion channels, molecular motors and stochastic ratchets, actin and tubulin polymerization, random walk models for neural spike trains, bacterial chemotaxis, signaling and genetic regulatory networks, and stochastic predator-prey dynamics. The emphasis will be on practical simulation and analysis of stochastic phenomena in biological systems. Numerical methods will be developed using a combination of MATLAB, the R statistical package, MCell, and/or URDME, at the discretion of the instructor. Student projects will comprise a major part of the course.

CHEM 111: Principles of Chemistry for Engineers (4) sci

A first course in university chemistry emphasizing chemistry of materials for engineering students. Atomic theory and quantitative relationships; gas laws and kinetic theory; solutions, acid-base properties and pH; thermodynamics and equilibrium; kinetics, catalysis, and mechanisms; molecular structure and bonding.

PHYS 121: General Physics I - Mechanics (4) sci

Particle dynamics, Newton's laws of motion, energy and momentum conservation, rotational motion, and angular momentum conservation. This course has a laboratory component. Recommended preparation: MATH 121 or MATH 123 or MATH 125 or one year of high school calculus. Students who do not have the appropriate background should not enroll in PHYS 121 without first consulting the instructor. Students may earn credit for only one of the following courses: PHYS 115, PHYS 121, PHYS 123.

PHYS 122: General Physics II - Electricity and Magnetism (4) sci

Electricity and magnetism, emphasizing the basic electromagnetic laws of Gauss, Ampere, and Faraday. Maxwell's equations and electromagnetic waves, interference, and diffraction. This course has a laboratory component.

PHYS 123: Physics and Frontiers I - Mechanics (4) sci

The Newtonian dynamics of a particle and of rigid bodies. Energy, momentum, and angular momentum conservation with applications. A selection of special frontier topics as time permits, including fractals and chaos, special relativity, fluid mechanics, cosmology, quantum mechanics. This course has a laboratory component. Admission to this course is by invitation only. Students may earn credit for only one of the following courses: PHYS 115, PHYS 121, PHYS 123.

PHYS 124: Physics and Frontiers II - Electricity and Magnetism (4) sci

Time-independent and time-dependent electric and magnetic fields. The laws of Coulomb, Gauss, Ampere, and Faraday. Microscopic approach to dielectric and magnetic materials. Introduction to the usage of vector calculus; Maxwell's equations in integral and differential form. The role of special relativity in electromagnetism. Electromagnetic radiation. This course has a laboratory component.

DSCI 330: Cognition and Computation (3) ai

An introduction to (1) theories of the relationship between cognition and computation; (2) computational models of human cognition (e.g. models of decision-making or concept creation); and (3) computational tools for the study of human cognition. All three dimensions involve data science: theories are tested against archives of brain imaging data; models are derived from and tested against datasets of e.g., financial decisions (markets), legal rulings and findings (juries, judges, courts), legislative actions, and healthcare decisions; computational tools aggregate data and operate upon it analytically, for search, recognition, tagging, machine learning, statistical description, and hypothesis testing.

DSCI 351: Exploratory Data Science (3) ai

In this course, we will learn data science and analysis approaches to identify statistically significance relationships and better model and predict the behavior of these systems. We will assemble and explore real-world datasets, perform clustering and pair plot analyses to investigate correlations, and logistic regression will be employed to develop associated predictive models. Results will be interpreted, visualized and discussed. We will introduce basic elements of statistical analysis using R Project open source software for exploratory data analysis and model development. R is an open-source software project with broad abilities to access machine-readable open-data resources, data cleaning and munging functions, and a rich selection of statistical packages, used for data analytics, model development and prediction. This will include an introduction to R data types, reading and writing data, looping, plotting and regular expressions, so that one can start performing variable transformations for linear fitting and developing structural equation models, while exploring for statistically significant relationships.

ECON 326: Econometrics (4)

Hotel rooms at a ski resort are expensive in the winter when the hotel is full, and they are cheap in the summer when it is empty. Despite this, you shouldn't conclude that you can sell more hotel rooms by raising the price! Econometrics is the branch of economics that uses statistical tools to investigate data and estimate the correct causal effects, even in complicated observational data like the above example. In this course we study the theory behind regression analysis, develop techniques for building flexible models, and learn cutting-edge strategies for isolating causal impacts. This hands-on class will focus on the intuition and application of these models, rather than pure theory. It will provide students with tools they can use professionally and in their own research. Topics covered include multivariate regression, probit models, fixed effects, difference-in-differences, synthetic controls, GMM, instrumental variables, regression discontinuity, and more. Though students will leave with the ability to program statistical models, no programming experience is assumed.

ECON 327: Advanced Econometrics (3)

This class builds on the foundations of applied regression analysis developed in ECON 326. The goal of the class is to equip students with the tools to conduct a causal analysis of a hypothesis in a variety of settings. Topics will include causality, panel and time series data, instrumental variables and quasi-experiments, semi- and non-parametric methods, and treatment evaluation. Offered as ECON 327 and ECON 427.

MKMR 310: Marketing Analytics (3)

To appreciate, design, and implement data-based marketing studies for extracting valid and useful insights for managerial action that yield attractive ROI, five essential processes are emphasized: (a) making observations about customers, competitors, and markets, (b) recognizing, formulating, and refining meaningful problems as opportunities for managerial action, (c) developing and specifying testable models of marketing phenomenon, (d) designing and implementing research designs for valid data, and (e) rigorous analysis for uncovering and testing patterns and mechanisms from marketing data.

MPHP 301: Introduction to Epidemiology (3)

This course begins with the exploration of the history, philosophy and uses of epidemiology. It then moves to the basic descriptive functions of epidemiology such as condition, frequency and severity. Data is used to describe qualitatively and quantitatively diseases and injuries in a population. Applications include identifying patterns of disease and injury over time and geography The course them moves to analytical epidemiology with focus on estimation, inference, bias, confounding and adjustment in the determination of what factors are associated with, or cause disease or injury. The different kinds of study designs are introduced including ecologic, cross-sectional, case-control, retrospective and prospective cohort, and experimental designs such as clinical trials. Students are introduced to evidence-based public health with analysis of harm, benefit and cost, and intervention effectiveness. The course concludes with applications to policy, covering outbreak investigation/testing/screening, public health policy and special epidemiologic applications including molecular and genetic epidemiology, environmental health and safety, unintentional injury and violence prevention and behavioral sciences.

MPHP 426: An Introduction to GIS for Health and Social Sciences (3)

This course is designed to give students a first exposure to understanding how GIS is integral to understanding a wide variety of public health problems. It introduces students to current spatial approaches in health research and provides a set of core skills that will allow students to apply these techniques toward their own interests. Subject matter will include chronic diseases, infectious diseases, and vectored diseases examples. Other topics related to social determinants of health and current events (e.g., violence, overdoses, disaster and homelessness) will also be incorporated. Students will be exposed to different types of data and different applications of these data (for example, hospitals, police departments), enabling them to think 'outside the box' about how GIS can be utilized to solve real-world problems. Students will learn classic mapping and hotspot techniques. In addition, they will be introduced to novel ways to collect geospatial field data using online sources (Google Street View), primary data collection (spatial video) and mixed method approaches (spatial video geonarratives), all of which represent the cutting edge of spatial epidemiology.

OPRE 207: Statistics for Business and Management Science I (3) math

Organizing and summarizing data. Mean, variance, moments. Elementary probability, conditional probability. Commonly encountered distributions including binomial. Poisson, uniform, exponential, normal distributions. Central limit theorem. Sample quantities, empirical distributions. Reference distributions (chi-square, z-, t-, F-distributions). Point and interval estimation: hypothesis tests.