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.

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.

CSE 2500 Introduction to Discrete Systems taught by Kaleel Mahmood.

CSE 1729 Spring 2022, section taught by Kaleel Mahmood. 

Three credits.

Two 50 minutes "flipped" lectures and one 2-hour laboratory per week.


CSE2100 or CSE2050.


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.

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.