Spring Term Schedule
Spring 2027
| Number | Title | Instructor | Time |
|---|
|
CSC 402-01
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.
|
|
CSC 409-01
Christopher Kanan
MW 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.
|
|
CSC 412-01
Yukang Yan
TR 12:30PM - 1:45PM
|
|
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 415-01
Yukang Yan
TR 3:25PM - 4:40PM
|
|
This project-based course introduces students to the principles and practice of human–AI collaboration through the design and development of interactive AI-powered applications. Students will explore how AI can augment human creativity, productivity, wellbeing, and smart living while learning to build systems that are transparent, trustworthy, and human-centered. Through hands-on projects, students will prototype AI-assisted applications, evaluate user experiences, and iteratively refine their designs using modern generative AI tools and human-centered design methods.
|
|
CSC 416-01
Zhen Bai
MW 3:25PM - 4:40PM
|
|
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 440-01
Jiebo Luo
TR 3:25PM - 4:40PM
|
|
This course is designed to develop your understanding of the fundamental concepts in data mining and how they can be used to answer questions about real-world problems. These methods, and the underlying models, can be used to learn from existing data to make predictions about new data. The course will help you understand the mindset of creating a data project pipeline by covering topics on model development, causal inference, and traditional data mining. The class will both emphasize individual work and also team work by helping students solidify their knowledge through a final project.
|
|
CSC 446-01
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.
|
|
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.
|
|
CSC 449-01
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. Graduate-level course requires additional readings and assignments.
|
|
CSC 452-01
Komail Dharsee
TR 4:50PM - 6:05PM
|
|
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-01
George Ferguson
MW 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-01
Sreepathi 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-01
Eustrat Zhupa
TR 9:40AM - 10:55AM
|
|
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 461-02
Eustrat Zhupa
W 3:25PM - 4:40PM
|
|
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 461-03
Eustrat Zhupa
W 4:50PM - 6:05PM
|
|
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 461-04
Eustrat Zhupa
R 4:50PM - 6:05PM
|
|
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 463-01
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 475-01
Kaave Hosseini
MW 4:50PM - 6:05PM
|
|
This course introduces additive combinatorics, a field at the intersection of combinatorics, number theory, and theoretical computer science. We will study the structure of sets under addition, with emphasis on tools and results that have found striking applications in computer science and mathematics. Topics include sumset estimates and the Plünnecke-Ruzsa inequalities, the necessary Fourier analytic tools, Freiman's theorem on sets with small doubling, the Balog-Szemerédi-Gowers theorem, arithmetic progressions and Roth's theorem, the sum-product phenomenon, and Gowers uniformity norms. Applications in algorithms, complexity, and number theory will be discussed.
|
|
CSC 478-01
John Criswell
TR 3:25PM - 4:40PM
|
|
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.
|
|
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, NP-completeness.
|
|
CSC 480-02
Kaave Hosseini
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-03
Kaave Hosseini
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-04
Kaave Hosseini
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-09
Kaave Hosseini
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-01
Eustrat Zhupa
MW 10:25AM - 11:40AM
|
|
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-02
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-03
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-04
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-05
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-01
Monika Polak
TR 9:40AM - 10:55AM
|
|
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..
|
|
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-01
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-01
Michael Scott
7:00PM - 7:00PM
|
|
This course is for master's students that have made arrangements with a faculty member to complete readings and discussion in a particular subject in their field of study.
|
|
CSC 494-01
John Criswell
7:00PM - 7:00PM
|
|
This course provides master's students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 494-02
Chenliang Xu
7:00PM - 7:00PM
|
|
This course provides master's students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 494-03
Lenhart Schubert
7:00PM - 7:00PM
|
|
This course provides master's students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 494-04
Jiebo Luo
7:00PM - 7:00PM
|
|
This course provides master's students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 494-05
Michael Scott
7:00PM - 7:00PM
|
|
This course provides master's students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 495-01
Gregory Heyworth
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-02
John Criswell
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-03
Zhen Bai
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-04
Chen Ding
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-05
Sandhya Dwarkadas
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-06
Daniel Gildea
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-07
Lane Hemaspaandra
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-08
Ehsan Hoque
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-09
Henry Kautz
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-10
Jiebo Luo
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-11
Fatemeh Nargesian
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-12
Christopher Kanan
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-13
Sreepathi Pai
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-14
Lenhart Schubert
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-15
Michael Scott
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-16
Daniel Stefankovic
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-17
Muthu Venkitasubramaniam
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-18
Chenliang Xu
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-19
Yuhao Zhu
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-20
Aaron White
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-21
Thomas Howard
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-22
Zhiyao Duan
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-23
Yanan Guo
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 495-24
Yukang Yan
7:00PM - 7:00PM
|
|
This course provides master’s students with the opportunity to conduct, develop, and refine their research projects. Students will engage in research relevant to their field of study and make progress toward completing their degrees.
|
|
CSC 572-01
Yuhao Zhu
MW 9:00AM - 10:15AM
|
|
This course is an advanced seminar course exploring how intelligence emerges through the lens of computation. While we will take a broad view of intelligence, we will be particularly concerned with visual intelligence, discussing topics on eyes, retina, and visual processing in the brain. We will approach intelligence from both the evolutionary angle and the learning angle. The overarching goals of the course is to both understand how natural intelligence emerges and how we can take inspiration from it to design artificial intelligence. The format will be a combination of instructor-led lectures, student-led paper critiquing and presentations, as well as semester-long projects.
|
|
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 594-01
Sandhya Dwarkadas
7:00PM - 7:00PM
|
|
This course provides PhD students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 594-03
Jiebo Luo
7:00PM - 7:00PM
|
|
This course provides PhD students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 594-05
Chenliang Xu
7:00PM - 7:00PM
|
|
This course provides PhD students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 594-06
Yuhao Zhu
7:00PM - 7:00PM
|
|
This course provides PhD students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 594-07
Ehsan Hoque
7:00PM - 7:00PM
|
|
This course provides PhD students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 594-08
Chen Ding
7:00PM - 7:00PM
|
|
This course provides PhD students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 594-10
Michael Scott
7:00PM - 7:00PM
|
|
This course provides PhD students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 594-11
Daniel Gildea
7:00PM - 7:00PM
|
|
This course provides PhD students with the opportunity to gain practical experience in a professional setting related to their field of study. Students must register for one credit of internship during the semester in which they participate. Must have approval of the Graduate Education and Postdoctoral Affairs Office for SAS and Hajim.
|
|
CSC 595-01
John Criswell
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-02
Jiaming Liang
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-03
Zhen Bai
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-04
Chen Ding
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-05
Sandhya Dwarkadas
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-06
Daniel Gildea
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-07
Lane Hemaspaandra
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-08
Ehsan Hoque
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-09
Yukang Yan
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-10
Jiebo Luo
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-11
Fatemeh Nargesian
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-12
Yanan Guo
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-13
Sreepathi Pai
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-14
Zhiyao Duan
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-15
Michael Scott
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-16
Daniel Stefankovic
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-17
Hangfeng He
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-18
Chenliang Xu
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-19
Yuhao Zhu
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-20
Aaron White
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-21
Xiangxiang Xu
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-22
Thomas Howard
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-23
Gregory Heyworth
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-24
Christopher Kanan
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-25
Mujdat Cetin
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-26
Anson Kahng
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-28
Kaave Hosseini
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 595-29
Adam Sefkow
7:00PM - 7:00PM
|
|
This course provides PhD students with fewer than 90 credits the opportunity to conduct, develop, and refine their doctoral research projects. Students will engage in research relevant to their field of study and make progress toward completing their dissertations.
|
|
CSC 597-01
Anson Kahng
M 11:50AM - 1:05PM
|
|
No description
|
|
CSC 895-01
Daniel Gildea
7:00PM - 7:00PM
|
|
This course provides master's students the opportunity to work part-time on their thesis/dissertation. Students will make progress toward completing degree requirements.
|
|
CSC 897-01
Daniel Gildea
7:00PM - 7:00PM
|
|
This course provides master's students who are currently completing their final required coursework, or with special circumstances like an approved reduced courseload, with the opportunity to work full-time on their degrees. Students will make significant progress toward completing their degrees.
|
|
CSC 899-01
Daniel Gildea
7:00PM - 7:00PM
|
|
This course provides master's students the opportunity to work full-time on their thesis/dissertation. Students will make significant progress toward completing degree requirements.
|
|
CSC 986V-01
7:00PM - 7:00PM
|
|
This course affords graduate students visiting the University of Rochester full-time student status. Visiting students will engage in research, discussion, and/or professional training in partnership with an academic department or faculty member.
|
|
CSC 995-01
Daniel Gildea
7:00PM - 7:00PM
|
|
This course provides doctoral students the opportunity to work on their dissertation. Students will make progress toward completing degree requirements.
|
|
CSC 999-01
Daniel Gildea
7:00PM - 7:00PM
|
|
This course provides doctoral students the opportunity to work full-time on their dissertation in absentia. Students will make significant progress toward completing degree requirements.
|
Spring 2027
| Number | Title | Instructor | Time |
|---|---|
| Monday | |
|
CSC 597-01
Anson Kahng
|
|
|
No description |
|
|
CSC 482-04
Eustrat Zhupa
|
|
|
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-01
Fatemeh Nargesian
|
|
|
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 572-01
Yuhao Zhu
|
|
|
This course is an advanced seminar course exploring how intelligence emerges through the lens of computation. While we will take a broad view of intelligence, we will be particularly concerned with visual intelligence, discussing topics on eyes, retina, and visual processing in the brain. We will approach intelligence from both the evolutionary angle and the learning angle. The overarching goals of the course is to both understand how natural intelligence emerges and how we can take inspiration from it to design artificial intelligence. The format will be a combination of instructor-led lectures, student-led paper critiquing and presentations, as well as semester-long projects. |
|
|
CSC 447-01
Hangfeng He
|
|
|
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. |
|
|
CSC 455-01
Sreepathi Pai
|
|
|
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 482-01
Eustrat Zhupa
|
|
|
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 409-01
Christopher Kanan
|
|
|
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. |
|
|
CSC 480-01
Kaave Hosseini
|
|
|
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 486-01
Lane Hemaspaandra
|
|
|
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-01
Gonzalo Mateos Buckstein
|
|
|
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. |
|
|
CSC 416-01
Zhen Bai
|
|
|
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 454-01
George Ferguson
|
|
|
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 475-01
Kaave Hosseini
|
|
|
This course introduces additive combinatorics, a field at the intersection of combinatorics, number theory, and theoretical computer science. We will study the structure of sets under addition, with emphasis on tools and results that have found striking applications in computer science and mathematics. Topics include sumset estimates and the Plünnecke-Ruzsa inequalities, the necessary Fourier analytic tools, Freiman's theorem on sets with small doubling, the Balog-Szemerédi-Gowers theorem, arithmetic progressions and Roth's theorem, the sum-product phenomenon, and Gowers uniformity norms. Applications in algorithms, complexity, and number theory will be discussed. |
|
|
CSC 485-01
Lane Hemaspaandra
|
|
|
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 |
|
| Tuesday | |
|
CSC 482-02
Eustrat Zhupa
|
|
|
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 449-01
Chenliang Xu
|
|
|
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. Graduate-level course requires additional readings and assignments. |
|
|
CSC 461-01
Eustrat Zhupa
|
|
|
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 483-01
Monika Polak
|
|
|
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.. |
|
|
CSC 446-01
Daniel Gildea
|
|
|
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. |
|
|
CSC 412-01
Yukang Yan
|
|
|
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 415-01
Yukang Yan
|
|
|
This project-based course introduces students to the principles and practice of human–AI collaboration through the design and development of interactive AI-powered applications. Students will explore how AI can augment human creativity, productivity, wellbeing, and smart living while learning to build systems that are transparent, trustworthy, and human-centered. Through hands-on projects, students will prototype AI-assisted applications, evaluate user experiences, and iteratively refine their designs using modern generative AI tools and human-centered design methods. |
|
|
CSC 440-01
Jiebo Luo
|
|
|
This course is designed to develop your understanding of the fundamental concepts in data mining and how they can be used to answer questions about real-world problems. These methods, and the underlying models, can be used to learn from existing data to make predictions about new data. The course will help you understand the mindset of creating a data project pipeline by covering topics on model development, causal inference, and traditional data mining. The class will both emphasize individual work and also team work by helping students solidify their knowledge through a final project. |
|
|
CSC 478-01
John Criswell
|
|
|
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. |
|
|
CSC 452-01
Komail Dharsee
|
|
|
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. |
|
| Wednesday | |
|
CSC 461-02
Eustrat Zhupa
|
|
|
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 461-03
Eustrat Zhupa
|
|
|
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 480-02
Kaave Hosseini
|
|
|
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-03
Kaave Hosseini
|
|
|
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-03
Eustrat Zhupa
|
|
|
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-05
Eustrat Zhupa
|
|
|
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. |
|
| Thursday | |
|
CSC 579-02
Chen Ding
|
|
|
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-09
Kaave Hosseini
|
|
|
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 461-04
Eustrat Zhupa
|
|
|
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 480-04
Kaave Hosseini
|
|
|
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. |
|