CSE 3160. Functional Programming Fundamentals. (3 Credits)

The course covers fundamental techniques in functional programming. While the primary focus is purely functional programming, side effects are explored for various purposes such as modeling I/O and rendering stateful objects. The course introduces elementary types, control flow, environments and scoping, closures, and other structural features of typical functional programs. The course may cover additional topics such as typed functional programming languages, type inference, continuation-passing, streams, and monads.

Enrollment Requirements: CSE 3100.

Introduction to Modern Cryptography

Three credits. Prerequisites: CSE 3400, CSE 3500; and STAT 3025 or 3345 or 3375Q or MATH 3160.

An introduction to the fundamentals of modern cryptography focusing on development of secure cryptographic tools based on hard computational problems. Topics include one-way functions, pseudorandom generators, encryption, digital signatures, and protocols.