Winter 2025

We aren't offering any courses in Winter 2025.

Spring 2025

CSE 510 ML and Signal Processing for Wireless IoT systems (Lecture)
Section: AYY
Instructor: Sai Roshan Ayyalasomayajula
Description: The course introduces basic elements of wireless signals and wireless sensing. The focus is on Monostatic and Bi-static Wireless Sensing that has brought wide-applications ranging from localization, navigation, breathing, heart-rate estimation, autonomous driving perception and many more to come. To understand these wireless sensing systems, we will cover the basics of signals and systems, that focus on continuous and discrete time. Fourier series and transforms. Linear Time-Invariant Systems. Impulse response, frequency response, and transfer functions. Convolution. Sampling. Aliasing. We will then focus on Single carrier wireless transceiver design, Wireless Signal Modulations, Mono-Static Sensing, Bi-Static Sensing, and finally discuss the current ML-based Wireless sensor systems. The objective of the course is to enable students to: - Gain fundamental knowledge of signal and systems. - Gain fundamental knowledge of wireless signals. - Understand mono-static and bi-static wireless sensor systems. - Learn basic signal processing algorithms - Prepare for studying advanced Wireless topics, and a career in the field of Wireless Sensors. At the end of this course, each student should be able to: - Have a good overall picture of signals and systems in general and wireless signals in particular. - Have a rough idea of how various wireless signals behave and where they are used for sensing. - Know how to do signal processing in MATLAB and/or Python. - Know how to do basic signal analysis of popular wireless protocols (WiFi, BLE, UBW, cellular). - Know how to use popular signal processing tools ranging from FFT, MUSIC, CFAR, and more - Start reading more advanced/research-oriented signal processing and wireless systems materials.
Instruction Mode: In person
Class #: 22170
Dates: 01/22/2025 - 05/06/2025
Days, Time: TR, 12:30PM-1:50PM
Location: Academ 352, North Campus
Credit Hours: 1-3
Enrollment: 1/33 (Active)
Info: CSE 510 course catalog page
CSE 510 Interactive Programming Environments (Lecture)
Section: ETH
Instructor: Ethan Blanton
Description: In comparison to today's typical very rapid compile-test-debug cycle, some programming environments have offered highly interactive, online development and debugging. Examples of this include Lisp machines, Smalltalk, and Forth. These programming environments lend themselves to a more conversational style of development, with very rapid prototyping and Agile-style continuous deployment, but at the individual developer level, and predating Agile practices by decades. This course will explore interactive programming environments in a semi-structured fashion, with a structured introduction to several alternatives followed by student-driven exploration, along with some coverage of history and implementation. Students should expect to learn several programming languages at a surface level, as well as one language in sufficient depth to implement a course project, from primary documentation sources for those languages.
Prereqs: Instructor Permission
Instruction Mode: In person
Class #: 23919
Dates: 01/22/2025 - 05/06/2025
Days, Time: MWF, 1:00PM-1:50PM
Location: Norton 209, North Campus
Credit Hours: 1-3
Enrollment: 11/12 (0/12 seats reserved: force registration only) (Active)
Info: CSE 510 course catalog page
CSE 510 Theory of Programming Languages (Lecture)
Section: HIRS
Instructor: Andrew Hirsch
Description: This course introduces the theory of programming languages. We study operational, axiomatic, and denotational semantics. We focus on lambda calculus, the most important foundation for programming languages, but also look at imperative programming. We also introduce some of the most important techniques for programming-languages research, including type theory, logical relations, and categorical semantics.
Notes: Requires knowledge of a typed functional programming language (such as Haskell, OCaml, Reason, etc).
Prereqs: CSE 505
Instruction Mode: In person
Class #: 22831
Dates: 01/22/2025 - 05/06/2025
Days, Time: MWF, 4:00PM-4:50PM
Location: Nsc 216, North Campus
Credit Hours: 1-3
Enrollment: 6/30 (Active)
Info: CSE 510 course catalog page
CSE 510 GPU Programming and its Applications to Artificial Intelligence (Lecture)
Section: XION
Instructor: Jinjun Xiong
Description: Prerequisites: - Basic programming experience (preferably in Python and C++) - Familiarity with data structures, algorithms, and basic computer architectures - Introductory understanding of machine learning and neural networks - (Optional) Experience with parallel computing Instructor: Dr. Jinjun Xiong (jinjun@buffalo.edu), Empire Innovation Professor, Department of Computer Science & Engineering Course Description: This course provides a conceptual exploration of the design of Graphics Processing Units (GPU), its programming, and its applications to artificial intelligence (AI). Students will learn how to leverage the computational power of GPUs for efficient parallel computing, with a particular focus on accelerating machine learning algorithms. Topics covered include GPU architecture, parallel computing models, CUDA programming, and using GPUs to optimize AI tasks such as deep learning and graph neural networks. By the end of the course, students will have a solid understanding of how to program GPUs effectively and apply this knowledge to real-world AI problems. Learning Objectives: Upon successful completion of this course, students will be able to: 1. Understand the architecture and design of modern GPUs. 2. Program GPUs using CUDA to perform parallel computing tasks. 3. Apply GPU programming to accelerate machine learning and AI algorithms. 4. Understand the trade-offs in hardware, software, and algorithmic design when using GPUs for AI applications. 5. Evaluate and optimize AI algorithms for performance on GPUs. References Texts and Materials: • “Programming Massively Parallel Processors: A Hands-on Approach,” by Wen-mei Hwu, David Kirk, and Izzat El Hajj • “CUDA by Example: An Introduction to General-Purpose GPU Programming” by Jason Sanders and Edward Kandrot • Online documentation for CUDA and other GPU programming frameworks (available on NVIDIA’s website) • Research papers and articles provided throughout the course via the course website.
Notes: TBD
Prereqs: Basic concepts of parallel programming, familiarity with C/C++
Coreqs: Algorithmic Designs, Data Structures, Computer Architecture
URL: https://www.xlab-ub.com/
Instruction Mode: In person
Class #: 23722
Dates: 01/22/2025 - 05/06/2025
Days, Time: R, 1:00PM-3:50PM
Location: Davis 113A, North Campus
Credit Hours: 1-3
Enrollment: 0/30 (Active)
Info: CSE 510 course catalog page
CSE 610 Human-Computer Interaction and AI (Lecture)
Section: JIN
Instructor: Zhanpeng Jin
Description: Conventional computer design has usually been driven by the fast advances of semiconductor and hardware technology, the increasing demands of software and algorithms in computing resources, and the growing data/information available on the Internet. However, recently, it has been well recognized that the human, as the ultimate user, plays a more and more important role in determining the efficacy and efficiency of the developed computer systems, and human-computer interfaces are quickly becoming the key bottleneck in developing computer products that can meet the users’ needs. Human-computer interaction (HCI) has thus become a prominent area in computer science, and many prestigious universities have even opened dedicated schools or graduate programs for HCI. This course will teach you about the importance of human-computer interfaces in the design and development of things people use daily, especially those smart electronic gadgets and their profounds in human-centered studies, such as smart watches/wristbands, mobile/wearable devices, smart speakers, touch screen, eye/hand/limb tracking, body gesture, voice assistance, VR/AR/MR, and humanoid robots. We will discuss the capabilities, limitations, and future trends of HCI and other related systems. Moreover, the recent advances in machine learning and AI technologies have enabled new potential for HCI techniques. For instance, smart sensing technologies will be able to acquire various human behavioral data, allowing more user-centric behavioral profiling for more accurate localization, recommendation, and advertising. In this course, you will have access to the most advanced, innovative research ideas in HCI through reading the selected top-tier papers and working on individual and group projects to learn in a hands-on way about the various strategies/ideas of an effective HCI design and how to demonstrate your design’s effectiveness. By the end of this course, students are expected to develop the ability to integrate future-focused HCI thinking into their work, creating faster, simpler, and more intuitive experiences between humans and technology.
Notes: This class will require a general background (and interest) in human-computer interaction, ubiquitous computing, mobile and wearable computing, smart accessibility technology, Internet of Things (IoTs), and AI.
Prereqs: None
Instruction Mode: In person
Class #: 22999
Dates: 01/22/2025 - 05/06/2025
Days, Time: TR, 2:00PM-3:20PM
Location: Capen 108, North Campus
Credit Hours: 3
Enrollment: 2/30 (Active)
Info: CSE 610 course catalog page
CSE 702 unknown (Seminar)
Section: REGA
Instructor: Kenneth Regan
Description: unknown
Instruction Mode: In person
Class #: 21364
Dates: 01/22/2025 - 05/06/2025
Days, Time: T, 3:00PM-5:50PM
Location: Clemen 119, North Campus
Credit Hours: 1-3
Enrollment: 3/30 (0/11 seats reserved for computer science & engineering majors only) (Active)
Info: CSE 702 course catalog page
CSE 703 Making Quantum Computing Practical (Seminar)
Section: QIAO
Instructor: Chunming Qiao
Description: Quantum technology may very well be the next wave beyond AI/ML that will lead to unprecedented advancement in science and engineering. There are several main challenges to overcome before quantum computing can be practically useful. These include the small number of qubits (in the order of hundreds or up to a few thousand) available in a quantum processing unit (QPU) and their low fidelity (and fault tolerance). One potential approach to address the challenges is to network several small QPUs together using a quantum network. This seminar will explore research issues related to distributed quantum computing, and quantum data networking to support distributed quantum computing. As a seminar, the students is expected to possess a strong interest in research, and the ability to read and present research papers. Although no prior knowledge of quantum physics or quantum mechanics is needed, the students should have a background in linear algebra, algorithms, and networks. The students may be asked to take CSE439/539 (Quantum Computation), CSE489/589 (Modern Networking Concepts), or similar courses concurrently. Knowledge in distributed systems, datacenters, optimization, and algorithms would be a plus.
Prereqs: Courses in algebra and networking
URL: TBD
Instruction Mode: In person
Class #: 22921
Dates: 01/22/2025 - 05/06/2025
Days, Time: T, 2:00PM-4:50PM
Location: Davis 113A, North Campus
Credit Hours: 1-3
Enrollment: 6/30 (Active)
Info: CSE 703 course catalog page
CSE 706 Advanced Topics in Distributed Systems (Seminar)
Section: LU
Instructor: Haonan Lu
Description: This course aims to teach students the important problems in today's distributed storage systems and the state-of-the-art solutions offered by the academic community and industry. In this course, we will read, discuss, and present papers about hyper-scaler production systems, the fundamentals of distributed systems, transaction processing, fault tolerance, systems correctness, systems for ML, ML for systems, and serverless computing. This is an advanced course, requiring students to have a solid background in distributed systems, experience with paper reading, and good presentation skills.
Prereqs: CSE486/586
Instruction Mode: In person
Class #: 20409
Dates: 01/22/2025 - 05/06/2025
Days, Time: W, 3:00PM-5:50PM
Location: Bell 325, North Campus
Credit Hours: 1-3
Enrollment: 1/20 (Active)
Info: CSE 706 course catalog page