CS 292F: Quantum Information and Quantum Computation

This course gives an 
introduction to quantum computing with an emphasis on the computer science part of the field. 
Topics that will be covered are: elementary quantum mechanics, quantum information, quantum gates and circuits, quantum circuit complexity, teleportation, quantum cryptography, Shor's quantum algorithm for factoring integers and discrete logarithms, Grover's quantum searching algorithm, lower bounds in quantum computation, and the future of the field

293S: Program Optimization for Performance

With the increasing diversity and complexity of modern computers and irregular applications from domains like graphics, social networks, and data mining, the development of efficient, reliable software has become increasingly dependent on automatic support from compilers and other program analysis and translation tools. This course covers principal topics in programming languages and compiler technology for program understanding, optimization, and parallelization.

CS 293D: Information Retrieval and Web Search

This course covers advanced topics on information retrieval, web search, and related scalable information systems. The topics include search engines and advertisements, web crawling, classification, indexing and data serving, ranking and recommendation, user behavior analysis, and online services. This course will also cover system and middleware support for building related large-scale Internet services.

 

CS 293G -- Cryptographic Engineering

Cryptography provides techniques, mechanisms, and tools for private and authenticated communication, and for performing secure and authenticated transactions over the Internet as well as other open networks. It is highly probable that every single bit of information flowing through our networks will have to be either encrypted and decrypted or signed and authenticated in a few years from now. This infrastructure is needed to carry over the legal and contractual certainty from our paper-based offices to our virtual offices existing in the cyberspace.

CS 292C: String Analysis

String manipulation is a crucial part of modern software systems; for example, it is used extensively in input validation and sanitization, and in dynamic code and query generation. The goal of string-analysis techniques is to determine the set of values that string expressions can take during program execution.