Fall Courses
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 .
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 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.
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.
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.
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.
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.
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.
Blockchain system concepts, data structures, and algorithms. Cryptographic algorithms for blockchain security. Distributed consensus algorithms for decentralized control in both a public and permissioned blockchain setting. Smart contracts. Cross-chain transactions. Blockchain databases and enterprise blockchains.
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.
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.
Overview of systems and network administration in a networked UNIX-like environment. System installation, configuration, administration, and maintenance; security principles; ethics; network, host, and user management; standard services such as electronic mail, DNS, and WWW; file systems; backups and disaster recovery planning; troubleshooting and support services; automation, scripting; infrastructure planning.
Overview of systems and network administration in a networked UNIX-like environment. System installation, configuration, administration, and maintenance; security principles; ethics; network, host, and user management; standard services such as electronic mail, DNS, and WWW; file systems; backups and disaster recovery planning; troubleshooting and support services; automation, scripting; infrastructure planning.
Second 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 second semester emphasis is on project implementation, verification & validation, and documentation requirements. It culminates in a public presentation and live demonstration to external judges as well as CSE faculty and students.
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.
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.
Computational techniques and principles of structural biology used to examine molecular structure, function, and evolution. Topics include: protein structure alignment and prediction; molecular surface analysis; statistical modeling; QSAR; computational drug design; influences on binding specificity; protein-ligand, -protein, and -DNA interactions; molecular simulation, electrostatics. Tutorials on UNIX systems and research software support an interdisciplinary collaborative project in computational structural biology. Must have junior standing or higher.
This class will introduce typical challenges faced by persons with disabilities and the role of assistive technologies (ATs) in solving such challenges. The class will examine opportunities presented by recent advances in mobile and AI technologies. Working in groups, each student will be expected to acquire and apply relevant skills in designing AT solutions. The class can be taken by students with diverse backgrounds including the following: community and population health, social and behavioral sciences, business, engineering and computer science.
Overview of modern natural language processing techniques: text normalization, language model, part-of-speech tagging, hidden Markov model, syntactic and dependency parsing, semantics, word sense, reference resolution, dialog agent, machine translation. Design, implementation and evaluation of classic NLP algorithms.
Bayesian decision theory and the design of parametric and nonparametric classification and regression: linear, quadratic, nearest-neighbors, neural nets. Boosting, bagging.
An introduction to deep learning, a subset of machine learning, concerned with the development and application of modern neural networks. We will cover a range of topics from basic Neural Networks, Convolutional Neural Network (CNN) and Recurrent Neural Network (RNN), Attention, Transformers, Generative Adversarial Networks (GAN), and state-of-the art networks and their applications in computer vision, engineering, remote sensing, medical, language, and AI for social good applications.
Algorithms for automated learning from interactions with the environment to optimize long-term performance. Markov decision processes, dynamic programming, temporal-difference learning, Monte Carlo reinforcement learning methods.
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.
Architecture and protocols of computer networks. Protocol layers; network topology; data-communication principles, including circuit switching, packet switching and error control techniques; sliding window protocols, protocol analysis and verification; routing and flow control; local and wide area networks; network interconnection; client-server interaction; emerging networking trends and technologies; topics in security and privacy.
Contemporary computer games: techniques for implementing the program controlling the computer component; using Artificial Intelligence in contemporary computer games to enhance the gaming experience: pathfinding and navigation systems; group movement and tactics; adaptive games, game genres, machine scripting language for game designers, and player modeling.
Provides working knowledge of large-scale data analysis using open source frameworks such as Apache Spark and Waikato Environment for Knowledge Analysis (Weka). Includes patterns employed in big data analytics, including classification, collaborative filtering, recommender systems, natural language processing, simulation, deep learning, and anomaly detection. Project-oriented software course; students should have substantial programming experience in one or more high-level languages. Past experience in data mining and/or machine learning expected.
Provides working knowledge of large-scale data analysis using open source frameworks such as Apache Spark and Waikato Environment for Knowledge Analysis (Weka). Includes patterns employed in big data analytics, including classification, collaborative filtering, recommender systems, natural language processing, simulation, deep learning, and anomaly detection. Project-oriented software course; students should have substantial programming experience in one or more high-level languages. Past experience in data mining and/or machine learning expected.
Algorithms employed in mobile robotics for navigation, sensing, and estimation. Common sensor systems, motion planning, robust estimation, bayesian estimation techniques, Kalman and Particle filters, localization and mapping.
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.
Parallel computer architectures, parallel languages, parallelizing compilers and operating systems. Design, implementation, and analysis of parallel algorithms for scientific and data-intensive computing. Credit is not given for both CSE 375 and CSE 475 .
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.
Technical writing, reading the literature critically, analyzing and presenting data, conducting research, making effective presentations, and understanding social and ethical responsibilities. Topics drawn from probability and statistics, use of scripting languages, and conducting large-scale experiments. Must have first-year status in either the CS or CompE Ph. D. program.
Computational techniques and principles of structural biology used to examine molecular structure, function, and evolution. Topics include: protein structure alignment and prediction; molecular surface analysis; statistical modeling; QSAR; computational drug design; influences on binding specificity; protein-ligand, -protein, and –DNA interactions; molecular simulation, electrostatics. This course, a version of 307 for graduate students, requires advanced assignments and a collaborative project. Consent of instructor required.
This class will introduce typical challenges faced by persons with disabilities and the role of assistive technologies (ATs) in solving such challenges. The class will examine opportunities presented by recent advances in mobile and AI technologies. Working in groups, each student will be expected to acquire and apply relevant skills in designing AT solutions. The class can be taken by students with diverse backgrounds including the following: community and population health, social and behavioral sciences, business, engineering and computer science.
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. .
Overview of modern natural language processing techniques: text normal- ization, language model, part-of-speech tagging, hidden Markov model, syntatic and dependency parsing, semantics, word sense, reference resolution, dialog agent, machine translation. Three projects to design, implement and evaluate classic NLP algorithms.
Bayesian decision theory and the design of parametric and nonparametric classification and regression: linear, quadratic, nearest-neighbors, neural nets. Boosting, bagging. This course, a version of CSE 326 for graduate students requires advanced assignments.
Introduction to deep learning, a subset of machine learning, concerned with the development and application of modern neural networks. We will cover a range of topics from basic Neural Networks, Convolutional Neural Network (CNN) and Recurrent Neural Network (RNN), Attention, Transformers, Generative Adversarial Networks (GAN), and state-of-the art networks and their applications in computer vision, engineering, remote sensing, medical, language, and AI for social good applications.
Principles of rational autonomous software systems. Agent theory; agent architectures, including logic-based, utility-based, practical reasoning, and reactive; multi-agent systems; communication languages; coordination methods including negotiation and distributed problem solving; applications.
Formal model based on Markov decision processes for automated learning from interactions with stochastic, incompletely known environments. Markov decision processes, dynamic programming, temporal-difference learning, Monte Carlo reinforcement learning methods. Must have graduate standing in Computer Science or have consent of instructor.
Formal foundations of blockchain systems: cryptography, consensus, zero-knowledge proofs, transaction processing both on-chain and cross-chain, validation, and governance. Algorithms and data structures for blockchain systems. Programming paradigms for smart contracts. Current research in blockchain drawing from the cryptography, database, operating system, and parallel computing research communities.
Provides working knowledge of large-scale data analysis using open source frameworks such as Apache Spark and Waikato Environment for Knowledge Analysis (Weka). Includes patterns employed in big data analytics, including classification, collaborative filtering, recommender systems, natural language processing, simulation, deep learning, and anomaly detection. Project-oriented software course; students should have substantial programming experience in one or more high-level languages. Past experience in data mining and/or machine learning expected.
Provides working knowledge of large-scale data analysis using open source frameworks such as Apache Spark and Waikato Environment for Knowledge Analysis (Weka). Includes patterns employed in big data analytics, including classification, collaborative filtering, recommender systems, natural language processing, simulation, deep learning, and anomaly detection. Project-oriented software course; students should have substantial programming experience in one or more high-level languages. Past experience in data mining and/or machine learning expected.
Algorithms employed in mobile robotics for navigation, sensing, and estimation. Common sensor systems, motion planning, robust estimation, Bayesian estimation techniques, Kalman and particle filters, localization and mapping. This course, a version of CSE 360 for graduate students will require an independent project to be presented in class.
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.
Parallel computer architectures, parallel languages, parallelizing compilers and operating systems. Design, implementation, and analysis of parallel algorithms for scientific and data-intensive computing. This is a graduate version of CSE 375 . As such, it will require additional assignments. Credit is not given for both CSE 375 and CSE 475 .
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.