C S 330
Download as PDF
Concepts of Programming Languages
Course Description
Principles and concepts characterizing high-level computer programming languages, process and data abstration, encapsulation, inheritance, functional programming, logic programming, scanners, and parsers.
When Taught
Fall and Winter
Min
3
Fixed/Max
3
Fixed
3
Fixed
0
Title
Language Design and Vocabulary
Learning Outcome
Apply the formal vocabulary of programming language design, syntax, and semantics to evaluate how different languages structure logic and data. This foundational study is intellectually enlarging, as it reveals the underlying principles and orderly laws that govern all computational expression.
Title
Non-Imperative Paradigms
Learning Outcome
Write functional and logic-based programs using non-imperative language paradigms. Mastering these alternative ways of thinking is spiritually strengthening, as it encourages students to look beyond familiar habits and find elegant, diverse solutions to complex problems.
Title
Semantic Analysis
Learning Outcome
Analyze the behavior and execution models of various programming languages to understand how they manage state, scope, and memory. This rigorous technical investigation is character building, requiring the precision and mental discipline to understand exactly how a system will behave under specific conditions.
Title
Syntactic Structure
Learning Outcome
Define and implement the grammar and syntax rules for a custom language or DSL. This creative process is intellectually enlarging and provides a base for lifelong learning, equipping students with the tools to build their own specialized abstractions as technology evolves.
Title
Comparative Evaluation
Learning Outcome
Evaluate and justify the selection of a programming language for a specific task based on its strengths and limitations. Making these informed judgments is a form of stewardship, preparing students to use the most effective tools to provide meaningful service in their professional lives.