This course gives students experience programming in a variety of programming languages and paradigms and introduces students to related concepts.
This course serves to deepen student awareness of programming paradigms and give students exposure to a wide variety of programming languages and practice at learning many unfamiliar technologies, including programming languages that are currently in high demand on job postings. Since many of the required courses use C# as the primary programming language, this course complements that depth of experience with a broad exposure to programming languages. The course is required for the Bachelor of Software Engineering and is related to CS 4700 ("Programming Languages") offered at Utah State University.
Languages of focus are chosen for their practical, historical, and/or theoretical significance and to provide students with a broad exposure and experience. Programming paradigms of focus should likewise complement those already being considered elsewhere in required curriculum and should minimally include an in-depth treatment of functional programming concepts and an exposure to logic and/or other declarative programming. Related concepts might include those relating to the syntax, semantics, interpretation, compilation, and inter-operability of programming languages as well as desirable and undesirable characteristics of different languages or paradigms for particular use-cases.