Problems of privacy, authenticity, and security of information are increasingly important, and cryptography is essential in addressing these issues. Covers cryptographic techniques and their application in network security, including mathematics of cryptography, algorithms, computational issues in cryptography, security systems, and social and political issues surrounding cryptography and security. Computer Science 210 and Mathematics 200 or 228. 335a. Offered in alternate years. Examines ways in which computers and languages can provide services in parallel and coordinate the use of distributed resources.
Special attention is given to techniques for coordinating computations on multiple computers.
Computer Science 210 and Mathematics 200 or 228. It is recommended that students take either Computer Science 231 or 250 prior to taking this course. Offered in alternate years. Explores the principles and techniques involved in programming computers to do tasks that would require intelligence if people did them. State-space and heuristic search techniques, logic and other knowledge representations, and statistical and neural network approaches are applied to problems such as game playing, planning, the understanding of natural language, and computer vision.