Course CSE216
Title Programming Abstractions
Credits 4
Course Coordinator

Paul Fodor


Intermediate-level programming language concepts and paradigms, including functional programming, object-orientation, basics of type systems, event-driven programming, program and data abstractions, and modularity. Includes weekly recitations, which provide students with experience in the practice of programming in a variety of high-level languages such as Java, Scala, Haskell, Python or Javascript.

Bulletin Link


C or higher in CSE 214; CSE major

Course Outcomes
  • An understanding of programming language paradigms and tradeoffs.
  • An understanding of functional techniques to identify, formulate and solve problems.
  • An ability to apply techniques of object-oriented programming in the context of large-scale software development.
  • An ability to construct user interfaces using event-driven programming.

Major Topics Covered in Course
  • Programming Language Paradigm
  • Functional problem-solving using a high-level functional language
  • Object-oriented design and programming
  • Cross-cutting concepts
  • Event-driven and reactive programming

Laboratory Projects
Course Webpage