C# Programming Paradigms introduces you to the variety of programming styles supported by the C# language. At its core, C# is an object-oriented, statically-typed language that lends itself to procedural and object-oriented programming, but recent additions to the language have made it much easier to develop using other programming paradigms, most notably, dynamic programming and functional programming. This course also covers programming with the Language Integrated Query features of C#, and software craftsmanship. Note - this course was originally titled C# Fundamentals - Part 2, but has been renamed to more accurately reflect the target audience and content of this course. The course content itself has not been changed since its original publication.