Skip to content
BoKSA

Advanced Programming & Performance Optimization

Advanced Programming & Performance Optimization

Different programming paradigms — object-oriented, functional, logic — bring different idioms: immutability, higher-order functions, pattern matching, message passing, abstraction through interfaces or types. Those idioms connect directly to a language's memory model (garbage collection, manual memory management, ownership/borrowing) and its concurrency model (threads, async/await, actors, message passing), and together they decide how safe, expressive, and fast the resulting code actually is.

Starting Points

  • Kalin, M (2015). Concurrent and Parallel Programming Concepts. O'Reilly
  • Harper, R. (2016). Practical Foundations for Programming Languages. Cambridge University Press.
  • Marlow, S. (ed.) (2013). Parallel and Concurrent Programming in Haskell. O'Reilly.
  • Klabnik, S., & Nichols, C. The Rust Programming Language (2nd ed.).
  • Official documentation for at least two languages representing different paradigms (e.g. Java/C# for OOP, Haskell/Scala/F# for FP, Prolog for logic programming).

Key Points

  • You explain the key concepts and idioms of at least two or three major paradigms (e.g. OOP vs. FP vs. logic programming).
  • You describe trade-offs, e.g. why immutable data structures help with concurrency, or why logic programming suits search/constraint problems.
  • You compare language features in terms of safety (type systems, ownership models), expressiveness (higher-order functions, pattern matching), and performance implications (garbage collection vs. manual memory management).