Fall Term Schedule
Fall 2024
Number | Title | Instructor | Time |
---|
CSC 400-1
Jiebo Luo
TR 4:50PM - 6:05PM
|
An introduction to the technical, communal, and societal aspects of graduate education in computer science at Rochester. Majority Most class meetings will consist of group discussions and presentations that focus on a broad range of topics, and are intended to improve the critical analysis, technical writing, presentation, and problem-solving skills of students and in to preparing for scientific research. The course also offers a forum for individual department faculty members to discuss their research interests and recent results. Satisfactory performance is required of all first-year graduate students.
|
CSC 412-1
Yukang Yan
TR 11:05AM - 12:20PM
|
This course will explore the design, implementation, and evaluation of user interfaces. Students will study the theoretical methods for interface design and evaluation, including requirements gathering, usability heuristics, user interface inspections, usability studies, information visualization, and prototyping. Case studies of interface successes and failures will augment theory with practical experiences. Students will apply this methodology to assignments in the design, implementation, and evaluation cycle. Students taking this course at the graduate level will have additional readings and assignments.
|
CSC 413-01
Mujdat Cetin
MW 2:00PM - 3:15PM
|
This course provides a broad introduction to augmented and virtual reality (AR/VR) systems. The course involves lectures covering an overview of all aspects of the AR/VR domain, as well as individual work performed by each student aimed at providing more intensive training on various aspects of AR/VR. Topics covered in the lectures and class workshops include history, conceptual origins, and design/evaluation principles of AR/VR technologies; optics/platforms/sensors/displays; auditory perception and spatial audio; graphics and computation; data processing and machine intelligence for AR/VR; introduction to AR/VR programming tools; societal implications and ethical aspects. At the end of the course, students will have gained familiarity with the techniques, languages, and cultures of fields integral to the convergent research theme of AR/VR. This course is co-instructed by Daniel Nikolov, Mujdat Cetin, Zhiyao Duan, Chenliang Xu, and Yuhao Zhu, and it includes additional guest lectures and workshops.
|
CSC 416-01
Zhen Bai
TR 9:40AM - 10:55AM
|
Human activity is embodied through all our sensorimotor capacities, immersed in our immediate physical and social surroundings. Augmented Reality (AR) and Virtual Reality (VR) technologies have shown vast potential to extend our sensorimotor and social experiences in 3D space. This undergraduate/graduate course aims to help students to develop understanding of key AR/VR concepts, principles, technologies, design practices and development tools. The students will obtain hands-on experiences of creating AR/VR applications that address real-world problems in domains such as education, collaboration, and quality of life, and understand technological and ethical implications of AR/VR such as human behavior sensing and ethical challenges. CSC 172 and CSC 214 required (or proven equivalent application development experience); CSC 131 recommended.
|
CSC 427-01
Maria Helguera
MW 10:25AM - 11:40AM
|
This course will introduce the students to the basic concepts of digital image processing, and establish a good foundation for further study and research in this field. The theoretical components of this course will be presented at a level that seniors and first year graduate students who have taken introductory courses in vectors, matrices, probability, statistics, linear systems, and computer programming should be comfortable with. Topics cover in this course will include intensity transformation and spatial filtering, filtering in the frequency domain, image restoration, morphological image processing, image segmentation, image registration, and image compression. The course will also provide a brief introduction to python (ipython), the primary programming language that will be used for solving problems in class as well as take-home assignments. prerequisites: ECE 242 and ECE 440 & 446 are recommended or permission of instructor
|
CSC 435-1
Jiaming Liang
TR 9:40AM - 10:55AM
|
This course primarily focuses on algorithms for large-scale optimization problems arising in machine learning and data science applications. The first part will cover first-order methods including gradient and subgradient methods, mirror descent, proximal gradient method, accelerated gradient method, Frank-Wolfe method, and inexact proximal point methods. The second part will introduce algorithms for nonconvex optimization, stochastic optimization, distributed optimization, manifold optimization, reinforcement learning, and those beyond first-order.
|
CSC 440-01
Monika Polak
TR 2:00PM - 3:15PM
|
Fundamental concepts and techniques of data mining, including data attributes, data visualization, data pre-processing, mining frequent patterns, association and correlation, classification methods, and cluster analysis. Advanced topics include outlier detection, stream mining, and social media data mining. CSC 440, a graduate-level course, requires additional readings and a course project.
|
CSC 441-01
Ralf Haefner
TR 12:30PM - 1:45PM
|
Computational neuroscience studies how the brain can be understood in terms of computations implemented by neural circuits, and in terms of using computational methods to analyze neural and behavioral data. This course for advanced undergraduates and graduate students starts with models of individuals neurons before moving on to networks of neurons and behavior. It provides both a classic signal processing, and a probabilistic perspective on how neurons support the brain’s computations. While primarily lecture-based, an important part of the course are exercises that typically consist on implementing (programming) a model discussed in the class and analyze its behavior. The course also provides the opportunity for a final project but this is not required. The material mostly considers the sensory system and perceptual decision-making.
|
CSC 442-1
Jian Kang
TR 11:05AM - 12:20PM
|
Introduces fundamental principles and key applications of artificial intelligence, including heuristic search, automated reasoning, probability, and machine learning. Programming projects will be assigned. This course provides a foundation for advanced AI courses.
|
CSC 445-01
Chenliang Xu
TR 9:40AM - 10:55AM
|
Much of the recent advances in machine learning and artificial intelligence have been dominated by neural network approaches broadly described as deep learning. This course provides an overview of the most important deep learning techniques covering both theoretical foundations and practical applications. The applications focus on problems in image understanding and language modeling utilizing state-of-the-art deep learning libraries and tools, which are introduced in the course. Prerequisites: MATH 164, MATH 165, and CSC 172. Programming in Python.
|
CSC 452-01
Yanan Guo
MW 3:25PM - 4:40PM
|
Introduction to computer architecture and the layering of hardware/software systems. Topics include instruction set design; logical building blocks; computer arithmetic; processor organization; the memory hierarchy (registers, caches, main memory, and secondary storage); I/O buses, devices, and interrupts; microcode and assembly language; virtual machines; the roles of the assembler, linker, compiler, and operating system; technological trends and the future of computing hardware. Several programming assignments required. Prerequisites: MATH 150 Discrete Mathematics and CSC 172 Data Structures and Algorithms
|
CSC 453-01
Chen Ding
MW 3:25PM - 4:40PM
|
Modern software is complex and more than a single person can fully comprehend. This course teaches collaborative programming which is multi-person construction of software where each person's contribution is non-trivial and clearly defined and documented. The material to study includes design principles, safe and modular programming in modern programming languages including Rust, software teams and development processes, design patterns, and productivity tools. The assignments include collaborative programming and software design and development in teams. Students in CSC 453 and TCS 453 have additional reading and requirements. Prerequisites: CSC 172 Data Structures and Algorithms, or equivalent for CSC 253. CSC 172 and CSC 252 or equivalent for CSC 453 and TCS 453.
|
CSC 454-01
George Ferguson
MW 10:25AM - 11:40AM
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues. Prerequisites: CSC 173 Computation and Formal Systems, and 252 Computer Organization, or equivalent.
|
CSC 456-1
John Criswell
TR 2:00PM - 3:15PM
|
Principles of operating system design, explored within the practical context of traditional, embedded, distributed, and real-time operating systems. Topics include device management, process management, scheduling, synchronization principles, memory management and virtual memory, file management and remote files, protection and security, fault tolerance, networks, and distributed computing. CSC 456, a graduate-level course, requires additional readings and assignments.
|
CSC 457-1
Andrew Read-McFarland
MW 4:50PM - 6:05PM
|
Introduction to computer networks and computer communication: Architecture and Protocols:. Design of protocols for error recovery, reliable delivery, routing and congestion control. Store-and-forward networks, satellite networks, local area networks and locally distributed systems. Case studies of networks, protocols and protocol families. Emphasis on software design issues in computer communication.
|
CSC 459-1
Yuhao Zhu
WF 11:50AM - 1:05PM
|
We will first study the fundamental building blocks of visual computing, including human visual system, camera imaging, computer graphics, image/video compression, and display technologies. We will then explore application domains that build on top of these fundamental building blocks such as Augmented/Virtual Reality, computational photography, autonomous machines, and digital cultural heritage. The course will necessarily span many scientific and engineering domains such as visual neuroscience, cognition, optics, signal processing, and computer systems.
|
CSC 461-1
Eustrat Zhupa
MW 12:30PM - 1:45PM
|
This course presents the fundamental concepts of database design and use. It provides a study of data models, data description languages, and query facilities including relational algebra and SQL, data normalization, transactions and their properties, physical data organization and indexing, security issues and object databases. It also looks at the new trends in databases. The knowledge of the above topics will be applied in the design and implementation of a database application using a target database management system as part of a semester-long group project.
|
CSC 462-1
Anson Kahng
TR 4:50PM - 6:05PM
|
This course will cover foundational concepts in descriptive analyses, probability, and statistical inference. Topics to be covered include data exploration through descriptive statistics (with a heavy emphasis on using R for such analyses), elementary probability, diagnostic testing, combinatorics, random variables, elementary distribution theory, statistical inference, and statistical modeling. The inference portion of the course will focus on building and applying hypothesis tests and confidence intervals for population means, proportions, variances, and correlations. Non-parametric alternatives will also be introduced. The modeling portion of the course will include ANOVA, and simple and multiple regression and their respective computational methods. Students will be introduced to the R statistical computing environment. PREREQUISITES: MTH 150 or MTH 150A; AND MTH 142 or MTH 161 or MTH 171 (or equivalent)
|
CSC 464-1
Zhiyao Duan
TR 12:30PM - 1:45PM
|
Computer audition is the study of how to design a computational system that can analyze and process auditory scenes. Example problems in this field include source separation (splitting audio mixtures into individual source tracks), pitch estimation (estimating the pitches played by each instrument), timbre modeling (finding features to distinguish different kinds of instruments), and source localization (finding where the sound comes from). This course will cover both fundamentals and state-of-the-art research in this field, which applies various kinds of signal processing and machine learning techniques. Multiple programming assignments will help students practice what they learn, and a final research project will lead students through the entire research process. Prerequisites: ECE 246/446 or ECE 272/472 or other equivalent signal processing courses, and Python/Matlab programming. Knowledge of machine learning techniques such as Markov models, support vector machines and neural networks is also helpful, but not required.
|
CSC 474-1
Gaurav Sharma
MW 4:50PM - 6:05PM
|
Classical computation models and complexity classes, linear algebra formulation of quantum mechanics, quantum computation models, qubits, quantum circuits, and quantum computation complexity classes, Glover's search and Shor's factorization quantum algorithms, adiabatic quantum computation. Prerequisites: Linear Algebra (UR Math 165 or equivalent), College Physics (UR PHYS 122 or equivalent), or instructor permission
|
CSC 477-01
Christopher Kanan
TR 3:25PM - 4:40PM
|
Deep learning systems are now being widely productionized at large corporations and many AI-centric start-ups have been created. Productionizing AI systems requires more than just algorithmic considerations. We need to organize the data for training these systems, measure the bias present in these systems after training them, monitor them over time, and more. This course covers these topics, including, but are not limited to, deploying AI systems, MLOps, model versioning, dataset curation, data management, AI ethics/fairness, detecting and mitigation of bias, detecting out-of-distribution inputs, domain shift, data-centric AI, real-time machine learning, continual machine learning, monitoring AI systems after deployment, model/data parallelism, managing AI projects/teams, training and inference on edge-devices, and launching AI start-ups. Prerequisites: At least one course that covers neural networks, e.g., CSC 242, CSC 298/578, CSC 266/466), (CSC 249/449), or instructor permission. Students are expected to be familiar with Python, one or more deep learning toolboxes, deep learning, and machine learning more broadly. Students should have at least a high-level understanding of backpropagation, multi-layer perceptrons, transformers, convolutional neural networks, and neural network fine-tuning.
|
CSC 479-1
Daniel Stefankovic
MW 9:00AM - 10:15AM
|
The course will cover concepts, data structures, and algorithmic problems in computational geometry. The concepts will include convexity, triangulations, and point-line arrangements. The algorithmic problems will include convex hulls, low dimensional linear programming, sweep paradigm, and Voronoi diagrams. The data structures will include kd-trees, segment trees, and range trees. Prerequisites: Data Structures and Algorithms (CSC 172)
|
CSC 480-01
Kaave Hosseini
MW 2:00PM - 3:15PM
|
This course studies fundamental computer models and their computational limitations. Finite-State machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages , undecidability. Prerequisites: CSC 173 Computation and Formal Systems, and MTH 150 Discrete Mathematics.
|
CSC 480-02
Kaave Hosseini
M 4:50PM - 6:05PM
|
No description
|
CSC 480-03
Kaave Hosseini
W 4:50PM - 6:05PM
|
No description
|
CSC 480-07
Kaave Hosseini
T 6:15PM - 7:30PM
|
No description
|
CSC 480-08
Kaave Hosseini
R 3:25PM - 4:15PM
|
No description
|
CSC 481-1
Andrew Read-McFarland
MW 9:00AM - 10:15AM
|
The modern study of cryptography investigates techniques for facilitating interactions between distrustful entities. In this course we introduce some of the fundamental concepts of this study. Emphasis will be placed on the foundations of cryptography and in particular on precise definitions and proof techniques. The main skills that will be assumed from these courses are: the ability to understand and write formal mathematical definitions and proofs and 2) comfort with reasoning about algorithms, such as proving their correctness and analyzing their running times. It is also important that you are familiar with basic probability. CSC 280 (or equivalent), MATH150 (or mathematical maturity), or permission of instructor.
|
CSC 482-01
Daniel Stefankovic
TR 11:05AM - 12:20PM
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
CSC 482-02
Daniel Stefankovic
T 6:15PM - 7:30PM
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
CSC 482-03
Daniel Stefankovic
W 6:15PM - 7:30PM
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
CSC 482-04
Daniel Stefankovic
M 6:15PM - 7:30PM
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
CSC 482-05
Daniel Stefankovic
W 7:40PM - 8:55PM
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
CSC 484-1
Kaave Hosseini
MW 4:50PM - 6:05PM
|
Advanced study of design and analysis of algorithms. Topics typically include: growth of functions; recurrences; probabilistic analysis and randomized algorithms; maximum flow; sorting networks; expander graphs; matrix operations; linear programming; discrete Fourier transform; number-theoretic algorithms; string matching; computational geometry; NP-completeness; approximation algorithms. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments.
|
CSC 495-01
James Allen
|
Blank Description
|
CSC 495-02
John Criswell
|
Blank Description
|
CSC 495-03
Zhen Bai
|
Blank Description
|
CSC 495-04
Chen Ding
|
Blank Description
|
CSC 495-05
Gaurav Sharma
|
Blank Description
|
CSC 495-06
Daniel Gildea
|
Blank Description
|
CSC 495-07
Lane Hemaspaandra
|
Blank Description
|
CSC 495-08
Ehsan Hoque
|
Blank Description
|
CSC 495-09
Yukang Yan
|
Blank Description
|
CSC 495-10
Jiebo Luo
|
Blank Description
|
CSC 495-11
Fatemeh Nargesian
|
Blank Description
|
CSC 495-12
Randal Nelson
|
Blank Description
|
CSC 495-13
Sreepathi Pai
|
Blank Description
|
CSC 495-14
Lenhart Schubert
|
Blank Description
|
CSC 495-15
|
Blank Description
|
CSC 495-16
Daniel Stefankovic
|
Blank Description
|
CSC 495-17
Muthu Venkitasubramaniam
|
Blank Description
|
CSC 495-18
Chenliang Xu
|
Blank Description
|
CSC 495-19
Yuhao Zhu
|
Blank Description
|
CSC 495-20
Aaron White
|
Blank Description
|
CSC 495-21
Thomas Howard
|
Blank Description
|
CSC 495-22
Christopher Kanan
|
Blank Description
|
CSC 495A-1
|
Blank Description
|
CSC 511-01
Hangfeng He
MW 9:00AM - 10:15AM
|
This seminar offers an introduction to Large Language Models (LLMs), covering essential concepts such as Transformers, BERT, GPT-3, InstructGPT, prompting & decoding, and emergent abilities. Students will engage with a range of topics through paper presentations on themes such as Tool-Augmented LLMs, Multimodal Learning, LLMs for Science, Social and Ethical Concerns, Superintelligence Concerns, and Democratizing LLMs. Participants are required to present and discuss papers, write critical literature reviews, reproduce paper results, and collaborate on team projects. This seminar aims to provide a thorough understanding of LLMs, exploring their origins, opportunities, and concerns to enhance professional expertise in the field.
|
CSC 513-01
Mujdat Cetin; Zhen Bai
TR 9:40AM - 10:55AM
|
This is the third course offered as part of the PhD training program on augmented and virtual reality (AR/VR). The goal of the course is to provide interdisciplinary collaborative project experience in AR/VR. The course involves small teams of students from multiple departments working together on semester-long projects on AR/VR with the guidance of one or more faculty involved in the PhD training program. The expected end products of this Practicum course are tangible artifacts that represent what the students have learned, discovered, or invented. Types of artifacts include research papers; patent applications; open-source software; as well as online tutorials and videos for undergraduates, K-12 students, or the general public. Prerequisites: ECE 410-1 or OPT 410-1 or BME 410-1 or BCSC 570-1 or NSCI 415-1 or CSC 413-1 or CVSC 534-1 Instructors: Lead - Mujdat Cetin, Zhen Bai, Jannick Rolland, Michele Rucci
|
CSC 571-01
Sreepathi Pai
MW 9:00AM - 10:15AM
|
This course will survey techniques for creating and deploying high-performance and efficient large-scale machine learning (ML) systems. Topics chosen from the current research literature will span ML applications, ML programming models, code generation and optimization, automatic parallelization, performance modeling, systems-level challenges, and specialized AI hardware.
|
CSC 595-1
John Criswell
|
No description
|
CSC 595-10
Jiebo Luo
|
Blank Description
|
CSC 595-11
Fatemeh Nargesian
|
Blank Description
|
CSC 595-13
Sreepathi Pai
|
Blank Description
|
CSC 595-14
Lenhart Schubert
|
Blank Description
|
CSC 595-15
Michael Scott
|
Blank Description
|
CSC 595-16
Daniel Stefankovic
|
Blank Description
|
CSC 595-17
Hangfeng He
|
Blank Description
|
CSC 595-18
Chenliang Xu
|
Blank Description
|
CSC 595-19
Yuhao Zhu
|
Blank Description
|
CSC 595-2
Jiaming Liang
|
Blank Description
|
CSC 595-20
Aaron White
|
Blank Description
|
CSC 595-21
Gonzalo Mateos Buckstein
|
Blank Description
|
CSC 595-22
Thomas Howard
|
Blank Description
|
CSC 595-23
Gregory Heyworth
|
Blank Description
|
CSC 595-24
Christopher Kanan
|
Blank Description
|
CSC 595-25
Mujdat Cetin
|
Blank Description
|
CSC 595-26
Anson Kahng
|
Blank Description
|
CSC 595-27
Jian Kang
|
Blank Description
|
CSC 595-28
Kaave Hosseini
|
Blank Description
|
CSC 595-29
Adam Sefkow
|
No description
|
CSC 595-3
Zhen Bai
|
Blank Description
|
CSC 595-4
Chen Ding
|
Blank Description
|
CSC 595-5
Sandhya Dwarkadas
|
Blank Description
|
CSC 595-6
Daniel Gildea
|
Blank Description
|
CSC 595-7
Lane Hemaspaandra
|
Blank Description
|
CSC 595-8
Ehsan Hoque
|
Blank Description
|
CSC 595-9
Yukang Yan
|
Blank Description
|
CSC 595A-1
Yuhao Zhu
|
Blank Description
|
CSC 595A-2
Chenliang Xu
|
Blank Description
|
CSC 595A-3
Ehsan Hoque
|
Blank Description
|
CSC 595A-4
Chen Ding
|
Blank Description
|
CSC 595A-5
Sreepathi Pai
|
Blank Description
|
CSC 595A-6
Jiebo Luo
|
No description
|
CSC 595B-1
Jiebo Luo
|
Blank Description
|
CSC 595B-2
|
Blank Description
|
CSC 597-2
M 11:50AM - 1:05PM
|
Blank Description
|
CSC 895-1
|
Blank Description
|
CSC 897-1
|
Blank Description
|
CSC 899-01
James Allen
|
Blank Description
|
CSC 986V-1
|
Blank Description
|
CSC 995-1
Daniel Gildea
|
Blank Description
|
CSC 997-1
Daniel Gildea
|
Blank Description
|
CSC 999-01
Daniel Gildea
|
Blank Description
|
CSC 999A-2
Sreepathi Pai
|
No description
|
Fall 2024
Number | Title | Instructor | Time |
---|---|
Monday | |
CSC 597-2
M 11:50AM - 1:05PM
|
|
Blank Description
|
|
CSC 480-02
Kaave Hosseini
M 4:50PM - 6:05PM
|
|
No description
|
|
CSC 482-04
Daniel Stefankovic
M 6:15PM - 7:30PM
|
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
|
Monday and Wednesday | |
CSC 479-1
Daniel Stefankovic
MW 9:00AM - 10:15AM
|
|
The course will cover concepts, data structures, and algorithmic problems in computational geometry. The concepts will include convexity, triangulations, and point-line arrangements. The algorithmic problems will include convex hulls, low dimensional linear programming, sweep paradigm, and Voronoi diagrams. The data structures will include kd-trees, segment trees, and range trees. Prerequisites: Data Structures and Algorithms (CSC 172)
|
|
CSC 481-1
Andrew Read-McFarland
MW 9:00AM - 10:15AM
|
|
The modern study of cryptography investigates techniques for facilitating interactions between distrustful entities. In this course we introduce some of the fundamental concepts of this study. Emphasis will be placed on the foundations of cryptography and in particular on precise definitions and proof techniques. The main skills that will be assumed from these courses are: the ability to understand and write formal mathematical definitions and proofs and 2) comfort with reasoning about algorithms, such as proving their correctness and analyzing their running times. It is also important that you are familiar with basic probability. CSC 280 (or equivalent), MATH150 (or mathematical maturity), or permission of instructor.
|
|
CSC 511-01
Hangfeng He
MW 9:00AM - 10:15AM
|
|
This seminar offers an introduction to Large Language Models (LLMs), covering essential concepts such as Transformers, BERT, GPT-3, InstructGPT, prompting & decoding, and emergent abilities. Students will engage with a range of topics through paper presentations on themes such as Tool-Augmented LLMs, Multimodal Learning, LLMs for Science, Social and Ethical Concerns, Superintelligence Concerns, and Democratizing LLMs. Participants are required to present and discuss papers, write critical literature reviews, reproduce paper results, and collaborate on team projects. This seminar aims to provide a thorough understanding of LLMs, exploring their origins, opportunities, and concerns to enhance professional expertise in the field.
|
|
CSC 571-01
Sreepathi Pai
MW 9:00AM - 10:15AM
|
|
This course will survey techniques for creating and deploying high-performance and efficient large-scale machine learning (ML) systems. Topics chosen from the current research literature will span ML applications, ML programming models, code generation and optimization, automatic parallelization, performance modeling, systems-level challenges, and specialized AI hardware.
|
|
CSC 427-01
Maria Helguera
MW 10:25AM - 11:40AM
|
|
This course will introduce the students to the basic concepts of digital image processing, and establish a good foundation for further study and research in this field. The theoretical components of this course will be presented at a level that seniors and first year graduate students who have taken introductory courses in vectors, matrices, probability, statistics, linear systems, and computer programming should be comfortable with. Topics cover in this course will include intensity transformation and spatial filtering, filtering in the frequency domain, image restoration, morphological image processing, image segmentation, image registration, and image compression. The course will also provide a brief introduction to python (ipython), the primary programming language that will be used for solving problems in class as well as take-home assignments. prerequisites: ECE 242 and ECE 440 & 446 are recommended or permission of instructor
|
|
CSC 454-01
George Ferguson
MW 10:25AM - 11:40AM
|
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues. Prerequisites: CSC 173 Computation and Formal Systems, and 252 Computer Organization, or equivalent.
|
|
CSC 461-1
Eustrat Zhupa
MW 12:30PM - 1:45PM
|
|
This course presents the fundamental concepts of database design and use. It provides a study of data models, data description languages, and query facilities including relational algebra and SQL, data normalization, transactions and their properties, physical data organization and indexing, security issues and object databases. It also looks at the new trends in databases. The knowledge of the above topics will be applied in the design and implementation of a database application using a target database management system as part of a semester-long group project.
|
|
CSC 413-01
Mujdat Cetin
MW 2:00PM - 3:15PM
|
|
This course provides a broad introduction to augmented and virtual reality (AR/VR) systems. The course involves lectures covering an overview of all aspects of the AR/VR domain, as well as individual work performed by each student aimed at providing more intensive training on various aspects of AR/VR. Topics covered in the lectures and class workshops include history, conceptual origins, and design/evaluation principles of AR/VR technologies; optics/platforms/sensors/displays; auditory perception and spatial audio; graphics and computation; data processing and machine intelligence for AR/VR; introduction to AR/VR programming tools; societal implications and ethical aspects. At the end of the course, students will have gained familiarity with the techniques, languages, and cultures of fields integral to the convergent research theme of AR/VR. This course is co-instructed by Daniel Nikolov, Mujdat Cetin, Zhiyao Duan, Chenliang Xu, and Yuhao Zhu, and it includes additional guest lectures and workshops.
|
|
CSC 480-01
Kaave Hosseini
MW 2:00PM - 3:15PM
|
|
This course studies fundamental computer models and their computational limitations. Finite-State machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages , undecidability. Prerequisites: CSC 173 Computation and Formal Systems, and MTH 150 Discrete Mathematics.
|
|
CSC 452-01
Yanan Guo
MW 3:25PM - 4:40PM
|
|
Introduction to computer architecture and the layering of hardware/software systems. Topics include instruction set design; logical building blocks; computer arithmetic; processor organization; the memory hierarchy (registers, caches, main memory, and secondary storage); I/O buses, devices, and interrupts; microcode and assembly language; virtual machines; the roles of the assembler, linker, compiler, and operating system; technological trends and the future of computing hardware. Several programming assignments required. Prerequisites: MATH 150 Discrete Mathematics and CSC 172 Data Structures and Algorithms
|
|
CSC 453-01
Chen Ding
MW 3:25PM - 4:40PM
|
|
Modern software is complex and more than a single person can fully comprehend. This course teaches collaborative programming which is multi-person construction of software where each person's contribution is non-trivial and clearly defined and documented. The material to study includes design principles, safe and modular programming in modern programming languages including Rust, software teams and development processes, design patterns, and productivity tools. The assignments include collaborative programming and software design and development in teams. Students in CSC 453 and TCS 453 have additional reading and requirements. Prerequisites: CSC 172 Data Structures and Algorithms, or equivalent for CSC 253. CSC 172 and CSC 252 or equivalent for CSC 453 and TCS 453.
|
|
CSC 457-1
Andrew Read-McFarland
MW 4:50PM - 6:05PM
|
|
Introduction to computer networks and computer communication: Architecture and Protocols:. Design of protocols for error recovery, reliable delivery, routing and congestion control. Store-and-forward networks, satellite networks, local area networks and locally distributed systems. Case studies of networks, protocols and protocol families. Emphasis on software design issues in computer communication.
|
|
CSC 474-1
Gaurav Sharma
MW 4:50PM - 6:05PM
|
|
Classical computation models and complexity classes, linear algebra formulation of quantum mechanics, quantum computation models, qubits, quantum circuits, and quantum computation complexity classes, Glover's search and Shor's factorization quantum algorithms, adiabatic quantum computation. Prerequisites: Linear Algebra (UR Math 165 or equivalent), College Physics (UR PHYS 122 or equivalent), or instructor permission
|
|
CSC 484-1
Kaave Hosseini
MW 4:50PM - 6:05PM
|
|
Advanced study of design and analysis of algorithms. Topics typically include: growth of functions; recurrences; probabilistic analysis and randomized algorithms; maximum flow; sorting networks; expander graphs; matrix operations; linear programming; discrete Fourier transform; number-theoretic algorithms; string matching; computational geometry; NP-completeness; approximation algorithms. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments.
|
|
Tuesday | |
CSC 480-07
Kaave Hosseini
T 6:15PM - 7:30PM
|
|
No description
|
|
CSC 482-02
Daniel Stefankovic
T 6:15PM - 7:30PM
|
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
|
Tuesday and Thursday | |
CSC 416-01
Zhen Bai
TR 9:40AM - 10:55AM
|
|
Human activity is embodied through all our sensorimotor capacities, immersed in our immediate physical and social surroundings. Augmented Reality (AR) and Virtual Reality (VR) technologies have shown vast potential to extend our sensorimotor and social experiences in 3D space. This undergraduate/graduate course aims to help students to develop understanding of key AR/VR concepts, principles, technologies, design practices and development tools. The students will obtain hands-on experiences of creating AR/VR applications that address real-world problems in domains such as education, collaboration, and quality of life, and understand technological and ethical implications of AR/VR such as human behavior sensing and ethical challenges. CSC 172 and CSC 214 required (or proven equivalent application development experience); CSC 131 recommended.
|
|
CSC 435-1
Jiaming Liang
TR 9:40AM - 10:55AM
|
|
This course primarily focuses on algorithms for large-scale optimization problems arising in machine learning and data science applications. The first part will cover first-order methods including gradient and subgradient methods, mirror descent, proximal gradient method, accelerated gradient method, Frank-Wolfe method, and inexact proximal point methods. The second part will introduce algorithms for nonconvex optimization, stochastic optimization, distributed optimization, manifold optimization, reinforcement learning, and those beyond first-order.
|
|
CSC 445-01
Chenliang Xu
TR 9:40AM - 10:55AM
|
|
Much of the recent advances in machine learning and artificial intelligence have been dominated by neural network approaches broadly described as deep learning. This course provides an overview of the most important deep learning techniques covering both theoretical foundations and practical applications. The applications focus on problems in image understanding and language modeling utilizing state-of-the-art deep learning libraries and tools, which are introduced in the course. Prerequisites: MATH 164, MATH 165, and CSC 172. Programming in Python.
|
|
CSC 513-01
Mujdat Cetin; Zhen Bai
TR 9:40AM - 10:55AM
|
|
This is the third course offered as part of the PhD training program on augmented and virtual reality (AR/VR). The goal of the course is to provide interdisciplinary collaborative project experience in AR/VR. The course involves small teams of students from multiple departments working together on semester-long projects on AR/VR with the guidance of one or more faculty involved in the PhD training program. The expected end products of this Practicum course are tangible artifacts that represent what the students have learned, discovered, or invented. Types of artifacts include research papers; patent applications; open-source software; as well as online tutorials and videos for undergraduates, K-12 students, or the general public. Prerequisites: ECE 410-1 or OPT 410-1 or BME 410-1 or BCSC 570-1 or NSCI 415-1 or CSC 413-1 or CVSC 534-1 Instructors: Lead - Mujdat Cetin, Zhen Bai, Jannick Rolland, Michele Rucci
|
|
CSC 412-1
Yukang Yan
TR 11:05AM - 12:20PM
|
|
This course will explore the design, implementation, and evaluation of user interfaces. Students will study the theoretical methods for interface design and evaluation, including requirements gathering, usability heuristics, user interface inspections, usability studies, information visualization, and prototyping. Case studies of interface successes and failures will augment theory with practical experiences. Students will apply this methodology to assignments in the design, implementation, and evaluation cycle. Students taking this course at the graduate level will have additional readings and assignments.
|
|
CSC 442-1
Jian Kang
TR 11:05AM - 12:20PM
|
|
Introduces fundamental principles and key applications of artificial intelligence, including heuristic search, automated reasoning, probability, and machine learning. Programming projects will be assigned. This course provides a foundation for advanced AI courses.
|
|
CSC 482-01
Daniel Stefankovic
TR 11:05AM - 12:20PM
|
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
|
CSC 441-01
Ralf Haefner
TR 12:30PM - 1:45PM
|
|
Computational neuroscience studies how the brain can be understood in terms of computations implemented by neural circuits, and in terms of using computational methods to analyze neural and behavioral data. This course for advanced undergraduates and graduate students starts with models of individuals neurons before moving on to networks of neurons and behavior. It provides both a classic signal processing, and a probabilistic perspective on how neurons support the brain’s computations. While primarily lecture-based, an important part of the course are exercises that typically consist on implementing (programming) a model discussed in the class and analyze its behavior. The course also provides the opportunity for a final project but this is not required. The material mostly considers the sensory system and perceptual decision-making.
|
|
CSC 464-1
Zhiyao Duan
TR 12:30PM - 1:45PM
|
|
Computer audition is the study of how to design a computational system that can analyze and process auditory scenes. Example problems in this field include source separation (splitting audio mixtures into individual source tracks), pitch estimation (estimating the pitches played by each instrument), timbre modeling (finding features to distinguish different kinds of instruments), and source localization (finding where the sound comes from). This course will cover both fundamentals and state-of-the-art research in this field, which applies various kinds of signal processing and machine learning techniques. Multiple programming assignments will help students practice what they learn, and a final research project will lead students through the entire research process. Prerequisites: ECE 246/446 or ECE 272/472 or other equivalent signal processing courses, and Python/Matlab programming. Knowledge of machine learning techniques such as Markov models, support vector machines and neural networks is also helpful, but not required.
|
|
CSC 440-01
Monika Polak
TR 2:00PM - 3:15PM
|
|
Fundamental concepts and techniques of data mining, including data attributes, data visualization, data pre-processing, mining frequent patterns, association and correlation, classification methods, and cluster analysis. Advanced topics include outlier detection, stream mining, and social media data mining. CSC 440, a graduate-level course, requires additional readings and a course project.
|
|
CSC 456-1
John Criswell
TR 2:00PM - 3:15PM
|
|
Principles of operating system design, explored within the practical context of traditional, embedded, distributed, and real-time operating systems. Topics include device management, process management, scheduling, synchronization principles, memory management and virtual memory, file management and remote files, protection and security, fault tolerance, networks, and distributed computing. CSC 456, a graduate-level course, requires additional readings and assignments.
|
|
CSC 477-01
Christopher Kanan
TR 3:25PM - 4:40PM
|
|
Deep learning systems are now being widely productionized at large corporations and many AI-centric start-ups have been created. Productionizing AI systems requires more than just algorithmic considerations. We need to organize the data for training these systems, measure the bias present in these systems after training them, monitor them over time, and more. This course covers these topics, including, but are not limited to, deploying AI systems, MLOps, model versioning, dataset curation, data management, AI ethics/fairness, detecting and mitigation of bias, detecting out-of-distribution inputs, domain shift, data-centric AI, real-time machine learning, continual machine learning, monitoring AI systems after deployment, model/data parallelism, managing AI projects/teams, training and inference on edge-devices, and launching AI start-ups. Prerequisites: At least one course that covers neural networks, e.g., CSC 242, CSC 298/578, CSC 266/466), (CSC 249/449), or instructor permission. Students are expected to be familiar with Python, one or more deep learning toolboxes, deep learning, and machine learning more broadly. Students should have at least a high-level understanding of backpropagation, multi-layer perceptrons, transformers, convolutional neural networks, and neural network fine-tuning.
|
|
CSC 400-1
Jiebo Luo
TR 4:50PM - 6:05PM
|
|
An introduction to the technical, communal, and societal aspects of graduate education in computer science at Rochester. Majority Most class meetings will consist of group discussions and presentations that focus on a broad range of topics, and are intended to improve the critical analysis, technical writing, presentation, and problem-solving skills of students and in to preparing for scientific research. The course also offers a forum for individual department faculty members to discuss their research interests and recent results. Satisfactory performance is required of all first-year graduate students.
|
|
CSC 462-1
Anson Kahng
TR 4:50PM - 6:05PM
|
|
This course will cover foundational concepts in descriptive analyses, probability, and statistical inference. Topics to be covered include data exploration through descriptive statistics (with a heavy emphasis on using R for such analyses), elementary probability, diagnostic testing, combinatorics, random variables, elementary distribution theory, statistical inference, and statistical modeling. The inference portion of the course will focus on building and applying hypothesis tests and confidence intervals for population means, proportions, variances, and correlations. Non-parametric alternatives will also be introduced. The modeling portion of the course will include ANOVA, and simple and multiple regression and their respective computational methods. Students will be introduced to the R statistical computing environment. PREREQUISITES: MTH 150 or MTH 150A; AND MTH 142 or MTH 161 or MTH 171 (or equivalent)
|
|
Wednesday | |
CSC 480-03
Kaave Hosseini
W 4:50PM - 6:05PM
|
|
No description
|
|
CSC 482-03
Daniel Stefankovic
W 6:15PM - 7:30PM
|
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
|
CSC 482-05
Daniel Stefankovic
W 7:40PM - 8:55PM
|
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
|
Wednesday and Friday | |
CSC 459-1
Yuhao Zhu
WF 11:50AM - 1:05PM
|
|
We will first study the fundamental building blocks of visual computing, including human visual system, camera imaging, computer graphics, image/video compression, and display technologies. We will then explore application domains that build on top of these fundamental building blocks such as Augmented/Virtual Reality, computational photography, autonomous machines, and digital cultural heritage. The course will necessarily span many scientific and engineering domains such as visual neuroscience, cognition, optics, signal processing, and computer systems.
|
|
Thursday | |
CSC 480-08
Kaave Hosseini
R 3:25PM - 4:15PM
|
|
No description
|