Spring Courses
Introduction to programming fundamentals & problem-solving using the Java language. Covers the first half of CSE 007 concepts, including data types, control flow, introduction to methods, arrays and a breadth of computing. No prior programming experience is needed.
Introduction to programming fundamentals & problem-solving using the Java language. Covers the first half of CSE 007 concepts, including data types, control flow, introduction to methods, arrays and a breadth of computing. No prior programming experience is needed.
Introduction to problem-solving and object-oriented programming (OOP) using the Java language. Covers the second half of CSE 007 concepts, including methods, arrays (including searching & sorting), basics of OOP including data encapsulation, inheritance and polymorphism and a breadth of computing.
Introduction to problem-solving and object-oriented programming (OOP) using the Java language. Covers the second half of CSE 007 concepts, including methods, arrays (including searching & sorting), basics of OOP including data encapsulation, inheritance and polymorphism and a breadth of computing.
Introduction to problem-solving and object-oriented programming (OOP) using the Java language. Covers data types, control flow, methods, arrays (including searching & sorting), basics of OOP including data encapsulation, inheritance and polymorphism and a breadth of computing. If credit is given for CSE 007 then no credit will be given for CSE 003 nor CSE 004 .
Introduction to problem-solving and object-oriented programming (OOP) using the Java language. Covers data types, control flow, methods, arrays (including searching & sorting), basics of OOP including data encapsulation, inheritance and polymorphism and a breadth of computing. If credit is given for CSE 007 then no credit will be given for CSE 003 nor CSE 004 .
Introduction to problem-solving and object-oriented programming (OOP) using the Java language. Covers data types, control flow, methods, arrays (including searching & sorting), basics of OOP including data encapsulation, inheritance and polymorphism and a breadth of computing. If credit is given for CSE 007 then no credit will be given for CSE 003 nor CSE 004 .
Fundamental concepts of computing and "computational thinking": problem analysis, abstraction, algorithms, digital representation of information, and networks. Concepts of software development using the Python language. This course will not be considered as a CSE technical elective for CS majors.
Fundamental concepts of computing and "computational thinking": problem analysis, abstraction, algorithms, digital representation of information, and networks. Concepts of software development using the Python language. This course will not be considered as a CSE technical elective for CS majors.
Design and implementation of algorithms and data structures using Java. Assumes that students have prior experience using conditional statements, loops, arrays, and object-oriented programming in Java. Algorithmic techniques such as recursion, algorithm analysis, and sorting. Design and implementation of data structures such as lists, queues, stacks, trees, and hash tables.
Design and implementation of algorithms and data structures using Java. Assumes that students have prior experience using conditional statements, loops, arrays, and object-oriented programming in Java. Algorithmic techniques such as recursion, algorithm analysis, and sorting. Design and implementation of data structures such as lists, queues, stacks, trees, and hash tables.
Design and implementation of algorithms and data structures using Java. Assumes that students have prior experience using conditional statements, loops, arrays, and object-oriented programming in Java. Algorithmic techniques such as recursion, algorithm analysis, and sorting. Design and implementation of data structures such as lists, queues, stacks, trees, and hash tables.
Design and implementation of algorithms and data structures using Java. Assumes that students have prior experience using conditional statements, loops, arrays, and object-oriented programming in Java. Algorithmic techniques such as recursion, algorithm analysis, and sorting. Design and implementation of data structures such as lists, queues, stacks, trees, and hash tables.
Design and implementation of algorithms and data structures using Java. Assumes that students have prior experience using conditional statements, loops, arrays, and object-oriented programming in Java. Algorithmic techniques such as recursion, algorithm analysis, and sorting. Design and implementation of data structures such as lists, queues, stacks, trees, and hash tables.
Design and implementation of modular programs interacting with the operating system through system calls and programming interfaces using the C programming language. Topics covered include data representation and storage, data and bit manipulation, memory management, stages of compilation, file I/O, interprocess communication, network programming, programmatic testing, interactive debugging, and error handling. Good programming practices, including security, and practical methods for implementing medium-scale programs are also emphasized.
Design and implementation of modular programs interacting with the operating system through system calls and programming interfaces using the C programming language. Topics covered include data representation and storage, data and bit manipulation, memory management, stages of compilation, file I/O, interprocess communication, network programming, programmatic testing, interactive debugging, and error handling. Good programming practices, including security, and practical methods for implementing medium-scale programs are also emphasized.
Design and implementation of modular programs interacting with the operating system through system calls and programming interfaces using the C programming language. Topics covered include data representation and storage, data and bit manipulation, memory management, stages of compilation, file I/O, interprocess communication, network programming, programmatic testing, interactive debugging, and error handling. Good programming practices, including security, and practical methods for implementing medium-scale programs are also emphasized.
An introduction to artificial intelligence (AI) intended for non-majors. AI concepts, systems, and history.
Basic representations used in algorithms: propositional and predicate logic, set operations and functions, relations and their representations, matrices and their representations, graphs and their representations, trees and their representations. Basic formalizations for proving algorithm correctness: logical consequences, induction, structural induction. Basic formalizations for algorithm analysis: counting, pigeonhole principle, permutations.
Basic representations used in algorithms: propositional and predicate logic, set operations and functions, relations and their representations, matrices and their representations, graphs and their representations, trees and their representations. Basic formalizations for proving algorithm correctness: logical consequences, induction, structural induction. Basic formalizations for algorithm analysis: counting, pigeonhole principle, permutations.
Data Science is a fast-growing interdisciplinary field, focusing on the computational analysis of data to extract knowledge and insight. Collection, preparation, analysis, modeling, and visualization of data, covering both conceptual and practical issues. Examples from diverse fields and hands-on use of statistical and data manipulation software.
Data Science is a fast-growing interdisciplinary field, focusing on the computational analysis of data to extract knowledge and insight. Collection, preparation, analysis, modeling, and visualization of data, covering both conceptual and practical issues. Examples from diverse fields and hands-on use of statistical and data manipulation software.
Data Science is a fast-growing interdisciplinary field, focusing on the computational analysis of data to extract knowledge and insight. Collection, preparation, analysis, modeling, and visualization of data, covering both conceptual and practical issues. Examples from diverse fields and hands-on use of statistical and data manipulation software.
Interaction between low-level computer architectural properties and high-level program behaviors: instruction set design; digital logic and assembly language; processor organization; the memory hierarchy; multicore and GPU architectures; and processor interrupt/exception models.
Interaction between low-level computer architectural properties and high-level program behaviors: instruction set design; digital logic and assembly language; processor organization; the memory hierarchy; multicore and GPU architectures; and processor interrupt/exception models.
The software lifecycle; lifecycle models; software planning; testing; specification methods; maintenance. Emphasis on team work and large-scale software systems, including oral presentations and written reports.
The software lifecycle; lifecycle models; software planning; testing; specification methods; maintenance. Emphasis on team work and large-scale software systems, including oral presentations and written reports.
The software lifecycle; lifecycle models; software planning; testing; specification methods; maintenance. Emphasis on team work and large-scale software systems, including oral presentations and written reports.
Project-based learning through small-group projects related to computer systems and/or applications. Students will progress through the software development lifecycle, including high-level design, functional and non-functional requirements, implementation, testing, and maintenance.
Design of large databases: Integration of databases and applications using SQL and JDBC; transaction processing; performance tuning; data mining and data warehouses.
Design of large databases: Integration of databases and applications using SQL and JDBC; transaction processing; performance tuning; data mining and data warehouses.
An interactive exploration that provides students with concepts and frameworks to reason about ethical and social issues related with computing. Topics may include: privacy, corporate responsibility, the changing nature of work, language technologies, professional ethics, autonomous systems, online political communication, fairness and bias, environmental impacts, legal regulation, political economy, and other relevant technologies, concepts, issues.
An interactive exploration that provides students with concepts and frameworks to reason about ethical and social issues related with computing. Topics may include: privacy, corporate responsibility, the changing nature of work, language technologies, professional ethics, autonomous systems, online political communication, fairness and bias, environmental impacts, legal regulation, political economy, and other relevant technologies, concepts, issues.
Use, structure and implementation of several programming languages.
Use, structure and implementation of several programming languages.
Use, structure and implementation of several programming languages.
Practical experience in designing and implementing modern Web applications. Concepts, tools, and techniques, including: HTTP, HTML, CSS, DOM, JavaScript, Ajax, PHP, graphic design principles, mobile web development.
Practical experience in designing and implementing modern Web applications. Concepts, tools, and techniques, including: HTTP, HTML, CSS, DOM, JavaScript, Ajax, PHP, graphic design principles, mobile web development.
First of a two semester capstone course sequence that involves the design, implementation, and evaluation of a computer science software project. Conducted by small student teams working from project definition to final documentation. Each student team has a CSE faculty member serving as its advisor. The first semester emphasis is on project definition, planning and implementation. Communication skills such as technical writing, oral presentations, and use of visual aids are also emphasized. Project work is supplemented by weekly seminars.
Explores the types and manner in which technology can improve business outcomes. Lectures and assigned readings cover topics such as business context for leveraging technology, various common and disruptive technologies, and estimating return-on-investment. Using employment engagements and/or real-world scenarios, students develop and present proposals based on their acquired knowledge. Emphasis is placed on learning how to discover opportunities, determine technologies to address those opportunities, and correlate the application of technology to business metrics to garner the support of decision-makers.
Practical teaching experience under supervision of an experienced instructor. Students learn fundamentals of teaching, including course and lecture planning, instructional delivery, classroom environment and management, and assessment. Students will benefit from significant hands-on experience in the lectures, recitations, and office hours. Department approval is required.
Practical teaching experience under supervision of an experienced instructor. Students learn fundamentals of teaching, including course and lecture planning, instructional delivery, classroom environment and management, and assessment. Students will benefit from significant hands-on experience in the lectures, recitations, and office hours. Department approval is required.
Principles of artificial language description and design. Sentence parsing techniques, including operator precedence, bounded-context, and syntax-directed recognizer schemes. The semantic problem as it relates to interpreters and compilers. Dynamic storage allocation, table grammars, code optimization, compiler-writing languages.
Process and thread programming models, management, and scheduling. Resource sharing and deadlocks. Memory management, including virtual memory and page replacement strategies. I/O issues in the operating system. File system implementation. Multiprocessing. Computer security as it impacts the operating system.
Algorithms and programming techniques for generating three dimensional computer graphics. Rasterization, color, animation, interaction, textures, lighting models, ray tracing. Substantial focus on the interaction between the CPU and the GPU, relating to vertex and fragment shaders.
Fundamental techniques from image processing, pattern recognition, machine learning and deep learning used to process and understand visual data. Build full pipelines for solutions to classic vision problems such as object detection and recognition, image matching and retrieval, and scene understanding and reconstruction. New and challenging problems such as synthetic image generation.
Detailed analysis of a broad range of artificial intelligence (AI) algorithms and systems. Problem solving, knowledge representation, reasoning, planning, uncertainty and machine learning. Applications of AI to areas such as natural language processing, vision, and robotics.
Use of small computers embedded as part of other machines. Limited-resource microcontrollers and state machines from high description language. Embedded hardware: RAM, ROM, flash, timers, UARTs, PWM, A/D, multiplexing, debouncing. Development and debugging tools running on host computers. Real-Time Operating System (RTOS) semaphores, mailboxes, queues. Task priorities and rate monotonic scheduling. Software architectures for embedded systems.
Algorithms for searching, sorting, manipulating graphs and trees, finding shortest paths and minimum spanning trees, scheduling tasks, etc.: proofs of their correctness and analysis of their asymptotic runtime and memory demands. Designing algorithms: recursion, divide-and-conquer, greediness, dynamic programming. Limits on algorithm efficiency using elementary NP-completeness theory.
Algorithms for searching, sorting, manipulating graphs and trees, finding shortest paths and minimum spanning trees, scheduling tasks, etc.: proofs of their correctness and analysis of their asymptotic runtime and memory demands. Designing algorithms: recursion, divide-and-conquer, greediness, dynamic programming. Limits on algorithm efficiency using elementary NP-completeness theory.
Algorithms for searching, sorting, manipulating graphs and trees, finding shortest paths and minimum spanning trees, scheduling tasks, etc.: proofs of their correctness and analysis of their asymptotic runtime and memory demands. Designing algorithms: recursion, divide-and-conquer, greediness, dynamic programming. Limits on algorithm efficiency using elementary NP-completeness theory.
Algorithms for searching, sorting, manipulating graphs and trees, finding shortest paths and minimum spanning trees, scheduling tasks, etc.: proofs of their correctness and analysis of their asymptotic runtime and memory demands. Designing algorithms: recursion, divide-and-conquer, greediness, dynamic programming. Limits on algorithm efficiency using elementary NP-completeness theory.
Algorithms for searching, sorting, manipulating graphs and trees, finding shortest paths and minimum spanning trees, scheduling tasks, etc.: proofs of their correctness and analysis of their asymptotic runtime and memory demands. Designing algorithms: recursion, divide-and-conquer, greediness, dynamic programming. Limits on algorithm efficiency using elementary NP-completeness theory.
Design of large databases; normalization; query languages (including SQL); Transaction-processing protocols; Query optimization; performance tuning; distributed systems.
Overview of network security threats and vulnerabilities. Techniques and tools for detecting, responding to and recovering from security incidents. Fundamentals of cryptography. Hands-on experience with programming techniques for security protocols.
Overview of modern data mining techniques: data cleaning; attribute and subset selection; model construction, evaluation and application. Fundamental mathematics and algorithms for decision trees, covering algorithms, association mining, statistical modeling, linear models, neural networks, instance-based learning and clustering covered. Practical design, implementation, application, and evaluation of data mining techniques in class projects.
Independent or small-group unique projects related to blockchain systems and/or applications. While pursuing their own project, students serve as consultants to the other teams via a once-weekly class meeting in which each team presents updates on status, progress, and open problems, and one student gives a longer prepared presentation on current research or development results in the blockchain field. Each project team has its own separate second weekly meeting with the instructor for a more in-depth project review and discussion.
Exploration of theoretical and practical aspects of topics in distributed systems through a combination of readings, programming assignments, and projects. The main focal point is large distributed systems, in particular protocols to synchronize the activities of machines when operating over shared data. Techniques to ensure fault-tolerance and service-availability will also be discussed. Using distributed systems as a foundation, students gain skills in the design of complex, multilayered systems.
This course is designed to provide a thorough exploration of the fundamental principles underlying deep and generative learning algorithms. Generative models have made significant progress in recent years, largely due to the rapid advancement of deep neural networks. Cutting-edge techniques, designed for learning to sample from an unknown probability distribution given examples, have enabled scalable modeling of complex and high-dimensional data in many areas such as Large Language Models (LLMs) and Vision-Language Models (VLMs). The course delves into both theoretical foundations and real-world implementations of generative learning models, aiming to furnish students with a deep understanding of the latest algorithms and cutting-edge methodologies in generative artificial intelligence. Topics covered in this course include variational autoencoders, autoregressive models, transformers, attention mechanism, generative adversarial networks, normalizing flow models, energy and score-based models, and diffusion models. In addition to exploring these foundational concepts, the course will also address emerging trends and developments in the field of deep and generative learning.
This course is designed to provide a thorough exploration of the fundamental principles underlying deep and generative learning algorithms. Generative models have made significant progress in recent years, largely due to the rapid advancement of deep neural networks. Cutting-edge techniques, designed for learning to sample from an unknown probability distribution given examples, have enabled scalable modeling of complex and high-dimensional data in many areas such as Large Language Models (LLMs) and Vision-Language Models (VLMs). The course delves into both theoretical foundations and real-world implementations of generative learning models, aiming to furnish students with a deep understanding of the latest algorithms and cutting-edge methodologies in generative artificial intelligence. Topics covered in this course include variational autoencoders, autoregressive models, transformers, attention mechanism, generative adversarial networks, normalizing flow models, energy and score-based models, and diffusion models. In addition to exploring these foundational concepts, the course will also address emerging trends and developments in the field of deep and generative learning.
This course is designed to provide a thorough exploration of the fundamental principles underlying deep and generative learning algorithms. Generative models have made significant progress in recent years, largely due to the rapid advancement of deep neural networks. Cutting-edge techniques, designed for learning to sample from an unknown probability distribution given examples, have enabled scalable modeling of complex and high-dimensional data in many areas such as Large Language Models (LLMs) and Vision-Language Models (VLMs). The course delves into both theoretical foundations and real-world implementations of generative learning models, aiming to furnish students with a deep understanding of the latest algorithms and cutting-edge methodologies in generative artificial intelligence. Topics covered in this course include variational autoencoders, autoregressive models, transformers, attention mechanism, generative adversarial networks, normalizing flow models, energy and score-based models, and diffusion models. In addition to exploring these foundational concepts, the course will also address emerging trends and developments in the field of deep and generative learning.
This course is designed to provide a thorough exploration of the fundamental principles underlying deep and generative learning algorithms. Generative models have made significant progress in recent years, largely due to the rapid advancement of deep neural networks. Cutting-edge techniques, designed for learning to sample from an unknown probability distribution given examples, have enabled scalable modeling of complex and high-dimensional data in many areas such as Large Language Models (LLMs) and Vision-Language Models (VLMs). The course delves into both theoretical foundations and real-world implementations of generative learning models, aiming to furnish students with a deep understanding of the latest algorithms and cutting-edge methodologies in generative artificial intelligence. Topics covered in this course include variational autoencoders, autoregressive models, transformers, attention mechanism, generative adversarial networks, normalizing flow models, energy and score-based models, and diffusion models. In addition to exploring these foundational concepts, the course will also address emerging trends and developments in the field of deep and generative learning.
This course is designed to provide a thorough exploration of the fundamental principles underlying deep and generative learning algorithms. Generative models have made significant progress in recent years, largely due to the rapid advancement of deep neural networks. Cutting-edge techniques, designed for learning to sample from an unknown probability distribution given examples, have enabled scalable modeling of complex and high-dimensional data in many areas such as Large Language Models (LLMs) and Vision-Language Models (VLMs). The course delves into both theoretical foundations and real-world implementations of generative learning models, aiming to furnish students with a deep understanding of the latest algorithms and cutting-edge methodologies in generative artificial intelligence. Topics covered in this course include variational autoencoders, autoregressive models, transformers, attention mechanism, generative adversarial networks, normalizing flow models, energy and score-based models, and diffusion models. In addition to exploring these foundational concepts, the course will also address emerging trends and developments in the field of deep and generative learning.
Fundamental concepts of computing and "computational thinking": problem analysis, abstraction, algorithms, digital representation of information, and networks. Concepts of software development using the Python language. .
Algorithms and programming techniques for generating three dimensional computer graphics. Rasterization, color, animation, interaction, textures, lighting models, ray tracing. Substantial focus on the interaction between the CPU and the GPU, relating to vertex and fragment shaders. Department approval required.
Fundamental techniques from image processing, pattern recognition, machine learning and deep learning used to process and understand visual data. Build full pipelines for solutions to classic vision problems such as object detection and recognition, image matching and retrieval, and scene understanding and reconstruction. New and challenging problems such as synthetic image generation.
Average-case runtime analysis of algorithms. Randomized algorithms and probabilistic analysis of their performance. Analysis of data structures including hash tables, augmented data structures with order statistics. Amortized analysis. Elementary computational geometry. Limits on algorithm space efficiency using PSPACE-completeness theory.
Overview of network security threats and vulnerabilities. Techniques and tools for detecting, responding to and recovering from security incidents. Fundamentals of cryptography. Hands-on experience with programming techniques for security protocols. This course, a version of CSE 343 for graduate students, requires research projects and advanced assignments.
Modern data mining techniques: data cleaning; attribute and subset selection; model construction, evaluation and application. Algorithms for decision trees, covering algorithms, association rule mining, statistical modeling, model and regression trees, neural networks, instance-based learning and clustering covered. This course, a version of CSE 347 for graduate students, requires research projects and advanced assignments, and expects students to have a background in probability, statistics, and programming.
Independent or small-group graduate-level unique projects related to blockchain-systems and/or applications. While pursuing their own project, students serve as consultants to the other teams via a once-weekly class meeting in which each team presents updates on status, progress, and open problems, and one student gives a longer prepared presentation on current research or development results in the blockchain field. Each project team has its own separate second weekly meeting with the instructor for a more in-depth project review and discussion.
Exploration of theoretical and practical aspects of topics in distributed systems through a combination of readings, programming assignments, and projects. The main focal point is large distributed systems, in particular protocols to synchronize the activities of machines when operating over shared data. Techniques to ensure fault-tolerance and service-availability will also be discussed. Using distributed systems as a foundation, students gain skills in the design of complex, multilayered systems.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
Thesis.
This course is designed to provide a thorough exploration of the fundamental principles underlying deep and generative learning algorithms. Generative models have made significant progress in recent years, largely due to the rapid advancement of deep neural networks. Cutting-edge techniques, designed for learning to sample from an unknown probability distribution given examples, have enabled scalable modeling of complex and high-dimensional data in many areas such as Large Language Models (LLMs) and Vision-Language Models (VLMs). The course delves into both theoretical foundations and real-world implementations of generative learning models, aiming to furnish students with a deep understanding of the latest algorithms and cutting-edge methodologies in generative artificial intelligence. Topics covered in this course include variational autoencoders, autoregressive models, transformers, attention mechanism, generative adversarial networks, normalizing flow models, energy and score-based models, and diffusion models. In addition to exploring these foundational concepts, the course will also address emerging trends and developments in the field of deep and generative learning.
This course is designed to provide a thorough exploration of the fundamental principles underlying deep and generative learning algorithms. Generative models have made significant progress in recent years, largely due to the rapid advancement of deep neural networks. Cutting-edge techniques, designed for learning to sample from an unknown probability distribution given examples, have enabled scalable modeling of complex and high-dimensional data in many areas such as Large Language Models (LLMs) and Vision-Language Models (VLMs). The course delves into both theoretical foundations and real-world implementations of generative learning models, aiming to furnish students with a deep understanding of the latest algorithms and cutting-edge methodologies in generative artificial intelligence. Topics covered in this course include variational autoencoders, autoregressive models, transformers, attention mechanism, generative adversarial networks, normalizing flow models, energy and score-based models, and diffusion models. In addition to exploring these foundational concepts, the course will also address emerging trends and developments in the field of deep and generative learning.
This course is designed to provide a thorough exploration of the fundamental principles underlying deep and generative learning algorithms. Generative models have made significant progress in recent years, largely due to the rapid advancement of deep neural networks. Cutting-edge techniques, designed for learning to sample from an unknown probability distribution given examples, have enabled scalable modeling of complex and high-dimensional data in many areas such as Large Language Models (LLMs) and Vision-Language Models (VLMs). The course delves into both theoretical foundations and real-world implementations of generative learning models, aiming to furnish students with a deep understanding of the latest algorithms and cutting-edge methodologies in generative artificial intelligence. Topics covered in this course include variational autoencoders, autoregressive models, transformers, attention mechanism, generative adversarial networks, normalizing flow models, energy and score-based models, and diffusion models. In addition to exploring these foundational concepts, the course will also address emerging trends and developments in the field of deep and generative learning.
This course is designed to provide a thorough exploration of the fundamental principles underlying deep and generative learning algorithms. Generative models have made significant progress in recent years, largely due to the rapid advancement of deep neural networks. Cutting-edge techniques, designed for learning to sample from an unknown probability distribution given examples, have enabled scalable modeling of complex and high-dimensional data in many areas such as Large Language Models (LLMs) and Vision-Language Models (VLMs). The course delves into both theoretical foundations and real-world implementations of generative learning models, aiming to furnish students with a deep understanding of the latest algorithms and cutting-edge methodologies in generative artificial intelligence. Topics covered in this course include variational autoencoders, autoregressive models, transformers, attention mechanism, generative adversarial networks, normalizing flow models, energy and score-based models, and diffusion models. In addition to exploring these foundational concepts, the course will also address emerging trends and developments in the field of deep and generative learning.
This course is designed to provide a thorough exploration of the fundamental principles underlying deep and generative learning algorithms. Generative models have made significant progress in recent years, largely due to the rapid advancement of deep neural networks. Cutting-edge techniques, designed for learning to sample from an unknown probability distribution given examples, have enabled scalable modeling of complex and high-dimensional data in many areas such as Large Language Models (LLMs) and Vision-Language Models (VLMs). The course delves into both theoretical foundations and real-world implementations of generative learning models, aiming to furnish students with a deep understanding of the latest algorithms and cutting-edge methodologies in generative artificial intelligence. Topics covered in this course include variational autoencoders, autoregressive models, transformers, attention mechanism, generative adversarial networks, normalizing flow models, energy and score-based models, and diffusion models. In addition to exploring these foundational concepts, the course will also address emerging trends and developments in the field of deep and generative learning.
This course is desi gned to provide a thorough exploration of the fundamental principles underlying deep and generative learning algorithms. Generative models have made significant progress in recent years, largely due to the rapid advancement of deep neural networks. Cutting-edge techniques, designed for learning to sample from an unknown probability distribution given examples, have enabled scalable modeling of complex and high-dimensional data in many areas such as Large Language Models (LLMs) and Vision-Language Models (VLMs). The course delves into both theoretical foundations and real-world implementations of generative learning models, aiming to furnish students with a deep understanding of the latest algorithms and cutting-edge methodologies in generative artificial intelligence. Topics covered in this course include variational autoencoders, autoregressive models, transformers, attention mechanism, generative adversarial networks, normalizing flow models, energy and score-based models, and diffusion models. In addition to exploring these foundational concepts, the course will also address emerging trends and developments in the field of deep and generative learning.