CSDS 101: The Digital Revolution: Computer and Data Science For All (100/6900)
MWF 11:40-12:30 PM Aug 26-Dec 06
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 (112/6902)
T 02:30-04:30 PM Aug 26-Dec 06
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 (113/6903)
T 04:45-06:45 PM Aug 26-Dec 06
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/6119)
MWF 02:15-03:05 PM Aug 26-Dec 06
Connamacher, H
This Lecture and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (110/6120)
W 03:20-04:10 PM Aug 26-Dec 06
Connamacher, H
This Recitation and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (111/6121)
W 04:25-05:15 PM Aug 26-Dec 06
Connamacher, H
This Recitation and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (113/6146)
R 08:45-09:35 AM Aug 26-Dec 06
Connamacher, H
This Recitation and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (112/6218)
W 05:30-06:20 PM Aug 26-Dec 06
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#.
Offered as CSDS 132 and ECSE 132.
CSDS 132: Programming in Java (114/6827)
R 10:00-10:50 AM Aug 26-Dec 06
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#.
Offered as CSDS 132 and ECSE 132.
CSDS 132: Programming in Java (115/6828)
R 11:30-12:20 PM Aug 26-Dec 06
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#.
Offered as CSDS 132 and ECSE 132.
CSDS 132: Programming in Java (116/6829)
R 01:00-01:50 PM Aug 26-Dec 06
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#.
Offered as CSDS 132 and ECSE 132.
CSDS 132: Programming in Java (117/6830)
R 02:30-03:20 PM Aug 26-Dec 06
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#.
Offered as CSDS 132 and ECSE 132.
CSDS 132: Programming in Java (120/6833)
F 10:35-11:25 AM Aug 26-Dec 06
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#.
Offered as CSDS 132 and ECSE 132.
CSDS 133: Introduction to Data Science and Engineering for Majors (100/6711)
MW 12:45-02:00 PM Aug 26-Dec 06
Ozguner, O
This course is an introduction to data science and analytics.
In the first half of the course, students will develop a basic understanding of how to manipulate, analyze and visualize large data in a distributed computing environment, with an appreciation of open source development, security and privacy issues.
Case studies and team project assignments in the second half of the course will be used to implement the ideas. Topics covered will include: Overview of large scale parallel and distributed (cloud) computing; file systems and file i/o; open source coding and distributed versioning, data query and retrieval; basic data analysis; visualization; data security, privacy and provenance.
CSDS 221: Full Stack Web Development (100/6778)
M 07:00-09:30 PM Aug 26-Dec 06
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/6780)
W 07:00-09:00 PM Aug 26-Dec 06
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/11673)
TR 02:30-03:45 PM Aug 26-Dec 06
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/5827)
TR 01:00-02:15 PM Aug 26-Dec 06
Ayday, E
Different representations of data: lists, stacks and queues, trees, graphs, and files. Manipulation of data: searching and sorting, hashing, recursion and higher order functions. Abstract data types, templating, and the separation of interface and implementation. Introduction to asymptotic analysis. The Java language is used to illustrate the concepts and as an implementation vehicle throughout the course.
Offered as CSDS 233 and ECSE 233.
CSDS 234: Structured and Unstructured Data (100/6473)
TR 08:30-09:45 AM Aug 26-Dec 06
Bruckman, L
This course is an introduction to types of data and their representation, storage, processing and analysis. The course has three parts. In the first part of the course, students will develop a basic understanding and the ability to represent, store, process and analyze structured data. Structured data include catalogs, records, tables, logs, etc., with a fixed dimension and well-defined meaning for each data point. Suitable representation and storage mechanisms include lists and arrays. Relevant techniques include keys, hashes, stacks, queues and trees. In the second part of the course, students will develop a basic understanding and the ability to represent, store, process and analyze semi-structured data. Semi-structured data include texts, web pages and networks, without a dimension and structure, but with well-defined meaning for each data point. Suitable representation and storage mechanisms include trees, graphs and RDF triples. Relevant techniques include XML, YAML, JSON, parsing, annotation, language processing. In the third part of the course, students will develop a basic understanding and the ability to represent, store, process and analyze unstructured data. Unstructured data include images, video, and time series data, without neither a fixed dimension and structure, nor well-defined meaning for individual data points. Suitable representation and storage mechanisms include large matrices, EDF, DICOM. Relevant techniques include feature extraction, segmentation, clustering, rendering, indexing, and visualization.
CSDS 236: Introduction to C/C++ Programming (100/11573)
W 12:45-02:00 PM Aug 26-Dec 06
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, use of debugging and compiler tools, and others as time permits.
CSDS 275: Fundamentals of Robotics (100/6852)
TR 01:00-02:15 PM Aug 26-Dec 06
Chua, Z
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 275: Fundamentals of Robotics (101/6853)
W 03:20-04:35 PM Aug 26-Dec 06
Chua, Z
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 (100/6582)
TR 10:00-11:15 AM Aug 26-Dec 06
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/6583)
T 01:00-01:50 PM Aug 26-Dec 06
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/6584)
W 10:35-11:25 AM Aug 26-Dec 06
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/6585)
W 11:40-12:30 PM Aug 26-Dec 06
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/6859)
TR 10:00-11:15 AM Aug 26-Dec 06
Wang, A
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.
Offered as CSDS 293 and CSDS 293N.
CSDS 293: Software Craftsmanship (110/6863)
F 09:00-10:50 AM Aug 26-Dec 06
Wang, A
Java
CSDS 293: Software Craftsmanship (111/6864)
F 04:30-06:20 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293: Software Craftsmanship (112/6865)
M 10:00-11:50 AM Aug 26-Dec 06
Wang, A
Java
CSDS 293: Software Craftsmanship (113/6885)
W 10:00-11:50 AM Aug 26-Dec 06
Wang, A
Java
CSDS 293: Software Craftsmanship (114/6886)
M 03:20-05:10 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293: Software Craftsmanship (115/6890)
W 03:20-05:10 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293: Software Craftsmanship (116/6891)
R 01:55-03:45 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293: Software Craftsmanship (117/6892)
F 02:15-04:05 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293: Software Craftsmanship (118/11463)
T 02:15-04:05 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293: Software Craftsmanship (119/11464)
R 02:15-04:05 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293N: Software Craftsmanship (100/6860)
TR 10:00-11:15 AM Aug 26-Dec 06
Wang, A
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.
Offered as CSDS 293 and CSDS 293N.
CSDS 293N: Software Craftsmanship (110/6866)
F 09:00-10:50 AM Aug 26-Dec 06
Wang, A
Java
CSDS 293N: Software Craftsmanship (111/6867)
F 04:30-06:20 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293N: Software Craftsmanship (112/6868)
M 10:00-11:50 AM Aug 26-Dec 06
Wang, A
Java
CSDS 293N: Software Craftsmanship (113/6887)
W 10:00-11:50 AM Aug 26-Dec 06
Wang, A
Java
CSDS 293N: Software Craftsmanship (114/6888)
M 03:20-05:10 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293N: Software Craftsmanship (115/6893)
W 03:20-05:10 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293N: Software Craftsmanship (116/6894)
R 01:55-03:45 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293N: Software Craftsmanship (117/6895)
F 02:15-04:05 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293N: Software Craftsmanship (118/11466)
T 02:15-04:05 PM Aug 26-Dec 06
Wang, A
Java
CSDS 293N: Software Craftsmanship (119/11467)
R 02:15-04:05 PM Aug 26-Dec 06
Wang, A
Java
CSDS 302: Discrete Mathematics (100/5904)
TR 02:30-03:45 PM Aug 26-Dec 06
Bernardoni, B
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/6325)
MW 12:45-02:00 PM Aug 26-Dec 06
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/6785)
MW 12:45-02:00 PM Aug 26-Dec 06
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/6869)
MW 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310: Algorithms (110/6870)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310: Algorithms (111/6871)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310: Algorithms (112/6872)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310: Algorithms (113/6873)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310: Algorithms (114/6874)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310: Algorithms (115/6875)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310: Algorithms (116/6876)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310: Algorithms (117/11469)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310: Algorithms (118/11470)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310N: Algorithms (100/6877)
MW 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310N: Algorithms (110/6878)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310N: Algorithms (111/6879)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310N: Algorithms (112/6880)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310N: Algorithms (113/6881)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310N: Algorithms (114/6882)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310N: Algorithms (115/6883)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310N: Algorithms (116/6884)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310N: Algorithms (117/11471)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 310N: Algorithms (118/11472)
F 10:35-11:25 AM Aug 26-Dec 06
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.
Offered as CSDS 310 and CSDS 310N.
CSDS 313: Introduction to Data Analysis (100/6467)
TR 04:00-05:15 PM Aug 26-Dec 06
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 Methods for Machine Learning (100/12010)
MWF 02:15-03:05 PM Aug 26-Dec 06
Koyuturk, M
An introduction to numerical methods that pertain to important problems in machine learning, data science, and artificial intelligence, organized into 4 modules: 1) Basic topics in numerical analysis, floating point computation, rounding, conditioning, and stability. Monte-Carlo simulations in estimation and machine learning. 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, starting with linear regression, solutions to linear systems, LR factorization, least-squares systems, and QR factorization, 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.
CSDS 325: Computer Networks I (100/5834)
TR 01:00-02:15 PM Aug 26-Dec 06
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.
Offered as CSDS 325 and CSDS 325N.
CSDS 325N: Computer Networks I (100/6290)
TR 01:00-02:15 PM Aug 26-Dec 06
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.
Offered as CSDS 325 and CSDS 325N.
CSDS 335: Data Mining for Big Data (100/11474)
TR 11:30-12:45 PM Aug 26-Dec 06
Li, 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 338: Intro to Operating Systems and Concurrent Programming (100/6238)
TR 04:00-05:15 PM Aug 26-Dec 06
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 338: Intro to Operating Systems and Concurrent Programming (101/6239)
W 04:50-05:40 PM Aug 26-Dec 06
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 (100/6291)
TR 04:00-05:15 PM Aug 26-Dec 06
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 (101/6294)
W 04:50-05:40 PM Aug 26-Dec 06
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 340: Introduction to Machine Learning (100/6786)
TR 10:00-11:15 AM Aug 26-Dec 06
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.
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.
CSDS 341: Introduction to Database Systems (100/6258)
MW 03:20-04:35 PM Aug 26-Dec 06
Foreback, D
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 (100/6292)
MW 03:20-04:35 PM Aug 26-Dec 06
Foreback, D
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 344: Computer Security (100/11569)
TR 02:30-03:45 PM Aug 26-Dec 06
Krupp, B
General types of security attacks; approaches to prevention; secret key and public key cryptography; message authentication and hash functions; digital signatures and authentication protocols; information gathering; password cracking; spoofing; session hijacking; denial of service attacks; buffer overruns; viruses, worms, etc., principles of secure software design, threat modeling; access control; least privilege; storing secrets; socket security; firewalls; intrusions; auditing; mobile security. Recommended preparation: CSDS 132, CSDS 293, CSDS 325 and CSDS 338.
Offered as CSDS 344 and CSDS 444.
CSDS 345: Programming Language Concepts (100/11860)
MWF 11:40-12:30 PM Aug 26-Dec 06
Krupp, B
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 345N: Programming Language Concepts (100/11861)
MWF 11:40-12:30 PM Aug 26-Dec 06
Krupp, B
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 373: Modern Robot Programming (100/6586)
MW 03:20-04:35 PM Aug 26-Dec 06
Lee, G
The goal of this course is to learn modern methods for building up robot capabilities using the Robot Operating System (ROS). Through a sequence of assignments, students learn how to write software to control both simulated and physical robots. Material includes: interfacing software to robot I/O; path and trajectory planning for robot arms; object identification and localization from 3-D sensing; manipulation planning; and development of graphical interfaces for supervisory robot control. Laboratory assignments are scheduled in small groups to explore implementations on specific robots. Graduate students will also perform an independent project.
Offered as CSDS 373, ECSE 373, CSDS 473 and ECSE 473.
CSDS 383: Software Architecture (100/11568)
MW 05:30-06:45 PM Aug 26-Dec 06
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/6587)
TR 08:30-09:45 AM Aug 26-Dec 06
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 391: Introduction to Artificial Intelligence (100/6285)
TR 10:00-11:15 AM Aug 26-Dec 06
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. Recommended: basic knowledge of probability and statistics.
CSDS 393: Software Engineering (100/5840)
MW 12:45-02:00 PM Aug 26-Dec 06
Podgurski, H
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 (100/6293)
MW 12:45-02:00 PM Aug 26-Dec 06
Podgurski, H
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 394: Introduction to Information Theory (100/6812)
MWF 10:35-11:25 AM Aug 26-Dec 06
Szarek, S
This course is intended as an introduction to information and coding theory with emphasis on the mathematical aspects. It is suitable for advanced undergraduate and graduate students in mathematics, applied mathematics, statistics, physics, computer science and electrical engineering.
Course content: Information measures-entropy, relative entropy, mutual information, and their properties. Typical sets and sequences, asymptotic equipartition property, data compression. Channel coding and capacity: channel coding theorem. Differential entropy, Gaussian channel, Shannon-Nyquist theorem. Information theory inequalities (400 level). Additional topics, which may include compressed sensing and elements of quantum information theory.
Recommended preparation: MATH 201 or MATH 307.
Offered as MATH 394, CSDS 394, ECSE 394, MATH 494, CSDS 494 and ECSE 494.
CSDS 395: Senior Project in Computer Science (100/6145)
TR 11:30-12:45 PM Aug 26-Dec 06
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/12390)
Manasseh, C
Independent projects in Computer and Data Science.
CSDS 396: Independent Projects (101/12759)
Chaudhary, V
Independent projects in Computer and Data Science.
CSDS 400T: Graduate Teaching I (100/6604)
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/6749)
T 08:00-09:00 PM Aug 26-Dec 06
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/6601)
MW 12:45-02:00 PM Aug 26-Dec 06
Foreback, D
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/11477)
TR 04:00-05:15 PM Aug 26-Dec 06
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 425: Computer Networks I (100/6455)
TR 01:00-02:15 PM Aug 26-Dec 06
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 425: Computer Networks I (500/11529)
T 07:00-08:00 PM Aug 26-Dec 06
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: CSDS 338.
CSDS 428: Computer Communications Networks II (100/11478)
TR 01:00-02:15 PM Aug 26-Dec 06
Wang, A
Introduction to topics and methodology in computer networks and middleware research. Traffic characterization, stochastic models, and self-similarity. Congestion control (Tahoe, Reno, Sack). Active Queue Management (RED, FQ) and explicit QoS. The Web: overview and components, HTTP, its interaction with TCP, caching. Overlay networks and CDN. Expected work includes a course-long project on network simulation, a final project, a paper presentation, midterm, and final test. Recommended preparation: CSDS 425.
CSDS 433: Database Systems (100/11479)
TR 08:30-09:45 AM Aug 26-Dec 06
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/11473)
TR 11:30-12:45 PM Aug 26-Dec 06
Li, 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 435: Data Mining (500/11530)
R 08:00-09:00 PM Aug 26-Dec 06
Li, 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/6616)
MW 05:30-06:45 PM Aug 26-Dec 06
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/6041)
TR 10:00-11:15 AM Aug 26-Dec 06
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/11571)
TR 02:30-03:45 PM Aug 26-Dec 06
Krupp, B
General types of security attacks; approaches to prevention; secret key and public key cryptography; message authentication and hash functions; digital signatures and authentication protocols; information gathering; password cracking; spoofing; session hijacking; denial of service attacks; buffer overruns; viruses, worms, etc., principles of secure software design, threat modeling; access control; least privilege; storing secrets; socket security; firewalls; intrusions; auditing; mobile security. Recommended preparation: CSDS 132, CSDS 293, CSDS 325 and CSDS 338.
Offered as CSDS 344 and CSDS 444.
CSDS 451: Designing High Performant Systems for AI (100/6908)
TR 04:00-05:15 PM Aug 26-Dec 06
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.
CSDS 452: Causality and Machine Learning (100/12426)
TR 04:00-05:15 PM Aug 26-Dec 06
Ma, J
This course aims to bridge the gap between two powerful fields, machine learning and causal inference. While machine learning has achieved significant success in various domains, the lack of trustworthiness (e.g., explanation, fairness, generalization, and robustness) hinders its widespread adoption. Causal inference, on the other hand, is a vital discipline that explores cause-and-effect relationships, going beyond simple correlations within data systems. By understanding causal relationships, we can uncover the essence of artificial intelligence, fostering trustworthy machine learning practices.
In this course, we will provide a foundation in both traditional causal inference and machine learning concepts. Moreover, we will explore the recent advancements in combining these two areas and highlight the mutual benefits they gain from each other. The course covers mathematical skills (e.g., graphical models and probabilistic reasoning) and cutting-edge machine learning & neural network techniques.
CSDS 455: Applied Graph Theory (100/11480)
MW 03:20-04:35 PM Aug 26-Dec 06
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 458: Introduction to Bioinformatics (100/6183)
TR 02:30-03:45 PM Aug 26-Dec 06
Li, J
Fundamental algorithmic and statistical methods in computational molecular biology and bioinformatics will be discussed. Topics include introduction to molecular biology and genetics, DNA sequence analysis, polymorphisms and personal genomics, structural variation analysis, gene mapping and haplotyping algorithms, phylogenetic analysis, biological network analysis, and computational drug discovery. Much of the course will focus on the algorithmic techniques, including but not limited to, dynamic programming, hidden Markov models, string algorithms, graph theories and algorithms, and some representative data mining algorithms. Paper presentations and course projects are also required.
CSDS 463: AI in Medical Imaging (100/11690)
TR 02:30-03:45 PM Aug 26-Dec 06
Li, S; Viswanath, S; Wilson, D
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 465: Computer Vision (100/6844)
MW 05:30-06:45 PM Aug 26-Dec 06
Yin, Y
The goal of computer vision is to create visual systems that recognize objects and recover structures in complex 3D scenes. This course emphasizes both the science behind our understanding of the fundamental problems in vision and the engineering that develops mathematical models and inference algorithms to solve these problems. Specific topics include feature detection, matching, and classification; visual representations and dimensionality reduction; motion detection and optical flow; image segmentation; depth perception, multi-view geometry, and 3D reconstruction; shape and surface perception; visual scene analysis and object recognition.
Offered as CSDS 465 and ECSE 465.
CSDS 473: Modern Robot Programming (100/6588)
MW 03:20-04:35 PM Aug 26-Dec 06
Lee, G
The goal of this course is to learn modern methods for building up robot capabilities using the Robot Operating System (ROS). Through a sequence of assignments, students learn how to write software to control both simulated and physical robots. Material includes: interfacing software to robot I/O; path and trajectory planning for robot arms; object identification and localization from 3-D sensing; manipulation planning; and development of graphical interfaces for supervisory robot control. Laboratory assignments are scheduled in small groups to explore implementations on specific robots. Graduate students will also perform an independent project.
Offered as CSDS 373, ECSE 373, CSDS 473 and ECSE 473.
CSDS 487: Advanced Game Development Project (100/6684)
TR 08:30-09:45 AM Aug 26-Dec 06
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/6683)
MW 12:45-02:00 PM Aug 26-Dec 06
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 493: Software Engineering (100/6084)
MW 12:45-02:00 PM Aug 26-Dec 06
Podgurski, H
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 494: Introduction to Information Theory (100/6813)
MWF 10:35-11:25 AM Aug 26-Dec 06
Szarek, S
This course is intended as an introduction to information and coding theory with emphasis on the mathematical aspects. It is suitable for advanced undergraduate and graduate students in mathematics, applied mathematics, statistics, physics, computer science and electrical engineering.
Course content: Information measures-entropy, relative entropy, mutual information, and their properties. Typical sets and sequences, asymptotic equipartition property, data compression. Channel coding and capacity: channel coding theorem. Differential entropy, Gaussian channel, Shannon-Nyquist theorem. Information theory inequalities (400 level). Additional topics, which may include compressed sensing and elements of quantum information theory.
Recommended preparation: MATH 201 or MATH 307.
Offered as MATH 394, CSDS 394, ECSE 394, MATH 494, CSDS 494 and ECSE 494.
CSDS 497: Artificial Intelligence: Statistical Natural Language Processing (100/11481)
TR 01:00-02:15 PM Aug 26-Dec 06
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/6603)
R 11:30-12:30 PM Aug 26-Dec 06
Ayday, E
Seminars on current topics in Computer and Data Science.
CSDS 500T: Graduate Teaching II (100/6605)
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: Security for Machine Learning (100/12515)
M 07:00-09:30 PM Aug 26-Dec 06
Omeike, S
CSDS 600: Large Language Models (101/12617)
MW 03:20-04:35 PM Aug 26-Dec 06
Han, X
Recommended prerequisites are CSDS 340 or 440, a stats class, and knowledge of python.
CSDS 600: Responsible AI Engineering (102/12621)
TR 02:30-03:45 PM Aug 26-Dec 06
Biswas, S
Prerequisite is a course in algorithms (CSDS 310/410)
CSDS 600T: Graduate Teaching III (100/6639)
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.