CSDS 101: The Digital Revolution: Computer and Data Science For All (100/8432)
MW 12:35-01:50 PM Aug 24-Dec 04
Watkins, A
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. The recommended pre-requisite is comfort with high school algebra.
CSDS 101: The Digital Revolution: Computer and Data Science For All (110/8436)
W 03:10-05:10 PM Aug 24-Dec 04
Watkins, A
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. The recommended pre-requisite is comfort with high school algebra.
CSDS 101: The Digital Revolution: Computer and Data Science For All (111/14016)
W 06:30-08:30 PM Aug 24-Dec 04
Watkins, A
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. The recommended pre-requisite is comfort with high school algebra.
CSDS 132: Programming in Java (100/7481)
MWF 02:05-02:55 PM Aug 24-Dec 04
Connamacher, H
This Lecture and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (110/7482)
T 08:55-09:45 AM Aug 24-Dec 04
Connamacher, H
This Recitation and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (111/7483)
T 10:00-10:50 AM Aug 24-Dec 04
Connamacher, H
This Recitation and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (113/7508)
T 11:30-12:20 PM Aug 24-Dec 04
Connamacher, H
This Recitation and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (114/8252)
T 01:00-01:50 PM Aug 24-Dec 04
Connamacher, H
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#. Note: Credit given for only one (1) of CSDS 132 or CSDS 134.
Offered as CSDS 132 and ECSE 132.
CSDS 133: Introduction to Data Science (100/8008)
TR 11:30-12:45 PM Aug 24-Dec 04
Bruckman, L
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 134: Programming in Python (100/14041)
MWF 02:05-02:55 PM Aug 24-Dec 04
Jensen, E
This course offers a comprehensive introduction to computer science and programming through the Python language, emphasizing algorithmic problem solving and modern programming practices. Students begin with Python's history, philosophy, and basic constructs such as variables, primitive types, and simple input/output, then progress to complex data structures, control flow, functions, recursion, and string processing. The course develops object-oriented programming skills including classes, inheritance, and polymorphism, while also covering Python's memory model, exception handling, modular application design, and file I/O. Students gain experience with numerical computing using NumPy, program correctness through testing, debugging, and profiling, and data analysis with Pandas and visualization libraries such as Matplotlib and Seaborn. Advanced topics include anonymous functions, reflection, concurrency, and professional responsibilities in software development, preparing students for further study and practical application of Python in diverse domains. Note: Credit given for only one (1) of CSDS 132 or CSDS 134.
CSDS 134: Programming in Python (111/14043)
R 10:00-10:50 AM Aug 24-Dec 04
Jensen, E
This course offers a comprehensive introduction to computer science and programming through the Python language, emphasizing algorithmic problem solving and modern programming practices. Students begin with Python's history, philosophy, and basic constructs such as variables, primitive types, and simple input/output, then progress to complex data structures, control flow, functions, recursion, and string processing. The course develops object-oriented programming skills including classes, inheritance, and polymorphism, while also covering Python's memory model, exception handling, modular application design, and file I/O. Students gain experience with numerical computing using NumPy, program correctness through testing, debugging, and profiling, and data analysis with Pandas and visualization libraries such as Matplotlib and Seaborn. Advanced topics include anonymous functions, reflection, concurrency, and professional responsibilities in software development, preparing students for further study and practical application of Python in diverse domains. Note: Credit given for only one (1) of CSDS 132 or CSDS 134.
CSDS 134: Programming in Python (112/14044)
R 11:30-12:20 PM Aug 24-Dec 04
Jensen, E
This course offers a comprehensive introduction to computer science and programming through the Python language, emphasizing algorithmic problem solving and modern programming practices. Students begin with Python's history, philosophy, and basic constructs such as variables, primitive types, and simple input/output, then progress to complex data structures, control flow, functions, recursion, and string processing. The course develops object-oriented programming skills including classes, inheritance, and polymorphism, while also covering Python's memory model, exception handling, modular application design, and file I/O. Students gain experience with numerical computing using NumPy, program correctness through testing, debugging, and profiling, and data analysis with Pandas and visualization libraries such as Matplotlib and Seaborn. Advanced topics include anonymous functions, reflection, concurrency, and professional responsibilities in software development, preparing students for further study and practical application of Python in diverse domains. Note: Credit given for only one (1) of CSDS 132 or CSDS 134.
CSDS 134: Programming in Python (113/14046)
R 01:00-01:50 PM Aug 24-Dec 04
Jensen, E
This course offers a comprehensive introduction to computer science and programming through the Python language, emphasizing algorithmic problem solving and modern programming practices. Students begin with Python's history, philosophy, and basic constructs such as variables, primitive types, and simple input/output, then progress to complex data structures, control flow, functions, recursion, and string processing. The course develops object-oriented programming skills including classes, inheritance, and polymorphism, while also covering Python's memory model, exception handling, modular application design, and file I/O. Students gain experience with numerical computing using NumPy, program correctness through testing, debugging, and profiling, and data analysis with Pandas and visualization libraries such as Matplotlib and Seaborn. Advanced topics include anonymous functions, reflection, concurrency, and professional responsibilities in software development, preparing students for further study and practical application of Python in diverse domains. Note: Credit given for only one (1) of CSDS 132 or CSDS 134.
CSDS 221: Full Stack Web Development (100/8101)
M 06:25-08:55 PM Aug 24-Dec 04
Izadnegahdar, D
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 221: Full Stack Web Development (110/14093)
W 06:25-08:25 PM Aug 24-Dec 04
Izadnegahdar, D
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 225: Current Issues in Artificial Intelligence, For Better or Worse (100/8595)
MW 03:10-04:25 PM Aug 24-Dec 04
Loui, R
An exploratory seminar for technical and non-technical students on autonomous systems and automatic decision-making software. Prompt engineering will be examined, as well as systems and policies that detect, mitigate or combat AI. This course emphasizes technology and policy. Within assistive, generative, and proxy decision deployments, we consider recurring technical problems such as non-determinism, robustness, risk, bias, stale and erroneous data, small worlds and insufficiently expressive features, overfitting, polysemy, explanation, and verification. Perspectives include engineering problem-solving, law, policy, and management. National concerns of labor, defense technology, and education also kept in focus. The class is open to all majors, but students should have a strong background in engineering, science, or computer technology.
CSDS 233: Introduction to Data Structures (100/7203)
TR 01:00-02:15 PM Aug 24-Dec 04
Watkins, A
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. Programming assignments can be completed in either java or python.
Offered as CSDS 233 and ECSE 233.
CSDS 236: The C/C++ Programming Languages (100/8591)
W 03:10-04:25 PM Aug 24-Dec 04
Shkurti, T
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, preprocessor directives, and others as time permits.
CSDS 237: The Python Programming Language (100/9219)
T 04:15-05:30 PM Aug 24-Dec 04
Connamacher, H
This course provides an in-depth knowledge of the core concepts and features of programming in Python: Python language constructs, data structures, object-oriented programming, working with files and databases, interacting with the web, NumPy and Pandas libraries for data analysis, Matplotlib and Seaborn libraries for data visualization, testing, and user-interface design. The course will also provide an introduction to libraries and frameworks for advanced programming in computer vision, web development, machine learning, and AI. Note: Students may not earn credit for both CSDS 134 and CSDS 237.
CSDS 260: User Experience for Software Designers (100/14187)
MW 04:40-05:55 PM Aug 24-Dec 04
Loui, R
An introduction to main concepts and current issues in software user experience. Intended for majors and non-majors. Will include readings, discussion, critique of sites, proposals for improvement, and crowdsourced evaluation of those proposals. Focus is mainly on challenges to user experience from the technical side, recognizing that business and marketing priorities often intrude. Design clinic, focus group, Wizard of Oz testing, improved empathy, and how one might argue technical merits to product management. Agile methods, latency, legacy, feature creep, aggressive AI, user agency, coding priorities, coding for spec, frameworks, UI look and feel, security, and other technical concerns will be studied as contributors to UX.
CSDS 281: Logic Design and Computer Organization (100/7908)
TR 10:00-11:15 AM Aug 24-Dec 04
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 (110/7909)
T 01:00-01:50 PM Aug 24-Dec 04
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 (111/7910)
W 10:25-11:15 AM Aug 24-Dec 04
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 (112/7911)
W 11:30-12:20 PM Aug 24-Dec 04
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 293: Software Craftsmanship (100/8332)
MW 03:10-04:25 PM Aug 24-Dec 04
Liberatore, V
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 293: Software Craftsmanship (110/8340)
T 02:50-04:40 PM Aug 24-Dec 04
Liberatore, V
Java
CSDS 293: Software Craftsmanship (111/8344)
R 02:50-04:40 PM Aug 24-Dec 04
Liberatore, V
Java
CSDS 293: Software Craftsmanship (112/14302)
W 11:45-01:35 PM Aug 24-Dec 04
Liberatore, V
Java
CSDS 293: Software Craftsmanship (113/14303)
R 03:10-05:00 PM Aug 24-Dec 04
Liberatore, V
Java
CSDS 302: Discrete Mathematics (100/7275)
TR 08:30-09:45 AM Aug 24-Dec 04
Kuian, M
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 302: Discrete Mathematics (101/7679)
MW 08:55-10:10 AM Aug 24-Dec 04
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 305: Files, Indexes and Access Structures for Big Data (100/14048)
TR 02:45-04:00 PM Aug 24-Dec 04
Manasseh, C
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 (100/8356)
MW 11:30-12:20 PM Aug 24-Dec 04
Ozguner, O
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.
CSDS 310: Algorithms (110/8360)
F 11:30-12:20 PM Aug 24-Dec 04
Ozguner, O
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.
CSDS 310: Algorithms (112/8364)
F 11:30-12:20 PM Aug 24-Dec 04
Ozguner, O
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.
CSDS 310: Algorithms (114/8372)
F 11:30-12:20 PM Aug 24-Dec 04
Ozguner, O
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.
CSDS 310: Algorithms (115/8376)
F 11:30-12:20 PM Aug 24-Dec 04
Ozguner, O
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.
CSDS 310: Algorithms (118/8543)
F 11:30-12:20 PM Aug 24-Dec 04
Ozguner, O
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.
CSDS 313: Introduction to Data Analysis (100/7810)
MW 12:35-01:50 PM Aug 24-Dec 04
Li, J
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.
CSDS 323: Numerical Algorithms for Machine Learning (100/14049)
MW 12:35-01:50 PM Aug 24-Dec 04
Koyuturk, M
An introduction to numerical algorithms that pertain to important problems in machine learning, data science, and artificial intelligence, organized into four modules: 1) Basic topics in numerical analysis, floating point computation, rounding, conditioning, and stability. Numerical solution of equations, curve fitting, and polynomial interpolation with example applications in machine learning. 2) Numerical linear algebra in the context of data science and artificial intelligence, sparse matrix operations, solutions to linear systems, least-squares systems, regularization, linear regression, eigen-decompositions and their relation to dimensionality reduction. Singular value decomposition, non-linear matrix factorization, matrix completion, with applications to recommendation systems and link prediction. Iterative methods for solving linear systems, application of matrix computations in information retrieval and machine learning. 3) Optimization for training machine learning algorithms, duality, convexity, non-linear regression, gradient decent, training of neural networks, back-propagation, stochastic gradient descent, regularization, variance reduction. 4) Graphs and spectral analysis in graph machine learning, graph Laplacian, eigenvalues of a graph, random walks and graph convolution, graph embedding, spectral filters.
Offered as CSDS 323 and CSDS 423.
CSDS 325: Computer Networks I (100/7210)
TR 01:00-02:15 PM Aug 24-Dec 04
Allman, M
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 330: Introduction to Artificial Intelligence (100/7639)
TR 10:00-11:15 AM Aug 24-Dec 04
Lewicki, M
This course is an introduction to artificial intelligence. We will study the concepts that underlie intelligent systems. Topics covered include problem solving with search, constraint satisfaction, adversarial games, knowledge representation and reasoning using propositional and first order logic, reasoning under uncertainty, introduction to machine learning, automated planning, reinforcement learning and natural language processing.
CSDS 335: Data Mining for Big Data (100/8555)
TR 04:15-05:30 PM Aug 24-Dec 04
Ma, J
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.
In the first part of the course, students will develop a basic understanding of the basic concepts in data mining such as frequent pattern mining, association rule mining, basic techniques for data preprocessing such as normalization, regression, and classic matrix decomposition methods such as SVD, LU, and QR decompositions. In the second part of the course, students will develop a basic understanding of classification and clustering and be able to apply classic methods such as k-means, hierarchical clustering methods, nearest neighbor methods, association based classifiers. In the third part of the course, students will have a chance to study more advanced data mining applications such as feature selection in high-dimensional data, dimension reduction, and mining biological datasets.
CSDS 337: Compiler Design (100/9103)
MWF 10:25-11:15 AM Aug 24-Dec 04
Liberatore, 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. Recommended preparation: CSDS 236 or familiarity with the C programming language.
Offered as CSDS 337 and ECSE 337.
CSDS 337: Compiler Design (110/9123)
W 11:30-12:20 PM Aug 24-Dec 04
Liberatore, 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. Recommended preparation: CSDS 236 or familiarity with the C programming language.
Offered as CSDS 337 and ECSE 337.
CSDS 338: Intro to Operating Systems and Concurrent Programming (100/7594)
TR 02:45-04:00 PM Aug 24-Dec 04
Krupp, B
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 and ECSE 338.
CSDS 338: Intro to Operating Systems and Concurrent Programming (101/7595)
W 02:05-02:55 PM Aug 24-Dec 04
Krupp, B
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 and ECSE 338.
CSDS 340: Introduction to Machine Learning (100/8129)
MWF 09:20-10:10 AM Aug 24-Dec 04
Xu, K
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, 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 an introduction to algorithms for machine learning and their implementation in the context of big data. We will study different learning settings, the different algorithms that have been developed for these settings, and learn about how to implement these algorithms and evaluate their behavior in practice. We will also discuss dealing with noise, missing values, scalability properties and talk about tools and libraries available for these methods. Finally, we will discuss the potential biases of machine learning algorithms when used for decision making and how to mitigate them to improve the fairness of the decisions.
At the end of the course, you should be able to:
-Understand when to use machine learning algorithms;
-Understand, represent and formulate the learning problem;
-Apply the appropriate algorithm(s) or tools, with an understanding of the tradeoffs involved including scalability and robustness;
-Correctly evaluate the behavior of the algorithm when solving the problem.
-Identify potential sources of bias in a trained machine learning model and how to mitigate them.
CSDS 341: Introduction to Database Systems (100/7612)
MW 03:10-04:25 PM Aug 24-Dec 04
Wu, Y
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 344: Computer Security (100/8575)
TR 08:30-09:45 AM Aug 24-Dec 04
Krupp, B
General types of security attacks; approaches to prevention; secret key and public key cryptography; message authentication and hash functions; digital signatures, authentication, and authorization; network protocol vulnerabilities; information gathering; forensics; password attacks; spoofing; denial of service attacks; buffer overflows; viruses, worms, etc., principles of secure software design; pen testing; threat modeling; access control; network and system hardening; least privilege; storing secrets; firewalls; intrusions; auditing; mobile security; and privacy. Recommended preparation: CSDS 293, CSDS 325 and CSDS 338.
Offered as CSDS 344 and CSDS 444.
CSDS 347: Responsible AI Engineering (100/14188)
TR 02:45-04:00 PM Aug 24-Dec 04
Biswas, S
The deployment of modern AI systems presents novel challenges, including bias amplification, ensuring safe autonomy, addressing hallucinations, and more. This course teaches engineering AI-enabled software systems that adhere to key requirements of responsible AI: fairness, robustness, explainability, and safety. In addition to optimizing for accuracy, future software engineers and data scientists would need to develop tools and methodologies for testing, verifying, and maintaining machine learning components to meet these principles. The course thus explores evaluation and mitigation strategies designed to ensure the responsible use of ML models, deep neural networks, and generative AI in safety-critical applications. Students will engage with recent research in responsible AI, gaining insights into the latest advancements and challenges in the field. The course also includes a hands-on project, enabling students to apply their knowledge to a real-world problem that aligns with responsible AI.
Offered as CSDS 347 and CSDS 447.
CSDS 356: Data Privacy (100/14640)
TR 01:00-02:15 PM Aug 24-Dec 04
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 365: Computer Vision (100/14189)
MW 04:40-05:55 PM Aug 24-Dec 04
Yin, Y
Computer vision is the study of enabling machines to understand the visual world (i.e., images and videos), and has applications in content based search, healthcare, autonomous vehicles, etc., with visual recognition tasks like image classification, object detection, and segmentation being core to many of those applications. Over the past decade, deep learning has greatly advanced the state-of-the-art in computer vision research. This course will dive into the fundamentals of deep learning for computer vision. Students will learn to implement deep neural networks and learn about the state-of-the-art computer vision research in a broad range of topics including object recognition, image segmentation, image representation and generation, and 3D vision.
Offered as CSDS 365, CSDS 465, ECSE 365, and ECSE 465.
CSDS 375: Designing High Performant Systems for AI (100/14190)
TR 10:00-11:15 AM Aug 24-Dec 04
Kuppannagari, S
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.
Offered as CSDS 375 and CSDS 475.
CSDS 383: Software Architecture (100/8571)
MW 04:40-05:55 PM Aug 24-Dec 04
Jimenez Segovia, L
Software architecture defines the technology vision and overarching technology strategy that allow organizations to achieve their business objectives. Students enrolled in this software architecture course will learn, through real-world study cases and coding exercises, about practical software architecture concepts that will allow them to support the definition of the technology vision and technology strategy of the organizations in which they participate.
CSDS 390: Advanced Game Development Project (100/7912)
TR 08:30-09:45 AM Aug 24-Dec 04
Fu, M
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.
Offered as CSDS 390, ECSE 390, CSDS 487, and ECSE 487.
CSDS 393: Software Engineering (100/7215)
MW 12:35-01:50 PM Aug 24-Dec 04
Podgurski, H
Introduction to software engineering; software lifecycle models; development team organization and project management; requirements analysis and specification techniques; software design techniques; implementation and programming practices; software testing and validation techniques; software maintenance practices; software engineering for and with AI; software engineering ethics and open source. Undergraduates work in teams to propose, design, implement, and validate a significant software system. Graduate students complete additional advanced tasks on assignments and project demos (e.g., deeper analysis, advanced features, and more systematic testing).
Offered as CSDS 393 and CSDS 493.
CSDS 395: Senior Project in Computer Science (100/7507)
TR 11:30-12:45 PM Aug 24-Dec 04
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/14869)
Watkins, A
Independent projects in Computer and Data Science.
CSDS 396: Independent Projects (101/15004)
Biswas, S
Independent projects in Computer and Data Science.
CSDS 396: Independent Projects (102/15178)
Krupp, B
Independent projects in Computer and Data Science.
CSDS 396: Independent Projects (103/15211)
Krupp, B
Independent projects in Computer and Data Science.
CSDS 397: Efficient Deep Learning (100/14572)
MW 06:25-07:40 PM Aug 24-Dec 04
Datta, G
Special topics in Computer and Data Science.
CSDS 398: Senior Project in Data Science (100/9107)
TR 11:30-12:45 PM Aug 24-Dec 04
Xu, S
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.
CSDS 400T: Graduate Teaching I (100/7926)
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 401: Foundations of Computer Science (500/9151)
Xu, S
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 (100/7923)
MW 08:55-10:10 AM Aug 24-Dec 04
Jensen, E
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.
Offered as CSDS 410 and OPRE 454.
CSDS 413: Introduction to Data Analysis (100/8559)
MW 12:35-01:50 PM Aug 24-Dec 04
Li, J
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.
CSDS 423: Numerical Algorithms for Machine Learning (100/14077)
MW 12:35-01:50 PM Aug 24-Dec 04
Koyuturk, M
An introduction to numerical algorithms that pertain to important problems in machine learning, data science, and artificial intelligence, organized into four modules: 1) Basic topics in numerical analysis, floating point computation, rounding, conditioning, and stability. Numerical solution of equations, curve fitting, and polynomial interpolation with example applications in machine learning. 2) Numerical linear algebra in the context of data science and artificial intelligence, sparse matrix operations, solutions to linear systems, least-squares systems, regularization, linear regression, eigen-decompositions and their relation to dimensionality reduction. Singular value decomposition, non-linear matrix factorization, matrix completion, with applications to recommendation systems and link prediction. Iterative methods for solving linear systems, application of matrix computations in information retrieval and machine learning. 3) Optimization for training machine learning algorithms, duality, convexity, non-linear regression, gradient decent, training of neural networks, back-propagation, stochastic gradient descent, regularization, variance reduction. 4) Graphs and spectral analysis in graph machine learning, graph Laplacian, eigenvalues of a graph, random walks and graph convolution, graph embedding, spectral filters.
Offered as CSDS 323 and CSDS 423.
CSDS 425: Computer Networks I (100/7799)
TR 01:00-02:15 PM Aug 24-Dec 04
Allman, M
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: CSDS 338.
CSDS 427: Internet Security and Privacy (100/14050)
TR 10:00-11:15 AM Aug 24-Dec 04
Wang, A
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 (100/8563)
TR 08:30-09:45 AM Aug 24-Dec 04
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 433: Database Systems (500/14090)
R 08:00-09:00 PM Aug 24-Dec 04
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 (100/8551)
TR 04:15-05:30 PM Aug 24-Dec 04
Ma, J
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 (100/7937)
MW 04:40-05:55 PM Aug 24-Dec 04
Gajurel, S
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.
Offered as CSDS 438 and ECSE 438.
CSDS 440: Machine Learning (100/7407)
MW 08:55-10:10 AM Aug 24-Dec 04
Ray, S
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 444: Computer Security (100/8583)
TR 08:30-09:45 AM Aug 24-Dec 04
Krupp, B
General types of security attacks; approaches to prevention; secret key and public key cryptography; message authentication and hash functions; digital signatures, authentication, and authorization; network protocol vulnerabilities; information gathering; forensics; password attacks; spoofing; denial of service attacks; buffer overflows; viruses, worms, etc., principles of secure software design; pen testing; threat modeling; access control; network and system hardening; least privilege; storing secrets; firewalls; intrusions; auditing; mobile security; and privacy. Recommended preparation: CSDS 293, CSDS 325 and CSDS 338.
Offered as CSDS 344 and CSDS 444.
CSDS 447: Responsible AI Engineering (100/9115)
TR 02:45-04:00 PM Aug 24-Dec 04
Biswas, S
The deployment of modern AI systems presents novel challenges, including bias amplification, ensuring safe autonomy, addressing hallucinations, and more. This course teaches engineering AI-enabled software systems that adhere to key requirements of responsible AI: fairness, robustness, explainability, and safety. In addition to optimizing for accuracy, future software engineers and data scientists would need to develop tools and methodologies for testing, verifying, and maintaining machine learning components to meet these principles. The course thus explores evaluation and mitigation strategies designed to ensure the responsible use of ML models, deep neural networks, and generative AI in safety-critical applications. Students will engage with recent research in responsible AI, gaining insights into the latest advancements and challenges in the field. The course also includes a hands-on project, enabling students to apply their knowledge to a real-world problem that aligns with responsible AI.
Offered as CSDS 347 and CSDS 447.
CSDS 455: Applied Graph Theory (100/14642)
MWF 11:30-12:20 PM Aug 24-Dec 04
Connamacher, H
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 (100/14641)
TR 01:00-02:15 PM Aug 24-Dec 04
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 463: AI in Medical Imaging (100/8599)
TR 02:45-04:00 PM Aug 24-Dec 04
Li, S
AI in medical imaging is experiencing tremendous growth all over the world. Biomedical imaging and its analysis are fundamental to understanding, visualizing, and quantifying medical images in clinical applications. With the help of automated and quantitative image analysis techniques, disease diagnosis will be easier/faster, and more accurate, leading to significant development in medicine in general. This course aims to help students develop skills in artificial intelligence and machine learning techniques applied to biomedical image analysis. With an emphasis on the machine/deep learning approach, students will learn: 1) Fundamentals of radiological image modalities and their clinical use 2) Introduction to Medical Image Computing and Machine Learning 3) Medical Image Registration, Segmentation, Visualization 4) Machine Learning/Deep Learning Prediction of Disease and Staging. The course includes significant hands-on processing. Students will enhance their AI, medical image analysis, and programming skills. They will solve realistic biomedical imaging problems in interesting computer projects.
Offered as CSDS 466 and EBME 463.
CSDS 464: Computational Perception (500/14091)
W 07:00-08:00 PM Aug 24-Dec 04
Lewicki, M
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.
Offered as CSDS 364 and CSDS 464.
CSDS 465: Computer Vision (100/8304)
MW 04:40-05:55 PM Aug 24-Dec 04
Yin, Y
Computer vision is the study of enabling machines to understand the visual world (i.e., images and videos), and has applications in content based search, healthcare, autonomous vehicles, etc., with visual recognition tasks like image classification, object detection, and segmentation being core to many of those applications. Over the past decade, deep learning has greatly advanced the state-of-the-art in computer vision research. This course will dive into the fundamentals of deep learning for computer vision. Students will learn to implement deep neural networks and learn about the state-of-the-art computer vision research in a broad range of topics including object recognition, image segmentation, image representation and generation, and 3D vision.
Offered as CSDS 365, CSDS 465, ECSE 365, and ECSE 465.
CSDS 475: Designing High Performant Systems for AI (100/8443)
TR 10:00-11:15 AM Aug 24-Dec 04
Kuppannagari, S
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.
Offered as CSDS 375 and CSDS 475.
CSDS 487: Advanced Game Development Project (100/7989)
TR 08:30-09:45 AM Aug 24-Dec 04
Fu, M
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.
Offered as CSDS 390, ECSE 390, CSDS 487, and ECSE 487.
CSDS 489: Robotics I (100/7988)
MW 12:35-01:50 PM Aug 24-Dec 04
Cavusoglu, C
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.
CSDS 490: Digital Image Processing (100/14631)
MWF 10:25-11:15 AM Aug 24-Dec 04
Ozguner, O
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.
Offered as CSDS 490 and ECSE 490.
CSDS 493: Software Engineering (100/7447)
MW 12:35-01:50 PM Aug 24-Dec 04
Podgurski, H
Introduction to software engineering; software lifecycle models; development team organization and project management; requirements analysis and specification techniques; software design techniques; implementation and programming practices; software testing and validation techniques; software maintenance practices; software engineering for and with AI; software engineering ethics and open source. Undergraduates work in teams to propose, design, implement, and validate a significant software system. Graduate students complete additional advanced tasks on assignments and project demos (e.g., deeper analysis, advanced features, and more systematic testing).
Offered as CSDS 393 and CSDS 493.
CSDS 497: Foundations of Statistical Natural Language Processing (100/14052)
MW 12:35-01:50 PM Aug 24-Dec 04
Ray, S
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 500: CSDS Colloquium (100/7925)
R 11:30-12:30 PM Aug 24-Dec 04
Kuppannagari, S
Seminars on current topics in Computer and Data Science.
CSDS 500T: Graduate Teaching II (100/7927)
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: Compression & Efficiency in DL (100/14366)
MW 12:35-01:50 PM Aug 24-Dec 04
Xu, S
Recommended prerequisites are a machine learning course (ex 340 or 440), Python, linear algebra
CSDS 600: Efficient Deep Learning (101/14571)
MW 06:25-07:40 PM Aug 24-Dec 04
Datta, G
CSDS 600T: Graduate Teaching III (100/7957)
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.