Available courses
CSE 3150 covers all the essential capabilities of C++, illustrating their specificities as well as how the language can be used to model object-oriented implementation of a number of classic problems.

- Teacher: Greg Johnson
CSE1729 is a rigorous introduction to programming based on the famous text "Structure and Interpretation of Computer Programs," by Abelson and Sussman. The course covers basic programming in a largely declarative style using Scheme, a simple but powerful programming language. The course covers elementary design principles, including object-oriented design, and basic data structures such as binary trees, and heaps as well as Abstract Data Types such as stacks, and queues.

- Teacher: Greg Johnson
Three credits.
Two 50 minutes "flipped" lectures and one 2-hour laboratory per week.
Prerequisite
CSE2100 or CSE2050.
Synopsis
Introduction to system-level programming with an emphasis on C programming, process management, and small scale concurrency with multi-threaded programming. Special attention will be devoted to proficiency with memory management and debugging facilities both in a sequential and parallel setting.

- Teacher: Kriti Bhargava
- Teacher: Laurent Michel
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.
- Teacher: Luke Johnson