Skip to content

Course Syllabus

SE 3250 Survey of Languages

  • Division: Natural Science and Math
  • Department: Computer Science & Engineering
  • Credit/Time Requirement: Credit: 3; Lecture: 3; Lab: 0
  • Prerequisites: CS 2420, Acceptance into the Software Engineering BS Program
  • Corequisites: SE 3520 SE 3820
  • Semesters Offered: Fall, Spring
  • Semester Approved: Spring 2025
  • Five-Year Review Semester: Fall 2029
  • End Semester: Fall 2030
  • Optimum Class Size: 20
  • Maximum Class Size: 24

Course Description

This course gives students experience programming in a variety of programming languages and paradigms and introduces students to related concepts.

Justification

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.

Student Learning Outcomes

  1. Students will be able develop software solutions using a variety of programming paradigms including functional programming.
  2. Students will be able develop software solutions using a variety of programming languages.
  3. Students will understand common terminology and concepts associated with major programming paradigms and languages.
  4. Students will be able to acquire and apply new knowledge as needed, using appropriate learning strategies. (ABET SLO-7)

Course Content

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.