CSDS 101: The Digital Revolution: Computer and Data Science For All (100/11257)
MW 03:20-04:35 PM Aug 29-Dec 09
Connamacher, H
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/11258)
T 10:00-12:00 PM Aug 29-Dec 09
Connamacher, H
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/11259)
T 01:00-03:00 PM Aug 29-Dec 09
Connamacher, H
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/11260)
T 04:00-06:00 PM Aug 29-Dec 09
Connamacher, H
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/4603)
MWF 02:15-03:05 PM Aug 29-Dec 09
Connamacher, H
This Lecture and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (110/4604)
W 03:20-04:10 PM Aug 29-Dec 09
Connamacher, H
This Recitation and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (111/4605)
W 04:25-05:15 PM Aug 29-Dec 09
Connamacher, H
This Recitation and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (113/4633)
R 10:00-10:50 AM Aug 29-Dec 09
Connamacher, H
This Recitation and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (114/4641)
R 11:30-12:20 PM Aug 29-Dec 09
Connamacher, H
This Recitation and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (115/4708)
R 01:00-01:50 PM Aug 29-Dec 09
Connamacher, H
This Recitation and the following Recitations are recommended for Computer Science and Computer Engineering Majors.
CSDS 132: Programming in Java (112/4726)
R 08:45-09:35 AM Aug 29-Dec 09
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/4767)
F 10:35-11:25 AM Aug 29-Dec 09
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/4802)
W 05:30-06:20 PM Aug 29-Dec 09
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 (118/4954)
R 02:30-03:20 PM Aug 29-Dec 09
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 (119/11287)
R 04:00-04:50 PM Aug 29-Dec 09
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/5326)
MW 12:45-02:00 PM Aug 29-Dec 09
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 221: Full Stack Web Development (100/11999)
M 07:00-09:30 PM Aug 29-Dec 09
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/12002)
W 07:00-09:00 PM Aug 29-Dec 09
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 233: Introduction to Data Structures (100/4263)
TR 01:00-02:15 PM Aug 29-Dec 09
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/5020)
TR 08:30-09:45 AM Aug 29-Dec 09
Wu, Y
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 245: Functional Programming in Java (100/11756)
W 11:40-12:30 PM Aug 29-Dec 09
Liberatore, V
An introduction to functional programming elements and attendant constructs in the Java programming language. Generics, enumerated types, records, and access to class members. Advanced control flow. The Java Collection Framework. Functional interfaces: lambdas, comparators, and standard functional interfaces. Optionals. Stream, collectors, and map-reduce.
CSDS 281: Logic Design and Computer Organization (100/5135)
TR 10:00-11:15 AM Aug 29-Dec 09
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/5136)
T 01:00-01:50 PM Aug 29-Dec 09
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/5137)
W 10:35-11:25 AM Aug 29-Dec 09
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/5138)
W 11:40-12:30 PM Aug 29-Dec 09
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/4610)
TR 10:25-11:15 AM Aug 29-Dec 09
Wang, A
See also <a href="https://bit.ly/2GHjbeA" target="_blank">https://bit.ly/2GHjbeA</a>.
CSDS 293: Software Craftsmanship (101/11288)
M 01:00-02:50 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293: Software Craftsmanship (102/11290)
W 01:00-02:50 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293: Software Craftsmanship (103/11392)
W 11:40-01:30 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293: Software Craftsmanship (104/11393)
W 03:20-05:10 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293: Software Craftsmanship (105/11451)
R 11:30-01:20 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293: Software Craftsmanship (106/11452)
R 12:10-02:00 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293: Software Craftsmanship (107/11453)
F 01:00-02:50 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293: Software Craftsmanship (108/11459)
F 01:00-02:50 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293: Software Craftsmanship (109/11460)
F 03:20-05:10 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293N: Software Craftsmanship (100/4807)
TR 10:25-11:15 AM Aug 29-Dec 09
Wang, A
See also <a href="https://bit.ly/2GHjbeA" target="_blank">https://bit.ly/2GHjbeA</a>.
CSDS 293N: Software Craftsmanship (101/11291)
M 01:00-02:50 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293N: Software Craftsmanship (102/11292)
W 01:00-02:50 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293N: Software Craftsmanship (103/11394)
W 11:40-01:30 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293N: Software Craftsmanship (104/11395)
W 03:20-05:10 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293N: Software Craftsmanship (105/11454)
R 11:30-01:20 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293N: Software Craftsmanship (106/11455)
R 12:10-02:00 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293N: Software Craftsmanship (107/11456)
F 01:00-02:50 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293N: Software Craftsmanship (108/11461)
F 01:00-02:50 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 293N: Software Craftsmanship (109/11463)
F 03:20-05:10 PM Aug 29-Dec 09
Wang, A
Java section
CSDS 302: Discrete Mathematics (100/4349)
MWF 09:30-10:20 AM Aug 29-Dec 09
Fidalgo, U
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/4845)
TR 10:00-11:15 AM Aug 29-Dec 09
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/12058)
TR 01:00-02:15 PM Aug 29-Dec 09
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 (101/5158)
MWF 09:30-10:20 AM Aug 29-Dec 09
Koyuturk, M
Fundamentals in algorithm design and analysis. Loop invariants, asymptotic notation, recurrence relations, sorting algorithms, divide-and-conquer, dynamic programming, greedy algorithms, basic graph algorithms.
Offered as CSDS 310 and CSDS 310N.
CSDS 310N: Algorithms (100/11267)
MWF 09:30-10:20 AM Aug 29-Dec 09
Koyuturk, M
Fundamentals in algorithm design and analysis. Loop invariants, asymptotic notation, recurrence relations, sorting algorithms, divide-and-conquer, dynamic programming, greedy algorithms, basic graph algorithms.
Offered as CSDS 310 and CSDS 310N.
CSDS 313: Introduction to Data Analysis (100/5013)
TR 04:00-05:15 PM Aug 29-Dec 09
Li, J
In this class we will give a broad overview of data analysis techniques, covering
techniques from data mining, machine learning and signal processing. Students will also learn about probabilistic representations, how to conduct an empirical study and support empirical hypotheses through statistical tests, and visualize the results.
Course objectives:
-Expose students to different analysis approaches.
-Understand probabilistic representations and inference mechanisms.
-Understand how to create empirical hypotheses and how to test them.
CSDS 325: Computer Networks I (100/4270)
MW 12:45-02:00 PM Aug 29-Dec 09
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/4808)
MW 12:45-02:00 PM Aug 29-Dec 09
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 338: Intro to Operating Systems and Concurrent Programming (100/4748)
TR 05:30-06:45 PM Aug 29-Dec 09
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/4749)
W 05:30-06:20 PM Aug 29-Dec 09
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/4809)
TR 05:30-06:45 PM Aug 29-Dec 09
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/4813)
W 05:30-06:20 PM Aug 29-Dec 09
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: Machine Learning for Big Data (100/12094)
TR 10:00-11:15 AM Aug 29-Dec 09
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/4771)
MW 03:20-04:35 PM Aug 29-Dec 09
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/4811)
MW 03:20-04:35 PM Aug 29-Dec 09
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/4999)
TR 02:30-03:45 PM Aug 29-Dec 09
Foreback, D
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 373: Modern Robot Programming (100/5139)
MW 03:20-04:35 PM Aug 29-Dec 09
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 390: Advanced Game Development Project (100/5140)
TR 08:30-09:45 AM Aug 29-Dec 09
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/4801)
TR 01:00-02:15 PM Aug 29-Dec 09
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/4277)
TR 10:00-11:15 AM Aug 29-Dec 09
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 393: Software Engineering (101/12056)
TR 05:30-06:45 PM Aug 29-Dec 09
Jimenez Segovia, L
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/4812)
TR 10:00-11:15 AM Aug 29-Dec 09
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 (101/12057)
TR 05:30-06:45 PM Aug 29-Dec 09
Jimenez Segovia, L
Topics: Introduction to software engineering; software lifecycle models; development team organization and project management; requirements analysis and specification techniques; software design techniques; programming practices; software validation techniques; software maintenance practices; software engineering ethics. Undergraduates work in teams to complete a significant software development project. Graduate students are required to complete a research project.
Offered as CSDS 393, CSDS 393N, and CSDS 493.
CSDS 395: Senior Project in Computer Science (101/4631)
MWF 10:35-11:25 AM Aug 29-Dec 09
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/11930)
Liberatore, V
Independent projects in Computer and Data Science.
CSDS 400T: Graduate Teaching I (100/5160)
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/11263)
W 08:00-09:00 PM Aug 29-Dec 09
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 401: Foundations of Computer Science (777/11944)
Ganesan, A
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/5156)
MWF 09:30-10:20 AM Aug 29-Dec 09
Koyuturk, M
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 410: Analysis of Algorithms (500/11269)
W 08:00-09:00 PM Aug 29-Dec 09
Liberatore, V
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 425: Computer Networks I (100/4997)
MW 12:45-02:00 PM Aug 29-Dec 09
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 (777/5315)
Narasimhamurthy, 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 435: Data Mining (777/5316)
Gupta, M
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/5174)
MW 05:30-06:45 PM Aug 29-Dec 09
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 438: High Performance Data and Computing (500/11266)
R 08:00-09:00 PM Aug 29-Dec 09
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/4508)
TR 10:00-11:15 AM Aug 29-Dec 09
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 440: Machine Learning (777/5314)
Chandra, P
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/4909)
TR 02:30-03:45 PM Aug 29-Dec 09
Foreback, D
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 458: Introduction to Bioinformatics (100/4685)
TR 02:30-03:45 PM Aug 29-Dec 09
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 465: Computer Vision (777/5317)
Kompalli, S; Vuppala, S
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/5143)
MW 03:20-04:35 PM Aug 29-Dec 09
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/5252)
TR 08:30-09:45 AM Aug 29-Dec 09
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/5251)
MW 12:45-02:00 PM Aug 29-Dec 09
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/4562)
TR 10:00-11:15 AM Aug 29-Dec 09
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 497: Artificial Intelligence: Statistical Natural Language Processing (100/11264)
TR 01:00-02:15 PM Aug 29-Dec 09
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/5159)
TR 11:30-12:30 PM Aug 29-Dec 09
Ayday, E
Seminars on current topics in Computer and Data Science.
CSDS 500T: Graduate Teaching II (100/5161)
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: Contemporary Issues in Big Data (777/5318)
Murthy, S
CSDS 600: Edge Computing Empowered AI (100/11265)
TR 08:30-09:45 AM Aug 29-Dec 09
Wang, A
CSDS 600: Design High Performant Sys for AI (101/11754)
TR 04:00-05:15 PM Aug 29-Dec 09
Kuppannagari, S
CSDS 600: Security for Machine Learning (102/12074)
MR 05:30-06:45 PM Aug 29-Dec 09
Omeike, S
CSDS 600: AI in Medical Imaging (103/12096)
WF 02:15-03:30 PM Aug 29-Dec 09
Li, S
CSDS 600T: Graduate Teaching III (100/5200)
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.
CSDS 601: Independent Study (100/5250)
Ayday, E
Digital innovation is one of the most important strategic topics in today's business. It requires the blend of emerging digital technology (such as artificial intelligence, mobile and wearable technology, blockchain, and Internet of Things) and keen understandings on user experiences and value to create new products and services that support novel business models. A successful digital innovation project demands the fusion of technical skills, design thinking skills, and economic theories. Digital innovation projects often begin with a deep user research with ethnographic research methods, a careful analysis on the current value network, and agile development of prototypes and experimentations. It requires collaborations among multi-disciplinary team members from user research, design, front-end and back-end coding, and possibly mechanical engineering.
This project-based independent study is to offer a unique learning opportunity to students to learn how to conceive, design, development, and present novel digital innovation project idea, by working on a client-sponsored real-life digital innovation project supported by a member of
xLab.