Spring Term Schedule
Spring 2025
Number | Title | Instructor | Time |
---|
CSC 402-1
Gonzalo Mateos Buckstein
MW 3:25PM - 4:40PM
|
The science of networks is an emerging discipline of great importance that combines graph theory, probability and statistics, and facets of engineering and the social sciences. This course will provide students with the mathematical tools and computational training to understand large-scale networks in the current era of Big Data. It will introduce basic network models and structural descriptors, network dynamics and prediction of processes evolving on graphs, modern algorithms for topology inference, community and anomaly detection, as well as fundamentals of social network analysis. All concepts and theories will be illustrated with numerous applications and case studies from technological, social, biological, and information networks. Prerequisites: Some mathematical maturity, comfortable with linear algebra, probability, and analysis (e.g., MTH164-165). Exposure to programming and Matlab useful, but not required. For more information, please visit the class website: https://www.hajim.rochester.edu/ece/sites/gmateos/ECE442.html
|
CSC 409-01
Christopher Kanan
M 2:00PM - 3:15PM
|
Many companies are working towards creating artificial general intelligence (AGI), i.e., systems capable of accomplishing any human intellectual task, and multiple companies aspire to create such systems within the next decade. WHile large language models (LLMs) do not yet have these capabilities, they exhibit "sparks" of AGI. In this course we review the concept of AGI and how we might assess a system to understand if it is an AGI. We will study the gaps in state-of-the-art systems and what would be needed for a system to be considered an AGI. We will also study AI ethics and safety, the socioeconomic implications of AGI, the likelihood of an intelligence explosion (i.e., the singularity), and existential risk due to AGI. Coursework includes readings, student presentations, and a project. Prerequisites: At least one course that covers neural networks, e.g., CSC 242, CSC 298/578, CSC 266/466, CSC 249/449, CSC 277/3477, or instructor permision. Students are expected to be familiar with Python, one or more deep learning toolboxes, deep learning, and machine learning more broadly. Students should have a solid understanding of large language models, e.g., GPT-based causal transformers and similar approaches, backpropagation, multi-layer perceptrons, transformers, convolutional neural networks, and neural network fine-tuning.
|
CSC 410-01
Daniel Gildea
TR 9:40AM - 10:55AM
|
This course gives an overview of numerical optimization, beginning with the theory of recognizing and manipulating convex optimization problems. We then examine widely used algorithms for both convex and non-convex problems and focus in the last third of the semester on applications of optimization in machine learning.
|
CSC 414-1
Mujdat Cetin; Yukang Yan
MW 2:00PM - 3:15PM
|
This is the second course offered as part of the PhD training program on augmented and virtual reality. It builds on the first course, Introduction to Augmented and Virtual Reality (AR/VR). The goal of the course is to provide exposure to problems in the AR/VR domain addressed by various disciplines. The course consists of three one-month long modules in a semester. Modules engage students in particular aspects of AR/VR or hands-on experience on AR/VR. Modules to be offered in various years include: fundamentals of optics for AR/VR; AR/VR in the silicon; foundations of visual perception in the context of AR/VR; computer audition and acoustic rendering; measuring the human brain; deep learning and visual recognition for AR/VR; brain-computer interfacing in a virtual environment; interaction techniques for AR/VR systems; 3D interfaces and interaction; AR/VR for collaborative education & professional training. In Spring 2025, the following three modules will be offered: 1) Fundamentals of optics for AR/VR (Daniel Nikolov and Jannick Rolland). Optics is central to near-eye displays and sensing. In this module, students will learn basic concepts and terminology of optics for AR/VR, as well as key visual requirements. Students will then learn about different optical architectures based on free-space or waveguide optics. Emerging technologies enabling compact architectures such as freeform optics and meta optics will be discussed. Students will be exposed to demonstrations of hands-on design in optical design software. 2) Interaction techniques for AR/VR systems (Yukang Yan). This module introduces the design and implementation of interaction techniques that can be applied in AR/VR systems, focusing on fundamental tasks such as target selection, navigation, object manipulation, and sensory input. Through the introduction of conceptual insights and hands-on practice, we aim to teach students how to create intuitive, effective interaction methods across different tasks and scenarios. Projects will encourage students to design and build their own interaction techniques, leading to a deeper understanding of user-centered design principles and the technical skills necessary to bring interactive concepts to life. 3) Professional encounters with leading AR/VR researchers. This module involves a series of seminars (titled Voices of XR) and discussion sessions with leading AR/VR researchers from academia and industry. This component of the course is offered in partnership with Studio X. Prerequisites: ECE 410 or OPT 410 or BME 410 or NSCI 415 or CSC 413 or CVSC 534 or equivalent experience. INSTRUCTORS: Mujdat Cetin; Daniel Nikolov; Jannick Rolland; Yukang Yan
|
CSC 440-1
Jian Kang
TR 4:50PM - 6:05PM
|
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 443-01
Ralf Haefner
TR 9:40AM - 10:55AM
|
This is a seminar-style course for advanced undergraduate and graduate students covering multiple areas of computational neuroscience by weekly readings and student presentations. Many of the topics are deeper explorations of topics covered in BCSC 247 Introduction to Computational Neuroscience, focusing on the sensory system, decision-making, action selection and active inference, especially from a probabilistic and normative perspective. The reading list is somewhat flexible and adaptable to student interest. There is an opportunity for a final project but this is not required.
|
CSC 446-1
Daniel Gildea
TR 11:05AM - 12:20PM
|
Mathematical foundations of classification, regression, and decision making. Supervised algorithms covered include perceptrons, logistic regression, support vector machines, and neural networks. Directed and undirected graphical models. Numerical parameter optimization, including gradient descent, expectation maximization, and other methods. Introduction to reinforcement learning. Proofs covered as appropriate. Significant programming projects will be assigned. This course involves a lot of math and algorithms. You should know multivariable calculus, linear algebra, and some algorithms. No formal prerequisites but MATH 165, MATH 164, and CSC 242 strongly recommended.
|
CSC 447-01
Hangfeng He
MW 10:25AM - 11:40AM
|
This introductory course in Natural Language Processing (NLP) explores the AI techniques enabling computers to understand and communicate with humans. Divided into four main sections—Statistical NLP, Neural NLP, Foundation Models, and Advanced Topics—the curriculum covers essential language tasks, from syntax and semantics to complex applications like question answering. We'll also touch on current trends in Large Language Models, such as emergent abilities and human-alignment techniques. Ideal for those interested in the intersection of AI and language, the course tackles challenges at the word, sentence, and document levels. Prereqs: CSC 172 & CSC 242
|
CSC 449-1
Chenliang Xu
TR 9:40AM - 10:55AM
|
Introduction to computer vision, including camera models, basic image processing, pattern and object recognition, and elements of human vision. Specific topics include geometric issues, statistical models, Hough transforms, color theory, texture, and optic flow. CSC 449, a graduate-level course, requires additional readings and assignments. Prerequisites: MATH 161 and CSC 242; MATH 165 strongly recommended
|
CSC 451-1
Michael Huang
TR 12:30PM - 1:45PM
|
This course is cross-listed with ECE201. Please refer to that course description.
|
CSC 452-1
Yuhao Zhu
WF 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/Obuses, 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.
|
CSC 454-1
Michael Scott
TR 3:25PM - 4:40PM
|
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.
|
CSC 455-1
Sree Pai
MW 10:25AM - 11:40AM
|
Programming is the automation of information processing. Program analysis and transformation is the automation of programming itself---how much a program can understand and improve other programs. Because of the diversity and complexity of computer hardware, programmers increasingly depend on automation in compilers and other tools to deliver efficient and reliable software. This course combines fundamental principles and (hands-on) practical applications. Specific topics include data flow and dependence theories; static and dynamic program transformation including parallelization; memory and cache management; type checking and program verification; and performance analysis and modeling. The knowledge and practice will help students to become experts in software performance and correctness. Students taking the graduate level will have additional course requirements and a more difficult project.
|
CSC 458-1
Andrew Read-McFarland
MW 3:25PM - 4:40PM
|
Principles of parallel and distributed systems, and the associated implementation and performance issues. Topics covered will include programming interfaces to parallel and distributed computing, interprocess communication, synchronization, and consistency models, fault tolerance and reliability, distributed process management, distributed file systems, multiprocessor architectures, parallel program optimization, and parallelizing compilers. Students taking this course at the 400 level will be required to complete additional readings and/or assignments.
|
CSC 461-1
Eustrat Zhupa
MW 10:25AM - 11:40AM
|
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. Note: Open to CSC and DSCC students only during registration week. Restriction will be lifted Monday, November 18.
|
CSC 463-1
Fatemeh Nargesian
MW 9:00AM - 10:15AM
|
This course explores the internals of data engines. Topics covered will include the relational model; relational database design principles based on dependencies and normal forms; query execution; transactions; recovery; query optimization; parallel query processing; NoSQL.
|
CSC 478-1
John Criswell
MW 6:15PM - 7:30PM
|
This course will teach students the foundations of computer security. Students will learn what security is, the design principles of secure systems, how security is enforced, and how security is compromised. Topics include access controls, information flow, basic applications of cryptography, buffer overflow attacks, and malware. Prerequisites: CSC 252 or CSC 452 or ECE 200.
|
CSC 480-1
Monika Polak
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, NP-completeness. Prerequisites: CSC 173 and MTH 150. YOU MUST REGISTER FOR A RECITATION WHEN REGISTERING FOR THE MAIN COURSE
|
CSC 480-2
Monika Polak
W 4:50PM - 6:05PM
|
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, NP-completeness.
|
CSC 480-3
Monika Polak
W 6:15PM - 7:30PM
|
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, NP-completeness.
|
CSC 480-4
Monika Polak
R 4:50PM - 6:05PM
|
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, NP-completeness.
|
CSC 480-5
Monika Polak
R 6:15PM - 7:30PM
|
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, NP-completeness.
|
CSC 480-7
Monika Polak
W 6:15PM - 7:30PM
|
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, NP-completeness.
|
CSC 480-8
Monika Polak
R 7:40PM - 8:55PM
|
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, NP-completeness.
|
CSC 480-9
Monika Polak
R 3:25PM - 4:40PM
|
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, NP-completeness.
|
CSC 482-1
Eustrat Zhupa
TR 9:40AM - 10:55AM
|
How does one design programs and ascertain their efficiency? Divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NP-completeness and intractable combinatorial search, optimization, and decision problems. Prerequisites: (CSC 172 and MTH 150) or MTH172. Students MUST register for a recitation when registering for this course.
|
CSC 482-2
Eustrat Zhupa
T 6:15PM - 7:30PM
|
How does one design programs and ascertain their efficiency? Divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NP-completeness and intractable combinatorial search, optimization, and decision problems.
|
CSC 482-3
Eustrat Zhupa
W 6:15PM - 7:30PM
|
How does one design programs and ascertain their efficiency? Divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NP-completeness and intractable combinatorial search, optimization, and decision problems.
|
CSC 482-4
Eustrat Zhupa
M 6:15PM - 7:30PM
|
How does one design programs and ascertain their efficiency? Divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NP-completeness and intractable combinatorial search, optimization, and decision problems.
|
CSC 482-5
Eustrat Zhupa
W 7:40PM - 8:55PM
|
How does one design programs and ascertain their efficiency? Divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NP-completeness and intractable combinatorial search, optimization, and decision problems.
|
CSC 483-1
Monika Polak
MW 9:00AM - 10:15AM
|
In this course students will learn about the current state of Public Key Cryptography. In particular the NIST (National Institute of Standards and Technology) process to solicit, evaluate, and standardize one or more quantum-resistant public-key cryptographic algorithms will be discussed. Quantum-Resistant Cryptography (QRC) refers to cryptographic systems that are secure against both quantum and classical computers. Such systems may be achieved through classical (i.e. non-quantum) means. The security of many commonly used cryptographic protocols (especially public-key cryptosystems) would be compromised if general-purpose large-scale, fault-tolerant quantum computers became a reality. This course covers the consequences of Quantum Computing and why it poses a threat to currently used cryptographic systems, and then discusses potential Post-Quantum cryptosystems designed to be resistant to such attacks. Students enrolled in this course must have a background in cryptography such as that obtained by taking CSC-281/CSC-481 (Introduction to Cryptography) or similar courses, or permission of the instructor.
|
CSC 485-01
Lane Hemaspaandra
MW 4:50PM - 6:05PM
|
This course covers gems from the study of elections and the study of algorithms. Students do not need to have previous exposure to either of those topics. Most of the class's work is done via in-class, hands-on, team-based problem-solving, and discussion of the solutions. Topics vary between years, but typical topics include how to fairly apportion (e.g., assign to states their number of seats in the US House of Representatives); using algorithms to manipulate elections and using complexity to protect elections from manipulative attacks; and the interaction between algorithms and information content. The course is designed to be accessible to any student from CSC, ECON, MATH, or PSCI who likes tackling problems as part of a team and discussing the solutions
|
CSC 486-1
Lane Hemaspaandra
MW 2:00PM - 3:15PM
|
This course is based on doing hands-on problem-solving to uncover the power and limitations of computer algorithms, and in particular focuses on in-class, group, discovery-based learning. This is usually done via the class's members creating algorithms under situation-specific assumptions, as much of complexity theory is based on simple algorithms. If you secretly liked 280 or 282, but would enjoy moving forward in a much smaller setting where you work with a few teammates to solve challenges and discover/design algorithms, this course likely is for you. The course typically covers the following: The difference between computable and uncomputable problems and between feasible and infeasible problems. Regarding the latter, what properties of a problem make it computationally simple? What properties of a problem may preclude its having efficient algorithms? How computationally hard are problems? Complete sets and low information content; P=NP?; characterizing whether one-way functions exist; reductions relating problems' complexities; complexity classes and hierarchies.
|
CSC 491-1
Michael Scott
|
Blank Description
|
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
Sandhya Dwarkadas
|
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
Henry Kautz
|
Blank Description
|
CSC 495-10
Jiebo Luo
|
Blank Description
|
CSC 495-11
Fatemeh Nargesian
|
Blank Description
|
CSC 495-12
Christopher Kanan
|
Blank Description
|
CSC 495-13
Sree Pai
|
Blank Description
|
CSC 495-14
Lenhart Schubert
|
Blank Description
|
CSC 495-15
Michael Scott
|
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
Zhiyao Duan
|
Blank Description
|
CSC 579-02
Chen Ding
R 9:40AM - 10:55AM
|
This seminar teaches the theoretical equivalence between programming languages and mathematical logic. Topics include functional programming, proof by induction, proof tactics, logic, inductively defined propositions, and the Curry-Howard Correspondence. The interactive theorem prover called Coq is used to write machine-checked proofs. Students enrolling in the course are expected to have advanced knowledge in either programming languages (CSC 253, 254 or 255) or mathematical logic.
|
CSC 595-1
John Criswell
|
Blank Description
|
CSC 595-10
Jiebo Luo
|
Blank Description
|
CSC 595-11
Fatemeh Nargesian
|
Blank Description
|
CSC 595-12
Ji Liu
|
Blank Description
|
CSC 595-13
Sree 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 597-1
Anson Kahng
M 11:50AM - 1:05PM
|
No description
|
CSC 895-1
Daniel Gildea
|
Blank Description
|
CSC 897-1
Daniel Gildea
|
Blank Description
|
CSC 899-01
Daniel Gildea
|
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
|
Spring 2025
Number | Title | Instructor | Time |
---|---|
Monday | |
CSC 597-1
Anson Kahng
M 11:50AM - 1:05PM
|
|
No description
|
|
CSC 409-01
Christopher Kanan
M 2:00PM - 3:15PM
|
|
Many companies are working towards creating artificial general intelligence (AGI), i.e., systems capable of accomplishing any human intellectual task, and multiple companies aspire to create such systems within the next decade. WHile large language models (LLMs) do not yet have these capabilities, they exhibit "sparks" of AGI. In this course we review the concept of AGI and how we might assess a system to understand if it is an AGI. We will study the gaps in state-of-the-art systems and what would be needed for a system to be considered an AGI. We will also study AI ethics and safety, the socioeconomic implications of AGI, the likelihood of an intelligence explosion (i.e., the singularity), and existential risk due to AGI. Coursework includes readings, student presentations, and a project. Prerequisites: At least one course that covers neural networks, e.g., CSC 242, CSC 298/578, CSC 266/466, CSC 249/449, CSC 277/3477, or instructor permision. Students are expected to be familiar with Python, one or more deep learning toolboxes, deep learning, and machine learning more broadly. Students should have a solid understanding of large language models, e.g., GPT-based causal transformers and similar approaches, backpropagation, multi-layer perceptrons, transformers, convolutional neural networks, and neural network fine-tuning.
|
|
CSC 482-4
Eustrat Zhupa
M 6:15PM - 7:30PM
|
|
How does one design programs and ascertain their efficiency? Divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NP-completeness and intractable combinatorial search, optimization, and decision problems.
|
|
Monday and Wednesday | |
CSC 463-1
Fatemeh Nargesian
MW 9:00AM - 10:15AM
|
|
This course explores the internals of data engines. Topics covered will include the relational model; relational database design principles based on dependencies and normal forms; query execution; transactions; recovery; query optimization; parallel query processing; NoSQL.
|
|
CSC 483-1
Monika Polak
MW 9:00AM - 10:15AM
|
|
In this course students will learn about the current state of Public Key Cryptography. In particular the NIST (National Institute of Standards and Technology) process to solicit, evaluate, and standardize one or more quantum-resistant public-key cryptographic algorithms will be discussed. Quantum-Resistant Cryptography (QRC) refers to cryptographic systems that are secure against both quantum and classical computers. Such systems may be achieved through classical (i.e. non-quantum) means. The security of many commonly used cryptographic protocols (especially public-key cryptosystems) would be compromised if general-purpose large-scale, fault-tolerant quantum computers became a reality. This course covers the consequences of Quantum Computing and why it poses a threat to currently used cryptographic systems, and then discusses potential Post-Quantum cryptosystems designed to be resistant to such attacks. Students enrolled in this course must have a background in cryptography such as that obtained by taking CSC-281/CSC-481 (Introduction to Cryptography) or similar courses, or permission of the instructor.
|
|
CSC 447-01
Hangfeng He
MW 10:25AM - 11:40AM
|
|
This introductory course in Natural Language Processing (NLP) explores the AI techniques enabling computers to understand and communicate with humans. Divided into four main sections—Statistical NLP, Neural NLP, Foundation Models, and Advanced Topics—the curriculum covers essential language tasks, from syntax and semantics to complex applications like question answering. We'll also touch on current trends in Large Language Models, such as emergent abilities and human-alignment techniques. Ideal for those interested in the intersection of AI and language, the course tackles challenges at the word, sentence, and document levels. Prereqs: CSC 172 & CSC 242
|
|
CSC 455-1
Sree Pai
MW 10:25AM - 11:40AM
|
|
Programming is the automation of information processing. Program analysis and transformation is the automation of programming itself---how much a program can understand and improve other programs. Because of the diversity and complexity of computer hardware, programmers increasingly depend on automation in compilers and other tools to deliver efficient and reliable software. This course combines fundamental principles and (hands-on) practical applications. Specific topics include data flow and dependence theories; static and dynamic program transformation including parallelization; memory and cache management; type checking and program verification; and performance analysis and modeling. The knowledge and practice will help students to become experts in software performance and correctness. Students taking the graduate level will have additional course requirements and a more difficult project.
|
|
CSC 461-1
Eustrat Zhupa
MW 10:25AM - 11:40AM
|
|
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. Note: Open to CSC and DSCC students only during registration week. Restriction will be lifted Monday, November 18.
|
|
CSC 414-1
Mujdat Cetin; Yukang Yan
MW 2:00PM - 3:15PM
|
|
This is the second course offered as part of the PhD training program on augmented and virtual reality. It builds on the first course, Introduction to Augmented and Virtual Reality (AR/VR). The goal of the course is to provide exposure to problems in the AR/VR domain addressed by various disciplines. The course consists of three one-month long modules in a semester. Modules engage students in particular aspects of AR/VR or hands-on experience on AR/VR. Modules to be offered in various years include: fundamentals of optics for AR/VR; AR/VR in the silicon; foundations of visual perception in the context of AR/VR; computer audition and acoustic rendering; measuring the human brain; deep learning and visual recognition for AR/VR; brain-computer interfacing in a virtual environment; interaction techniques for AR/VR systems; 3D interfaces and interaction; AR/VR for collaborative education & professional training. In Spring 2025, the following three modules will be offered: 1) Fundamentals of optics for AR/VR (Daniel Nikolov and Jannick Rolland). Optics is central to near-eye displays and sensing. In this module, students will learn basic concepts and terminology of optics for AR/VR, as well as key visual requirements. Students will then learn about different optical architectures based on free-space or waveguide optics. Emerging technologies enabling compact architectures such as freeform optics and meta optics will be discussed. Students will be exposed to demonstrations of hands-on design in optical design software. 2) Interaction techniques for AR/VR systems (Yukang Yan). This module introduces the design and implementation of interaction techniques that can be applied in AR/VR systems, focusing on fundamental tasks such as target selection, navigation, object manipulation, and sensory input. Through the introduction of conceptual insights and hands-on practice, we aim to teach students how to create intuitive, effective interaction methods across different tasks and scenarios. Projects will encourage students to design and build their own interaction techniques, leading to a deeper understanding of user-centered design principles and the technical skills necessary to bring interactive concepts to life. 3) Professional encounters with leading AR/VR researchers. This module involves a series of seminars (titled Voices of XR) and discussion sessions with leading AR/VR researchers from academia and industry. This component of the course is offered in partnership with Studio X. Prerequisites: ECE 410 or OPT 410 or BME 410 or NSCI 415 or CSC 413 or CVSC 534 or equivalent experience. INSTRUCTORS: Mujdat Cetin; Daniel Nikolov; Jannick Rolland; Yukang Yan
|
|
CSC 480-1
Monika Polak
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, NP-completeness. Prerequisites: CSC 173 and MTH 150. YOU MUST REGISTER FOR A RECITATION WHEN REGISTERING FOR THE MAIN COURSE
|
|
CSC 486-1
Lane Hemaspaandra
MW 2:00PM - 3:15PM
|
|
This course is based on doing hands-on problem-solving to uncover the power and limitations of computer algorithms, and in particular focuses on in-class, group, discovery-based learning. This is usually done via the class's members creating algorithms under situation-specific assumptions, as much of complexity theory is based on simple algorithms. If you secretly liked 280 or 282, but would enjoy moving forward in a much smaller setting where you work with a few teammates to solve challenges and discover/design algorithms, this course likely is for you. The course typically covers the following: The difference between computable and uncomputable problems and between feasible and infeasible problems. Regarding the latter, what properties of a problem make it computationally simple? What properties of a problem may preclude its having efficient algorithms? How computationally hard are problems? Complete sets and low information content; P=NP?; characterizing whether one-way functions exist; reductions relating problems' complexities; complexity classes and hierarchies.
|
|
CSC 402-1
Gonzalo Mateos Buckstein
MW 3:25PM - 4:40PM
|
|
The science of networks is an emerging discipline of great importance that combines graph theory, probability and statistics, and facets of engineering and the social sciences. This course will provide students with the mathematical tools and computational training to understand large-scale networks in the current era of Big Data. It will introduce basic network models and structural descriptors, network dynamics and prediction of processes evolving on graphs, modern algorithms for topology inference, community and anomaly detection, as well as fundamentals of social network analysis. All concepts and theories will be illustrated with numerous applications and case studies from technological, social, biological, and information networks. Prerequisites: Some mathematical maturity, comfortable with linear algebra, probability, and analysis (e.g., MTH164-165). Exposure to programming and Matlab useful, but not required. For more information, please visit the class website: https://www.hajim.rochester.edu/ece/sites/gmateos/ECE442.html
|
|
CSC 458-1
Andrew Read-McFarland
MW 3:25PM - 4:40PM
|
|
Principles of parallel and distributed systems, and the associated implementation and performance issues. Topics covered will include programming interfaces to parallel and distributed computing, interprocess communication, synchronization, and consistency models, fault tolerance and reliability, distributed process management, distributed file systems, multiprocessor architectures, parallel program optimization, and parallelizing compilers. Students taking this course at the 400 level will be required to complete additional readings and/or assignments.
|
|
CSC 485-01
Lane Hemaspaandra
MW 4:50PM - 6:05PM
|
|
This course covers gems from the study of elections and the study of algorithms. Students do not need to have previous exposure to either of those topics. Most of the class's work is done via in-class, hands-on, team-based problem-solving, and discussion of the solutions. Topics vary between years, but typical topics include how to fairly apportion (e.g., assign to states their number of seats in the US House of Representatives); using algorithms to manipulate elections and using complexity to protect elections from manipulative attacks; and the interaction between algorithms and information content. The course is designed to be accessible to any student from CSC, ECON, MATH, or PSCI who likes tackling problems as part of a team and discussing the solutions
|
|
CSC 478-1
John Criswell
MW 6:15PM - 7:30PM
|
|
This course will teach students the foundations of computer security. Students will learn what security is, the design principles of secure systems, how security is enforced, and how security is compromised. Topics include access controls, information flow, basic applications of cryptography, buffer overflow attacks, and malware. Prerequisites: CSC 252 or CSC 452 or ECE 200.
|
|
Tuesday | |
CSC 482-2
Eustrat Zhupa
T 6:15PM - 7:30PM
|
|
How does one design programs and ascertain their efficiency? Divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NP-completeness and intractable combinatorial search, optimization, and decision problems.
|
|
Tuesday and Thursday | |
CSC 410-01
Daniel Gildea
TR 9:40AM - 10:55AM
|
|
This course gives an overview of numerical optimization, beginning with the theory of recognizing and manipulating convex optimization problems. We then examine widely used algorithms for both convex and non-convex problems and focus in the last third of the semester on applications of optimization in machine learning.
|
|
CSC 443-01
Ralf Haefner
TR 9:40AM - 10:55AM
|
|
This is a seminar-style course for advanced undergraduate and graduate students covering multiple areas of computational neuroscience by weekly readings and student presentations. Many of the topics are deeper explorations of topics covered in BCSC 247 Introduction to Computational Neuroscience, focusing on the sensory system, decision-making, action selection and active inference, especially from a probabilistic and normative perspective. The reading list is somewhat flexible and adaptable to student interest. There is an opportunity for a final project but this is not required.
|
|
CSC 449-1
Chenliang Xu
TR 9:40AM - 10:55AM
|
|
Introduction to computer vision, including camera models, basic image processing, pattern and object recognition, and elements of human vision. Specific topics include geometric issues, statistical models, Hough transforms, color theory, texture, and optic flow. CSC 449, a graduate-level course, requires additional readings and assignments. Prerequisites: MATH 161 and CSC 242; MATH 165 strongly recommended
|
|
CSC 482-1
Eustrat Zhupa
TR 9:40AM - 10:55AM
|
|
How does one design programs and ascertain their efficiency? Divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NP-completeness and intractable combinatorial search, optimization, and decision problems. Prerequisites: (CSC 172 and MTH 150) or MTH172. Students MUST register for a recitation when registering for this course.
|
|
CSC 446-1
Daniel Gildea
TR 11:05AM - 12:20PM
|
|
Mathematical foundations of classification, regression, and decision making. Supervised algorithms covered include perceptrons, logistic regression, support vector machines, and neural networks. Directed and undirected graphical models. Numerical parameter optimization, including gradient descent, expectation maximization, and other methods. Introduction to reinforcement learning. Proofs covered as appropriate. Significant programming projects will be assigned. This course involves a lot of math and algorithms. You should know multivariable calculus, linear algebra, and some algorithms. No formal prerequisites but MATH 165, MATH 164, and CSC 242 strongly recommended.
|
|
CSC 451-1
Michael Huang
TR 12:30PM - 1:45PM
|
|
This course is cross-listed with ECE201. Please refer to that course description.
|
|
CSC 454-1
Michael Scott
TR 3:25PM - 4:40PM
|
|
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.
|
|
CSC 440-1
Jian Kang
TR 4:50PM - 6:05PM
|
|
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.
|
|
Wednesday | |
CSC 480-2
Monika Polak
W 4:50PM - 6:05PM
|
|
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, NP-completeness.
|
|
CSC 480-3
Monika Polak
W 6:15PM - 7:30PM
|
|
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, NP-completeness.
|
|
CSC 480-7
Monika Polak
W 6:15PM - 7:30PM
|
|
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, NP-completeness.
|
|
CSC 482-3
Eustrat Zhupa
W 6:15PM - 7:30PM
|
|
How does one design programs and ascertain their efficiency? Divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NP-completeness and intractable combinatorial search, optimization, and decision problems.
|
|
CSC 482-5
Eustrat Zhupa
W 7:40PM - 8:55PM
|
|
How does one design programs and ascertain their efficiency? Divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NP-completeness and intractable combinatorial search, optimization, and decision problems.
|
|
Wednesday and Friday | |
CSC 452-1
Yuhao Zhu
WF 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/Obuses, 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.
|
|
Thursday | |
CSC 579-02
Chen Ding
R 9:40AM - 10:55AM
|
|
This seminar teaches the theoretical equivalence between programming languages and mathematical logic. Topics include functional programming, proof by induction, proof tactics, logic, inductively defined propositions, and the Curry-Howard Correspondence. The interactive theorem prover called Coq is used to write machine-checked proofs. Students enrolling in the course are expected to have advanced knowledge in either programming languages (CSC 253, 254 or 255) or mathematical logic.
|
|
CSC 480-9
Monika Polak
R 3:25PM - 4:40PM
|
|
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, NP-completeness.
|
|
CSC 480-4
Monika Polak
R 4:50PM - 6:05PM
|
|
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, NP-completeness.
|
|
CSC 480-5
Monika Polak
R 6:15PM - 7:30PM
|
|
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, NP-completeness.
|
|
CSC 480-8
Monika Polak
R 7:40PM - 8:55PM
|
|
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, NP-completeness.
|