Advance Programming Techniques for Artificial Intelligence (AING214)
Introduction to functional programming, anonymous (lambda) functions, map/reduce/filter, list/dictionary and set comprehensions, iterables, iterators, generators. First class and higher-order functions. Decorator functions and their use-cases. Freezing funtion arguments for partial execution. Modular, reusable and scalable software development using encapsulation, multiple inheritance, abstraction, metaclasses and attribute management. Operator overloading for user-defined objects. Lightweight concurrent execution using multi-threading. Multi-core processing using parallel pogramming. Massive parallelism using GPU computing. Robust programming through exception-handling.