CSDS 132: Introduction to Programming in Java (800/10014)
W 03:20-04:10 PM Feb 01-May 07
Ozguner, O
An introduction to 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 132: Introduction to Programming in Java (801/10032)
R 01:00-01:50 PM Feb 01-May 07
Ozguner, O
An introduction to 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 132: Introduction to Programming in Java (802/10033)
W 04:25-05:15 PM Feb 01-May 07
Ozguner, O
An introduction to 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 132: Introduction to Programming in Java (803/10034)
R 02:30-03:20 PM Feb 01-May 07
Ozguner, O
An introduction to 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 132: Introduction to Programming in Java (804/10035)
R 11:30-12:20 PM Feb 01-May 07
Ozguner, O
An introduction to 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 132: Introduction to Programming in Java (805/10036)
W 05:30-06:20 PM Feb 01-May 07
Ozguner, O
An introduction to 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 132: Introduction to Programming in Java (806/11482)
R 08:30-09:20 AM Feb 01-May 07
Ozguner, O
An introduction to 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 132: Introduction to Programming in Java (807/11483)
F 08:25-09:15 AM Feb 01-May 07
Ozguner, O
An introduction to 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 132: Introduction to Programming in Java (808/11538)
MWF 02:15-03:05 PM Feb 01-May 07
Ozguner, O
The class is mostly remote with one optional in-person lecture per week. An equivalent online lecture will be provided for students who want to take the class fully remotely.
CSDS 133: Introduction to Data Science and Engineering for Majors (800/10745)
TR 05:30-06:45 PM Feb 01-May 07
Omeike, S
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 233: Introduction to Data Structures (800/10005)
TR 04:00-05:15 PM Feb 01-May 07
Rabinovich, M
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 275: Fundamentals of Robotics (800/10740)
TR 10:00-11:15 AM Feb 01-May 07
Lee, G
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.
Offered as CSDS 275 and ECSE 275.
CSDS 281: Logic Design and Computer Organization (800/10215)
TR 10:00-11:15 AM Feb 01-May 07
Gurkan Cavusoglu, E
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.
Offered as CSDS 281 and ECSE 281.
CSDS 281: Logic Design and Computer Organization (801/10216)
T 01:00-01:50 PM Feb 01-May 07
Gurkan Cavusoglu, E
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.
Offered as CSDS 281 and ECSE 281.
CSDS 281: Logic Design and Computer Organization (802/10217)
W 10:35-11:25 AM Feb 01-May 07
Gurkan Cavusoglu, E
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.
Offered as CSDS 281 and ECSE 281.
CSDS 281: Logic Design and Computer Organization (803/10218)
W 11:40-12:30 PM Feb 01-May 07
Gurkan Cavusoglu, E
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.
Offered as CSDS 281 and ECSE 281.
CSDS 290: Introduction to Computer Game Design and Implementation (800/10219)
TR 08:30-09:45 AM Feb 01-May 07
Fu, M
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.
Offered as CSDS 290 and ECSE 290.
CSDS 297: Linux Scripting (801/10088)
W 06:05-06:55 PM Feb 01-May 07, W 07:00-08:40 PM Feb 01-May 07, W 08:40-09:30 PM Feb 01-May 07
Loui, R
Special topics in Computer and Data Science.
CSDS 297: Intro to C/C++ Programming (800/10091)
MWF 01:00-02:15 PM Jan 08-Jan 29
Ozguner, O
Special topics in Computer and Data Science.
CSDS 302: Discrete Mathematics (800/10882)
TR 10:00-11:15 AM Feb 01-May 07
Xu, S
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 310: Algorithms (800/10003)
MWF 10:35-11:25 AM Feb 01-May 07
Liberatore, V
This section for CS majors only.
CSDS 310: Algorithms (801/10038)
MW 12:45-02:00 PM Feb 01-May 07
Ozguner, O
Fundamentals in algorithm design and analysis. 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.
CSDS 310N: Algorithms (800/10002)
MWF 10:35-11:25 AM Feb 01-May 07
Liberatore, V
Fundamentals in algorithm design and analysis. 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.
CSDS 310N: Algorithms (801/10039)
MW 12:45-02:00 PM Feb 01-May 07
Ozguner, O
Fundamentals in algorithm design and analysis. 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.
CSDS 312: Introduction to Data Science Systems (800/10029)
MW 05:30-06:45 PM Feb 01-May 07
Gajurel, S
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 314: Computer Architecture (800/10220)
MWF 04:25-05:15 PM Feb 01-May 07
Huang, M
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 (800/10008)
TR 01:00-02:15 PM Feb 01-May 07
Wang, A
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 (800/10009)
TR 01:00-02:15 PM Feb 01-May 07
Wang, A
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 337: Compiler Design (800/10028)
W 04:25-05:15 PM Feb 01-May 07, T 07:00-09:30 PM Feb 01-May 07
Chaudhary, V
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 (800/10027)
TR 04:00-05:15 PM Feb 01-May 07
Loui, R
This section for CS majors only.
CSDS 338: Intro to Operating Systems and Concurrent Programming (801/10037)
W 05:30-06:20 PM Feb 01-May 07
Loui, R
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 (800/10040)
TR 04:00-05:15 PM Feb 01-May 07
Loui, R
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 (801/10041)
W 05:30-06:20 PM Feb 01-May 07
Loui, R
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 341: Introduction to Database Systems (800/10030)
TR 02:30-03:45 PM Feb 01-May 07
Ozsoyoglu, G; Ozsoyoglu, Z
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.
Offered as CSDS 341 and CSDS 341N.
CSDS 341N: Introduction to Database Systems (800/10031)
TR 02:30-03:45 PM Feb 01-May 07
Ozsoyoglu, G; Ozsoyoglu, Z
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.
Offered as CSDS 341 and CSDS 341N.
Introduction to different classes of automata and their correspondence to different classes of formal languages and grammars, computability, complexity and various proof techniques.
Offered as CSDS 343 and MATH 343.
CSDS 345: Programming Language Concepts (800/10011)
MWF 03:20-04:10 PM Feb 01-May 07
Connamacher, H
This section is for CS majors only.
CSDS 345N: Programming Language Concepts (800/10012)
MWF 03:20-04:10 PM Feb 01-May 07
Connamacher, H
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.
Offered as CSDS 345 and CSDS 345N.
CSDS 356: Data Privacy (800/10006)
MW 04:50-06:05 PM Feb 01-May 07
Ayday, E
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.
Offered as CSDS 356 and CSDS 456.
CSDS 376: Mobile Robotics (800/10741)
MW 04:50-06:05 PM Feb 01-May 07
Newman, W
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.
Offered as CSDS 376 and ECSE 376.
CSDS 377: Introduction to Connected Devices (800/10221)
MW 04:30-05:45 PM Feb 01-May 07
Barendt, N
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. Students learn about current architectures, languages, and technologies, such as Pub/Sub (MQTT), Python, Objective-C, Python Django, JavaScript, HTML/CSS, and Bluetooth Low Energy.
Offered as CSDS 377 and ECSE 377.
CSDS 386: Quantum Computing, Information, and Devices (800/11447)
MW 03:20-04:35 PM Feb 01-May 07
Berezovsky, J; Papachristou, C; Szarek, S; Xu, S
Assigned class time slots subject to change. If you are considering enrolling in this course and have a potential schedule conflict, please contact the instructor directly.
CSDS 391: Introduction to Artificial Intelligence (800/10018)
TR 10:00-11:15 AM Feb 01-May 07
Ray, S
This section for CS majors only.
CSDS 393: Software Engineering (800/10020)
MW 04:50-06:05 PM Feb 01-May 07
Xiao, X
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.
Offered as CSDS 393, CSDS 393N, and CSDS 493.
CSDS 393N: Software Engineering (800/10021)
MW 04:50-06:05 PM Feb 01-May 07
Xiao, X
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.
Offered as CSDS 393, CSDS 393N, and CSDS 493.
CSDS 395: Senior Project in Computer Science (800/10026)
MWF 11:40-12:30 PM Feb 01-May 07
Xu, S
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.
CSDS 396: Independent Projects (100/11948)
Chaudhary, V
Independent projects in Computer and Data Science.
CSDS 396: Independent Projects (101/12036)
Xu, S
Independent projects in Computer and Data Science.
CSDS 396: Independent Projects (102/12051)
Koyuturk, M
Independent projects in Computer and Data Science.
CSDS 397: Linux Scripting (801/10089)
W 06:05-06:55 PM Feb 01-May 07, W 07:00-08:40 PM Feb 01-May 07, W 08:40-09:30 PM Feb 01-May 07
Loui, R
Special topics in Computer and Data Science.
CSDS 397: Intro to C/C++ Programming (800/10090)
MWF 01:00-02:15 PM Jan 08-Jan 29
Ozguner, O
Special topics in Computer and Data Science.
CSDS 397: Data Cleaning and Wrangling (802/10781)
MTWRF 05:00-05:50 PM Jan 08-Jan 29
Loui, R
Special topics in Computer and Data Science.
CSDS 397: Special Topics (803/10999)
Xu, S
Special topics in Computer and Data Science.
CSDS 400T: Graduate Teaching I (800/10134)
Liberatore, V
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. Recommended preparation: Ph.D. student in CSDS department.
CSDS 425: Computer Networks I (800/10010)
TR 01:00-02:15 PM Feb 01-May 07
Wang, A
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. Recommended preparation: EECS/CSDS/ECSE 338.
CSDS 427: Internet Security and Privacy (800/10004)
TR 01:00-02:15 PM Feb 01-May 07
Rabinovich, M
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 433: Database Systems (800/10025)
TR 08:30-09:45 AM Feb 01-May 07
Wu, Y
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. Recommended preparation: MATH 304.
CSDS 435: Data Mining (800/10024)
T 04:00-06:30 PM Feb 01-May 07
Ye, F
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 442: Causal Learning from Data (800/10017)
MWF 02:15-03:05 PM Feb 01-May 07
Podgurski, H
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 448: Smartphone Security (800/10019)
TR 02:30-03:45 PM Feb 01-May 07
Xiao, X
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 456: Data Privacy (800/10007)
MW 04:50-06:05 PM Feb 01-May 07
Ayday, E
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.
Offered as CSDS 356 and CSDS 456.
CSDS 459: Bioinformatics for Systems Biology (800/10015)
MW 12:45-02:00 PM Feb 01-May 07
Koyuturk, M
Description of omic data (biological sequences, gene expression, protein-protein interactions, protein-DNA interactions, protein expression, metabolomics, biological ontologies), regulatory network inference, topology of regulatory 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.
Offered as CSDS 459 and SYBB 459.
CSDS 476: Mobile Robotics (800/10742)
MW 04:50-06:05 PM Feb 01-May 07
Newman, W
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.
Offered as CSDS 476 and ECSE 476.
CSDS 477: Advanced Algorithms (800/10001)
MWF 11:40-12:30 PM Feb 01-May 07
Liberatore, V
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 (800/10981)
TR 08:30-09:45 AM Feb 01-May 07
Thomas, P
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. Recommended preparation: MATH 223 and MATH 224 or BIOL 300 and BIOL 306.
Offered as BIOL 378, COGS 378, MATH 378, BIOL 478, CSDS 478, EBME 478, ECSE 478, MATH 478 and NEUR 478.
CSDS 486: Quantum Computing, Information, and Devices (800/11451)
MW 03:20-04:35 PM Feb 01-May 07
Berezovsky, J; Papachristou, C; Szarek, S; Xu, S
Assigned class time slots subject to change. If you are considering enrolling in this course and have a potential schedule conflict, please contact the instructor directly.
CSDS 489: Robotics I (800/10743)
MW 12:45-02:00 PM Feb 01-May 07
Newman, W
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. Recommended preparation: EMAE 181.
Offered as CSDS 489, ECSE 489 and EMAE 489.
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 (800/10022)
MW 04:50-06:05 PM Feb 01-May 07
Xiao, X
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.
Offered as CSDS 393, CSDS 393N, and CSDS 493.
CSDS 500: CSDS Colloquium (800/10135)
TR 11:30-12:30 PM Feb 01-May 07
Rabinovich, M
Seminars on current topics in Computer and Data Science.
CSDS 500T: Graduate Teaching II (800/10136)
Liberatore, V
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, running recitation sessions, providing laboratory assistance. Recommended preparation: Ph.D. student in CSDS department.
CSDS 600: CyberAI: AI in Cybersecurity (800/10087)
W 03:20-05:50 PM Feb 01-May 07
Ye, F
CSDS 600: Algorithmic Fairness (801/10139)
MWF 10:35-11:25 AM Feb 01-May 07
Podgurski, H
This course is open to both undergraduate and graduate students. The topic is how software, particularly AI/machine learning software, can unintentionally contribute to bias and discrimination against certain groups of people, such as minorities, women, religious groups, LBTGQ persons, and the economically disadvantaged, and what can be done to remedy this problem. The course will cover case studies of actual algorithmic bias; alternative types and definitions of algorithmic bias and fairness; detection and measurement of algorithmic bias; causes of algorithmic bias; and technical and nontechnical remedies and their limitations. The course will be taught as a seminar with the instructor and students presenting assigned research papers.
CSDS 600: Computational Perception (803/10793)
TR 04:00-05:15 PM Feb 01-May 07
Lewicki, M
CSDS 600: Special Topics (804/11001)
Xu, S
CSDS 600: Intro to Connected Devices (805/11674)
MW 04:30-05:45 PM Feb 01-May 07
Barendt, N
CSDS 600T: Graduate Teaching III (800/10137)
Liberatore, V
This course will provide 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 running recitation sessions, providing laboratory assistance, developing teaching or lecture materials presenting lectures. Recommended preparation: Ph.D. student in CSES department.